Lines Matching +full:mode +full:-
1 // SPDX-License-Identifier: GPL-2.0-only
57 struct rtl8169_private *tp = netdev_priv(ldev->ndev); in rtl8168_led_hw_control_is_supported()
58 int shift = ldev->index * 4; in rtl8168_led_hw_control_is_supported()
61 /* Switch LED off to indicate that mode isn't supported */ in rtl8168_led_hw_control_is_supported()
63 return -EOPNOTSUPP; in rtl8168_led_hw_control_is_supported()
73 struct rtl8169_private *tp = netdev_priv(ldev->ndev); in rtl8168_led_hw_control_set()
74 int shift = ldev->index * 4; in rtl8168_led_hw_control_set()
75 u16 mode = 0; in rtl8168_led_hw_control_set() local
78 mode |= RTL8168_LED_CTRL_LINK_10; in rtl8168_led_hw_control_set()
80 mode |= RTL8168_LED_CTRL_LINK_100; in rtl8168_led_hw_control_set()
82 mode |= RTL8168_LED_CTRL_LINK_1000; in rtl8168_led_hw_control_set()
84 mode |= RTL8168_LED_CTRL_ACT; in rtl8168_led_hw_control_set()
86 return rtl8168_led_mod_ctrl(tp, 0x000f << shift, mode << shift); in rtl8168_led_hw_control_set()
93 struct rtl8169_private *tp = netdev_priv(ldev->ndev); in rtl8168_led_hw_control_get()
94 int shift = ldev->index * 4; in rtl8168_led_hw_control_get()
95 int mode; in rtl8168_led_hw_control_get() local
97 mode = rtl8168_get_led_mode(tp); in rtl8168_led_hw_control_get()
98 if (mode < 0) in rtl8168_led_hw_control_get()
99 return mode; in rtl8168_led_hw_control_get()
101 if (mode & RTL8168_LED_CTRL_OPTION2) { in rtl8168_led_hw_control_get()
103 netdev_notice(ldev->ndev, "Deactivating unsupported Option2 LED mode\n"); in rtl8168_led_hw_control_get()
106 mode = (mode >> shift) & 0x000f; in rtl8168_led_hw_control_get()
108 if (mode & RTL8168_LED_CTRL_ACT) in rtl8168_led_hw_control_get()
111 if (mode & RTL8168_LED_CTRL_LINK_10) in rtl8168_led_hw_control_get()
113 if (mode & RTL8168_LED_CTRL_LINK_100) in rtl8168_led_hw_control_get()
115 if (mode & RTL8168_LED_CTRL_LINK_1000) in rtl8168_led_hw_control_get()
126 return &ldev->ndev->dev; in r8169_led_hw_control_get_device()
133 struct led_classdev *led_cdev = &ldev->led; in rtl8168_setup_ldev()
136 ldev->ndev = ndev; in rtl8168_setup_ldev()
137 ldev->index = index; in rtl8168_setup_ldev()
140 led_cdev->name = led_name; in rtl8168_setup_ldev()
141 led_cdev->hw_control_trigger = "netdev"; in rtl8168_setup_ldev()
142 led_cdev->flags |= LED_RETAIN_AT_SHUTDOWN; in rtl8168_setup_ldev()
143 led_cdev->hw_control_is_supported = rtl8168_led_hw_control_is_supported; in rtl8168_setup_ldev()
144 led_cdev->hw_control_set = rtl8168_led_hw_control_set; in rtl8168_setup_ldev()
145 led_cdev->hw_control_get = rtl8168_led_hw_control_get; in rtl8168_setup_ldev()
146 led_cdev->hw_control_get_device = r8169_led_hw_control_get_device; in rtl8168_setup_ldev()
149 led_classdev_register(&ndev->dev, led_cdev); in rtl8168_setup_ldev()
171 struct rtl8169_private *tp = netdev_priv(ldev->ndev); in rtl8125_led_hw_control_is_supported()
174 /* Switch LED off to indicate that mode isn't supported */ in rtl8125_led_hw_control_is_supported()
175 rtl8125_set_led_mode(tp, ldev->index, 0); in rtl8125_led_hw_control_is_supported()
176 return -EOPNOTSUPP; in rtl8125_led_hw_control_is_supported()
186 struct rtl8169_private *tp = netdev_priv(ldev->ndev); in rtl8125_led_hw_control_set()
187 u16 mode = 0; in rtl8125_led_hw_control_set() local
190 mode |= RTL8125_LED_CTRL_LINK_10; in rtl8125_led_hw_control_set()
192 mode |= RTL8125_LED_CTRL_LINK_100; in rtl8125_led_hw_control_set()
194 mode |= RTL8125_LED_CTRL_LINK_1000; in rtl8125_led_hw_control_set()
196 mode |= RTL8125_LED_CTRL_LINK_2500; in rtl8125_led_hw_control_set()
198 mode |= RTL8125_LED_CTRL_ACT; in rtl8125_led_hw_control_set()
200 return rtl8125_set_led_mode(tp, ldev->index, mode); in rtl8125_led_hw_control_set()
207 struct rtl8169_private *tp = netdev_priv(ldev->ndev); in rtl8125_led_hw_control_get()
208 int mode; in rtl8125_led_hw_control_get() local
210 mode = rtl8125_get_led_mode(tp, ldev->index); in rtl8125_led_hw_control_get()
211 if (mode < 0) in rtl8125_led_hw_control_get()
212 return mode; in rtl8125_led_hw_control_get()
214 if (mode & RTL8125_LED_CTRL_LINK_10) in rtl8125_led_hw_control_get()
216 if (mode & RTL8125_LED_CTRL_LINK_100) in rtl8125_led_hw_control_get()
218 if (mode & RTL8125_LED_CTRL_LINK_1000) in rtl8125_led_hw_control_get()
220 if (mode & RTL8125_LED_CTRL_LINK_2500) in rtl8125_led_hw_control_get()
222 if (mode & RTL8125_LED_CTRL_ACT) in rtl8125_led_hw_control_get()
232 struct led_classdev *led_cdev = &ldev->led; in rtl8125_setup_led_ldev()
235 ldev->ndev = ndev; in rtl8125_setup_led_ldev()
236 ldev->index = index; in rtl8125_setup_led_ldev()
239 led_cdev->name = led_name; in rtl8125_setup_led_ldev()
240 led_cdev->hw_control_trigger = "netdev"; in rtl8125_setup_led_ldev()
241 led_cdev->flags |= LED_RETAIN_AT_SHUTDOWN; in rtl8125_setup_led_ldev()
242 led_cdev->hw_control_is_supported = rtl8125_led_hw_control_is_supported; in rtl8125_setup_led_ldev()
243 led_cdev->hw_control_set = rtl8125_led_hw_control_set; in rtl8125_setup_led_ldev()
244 led_cdev->hw_control_get = rtl8125_led_hw_control_get; in rtl8125_setup_led_ldev()
245 led_cdev->hw_control_get_device = r8169_led_hw_control_get_device; in rtl8125_setup_led_ldev()
248 led_classdev_register(&ndev->dev, led_cdev); in rtl8125_setup_led_ldev()
271 for (struct r8169_led_classdev *l = leds; l->ndev; l++) in r8169_remove_leds()
272 led_classdev_unregister(&l->led); in r8169_remove_leds()