linux/drivers/leds
Christian Marangi f22f95b9ff leds: trigger: netdev: add additional specific link duplex mode
Add additional modes for specific link duplex. Use ethtool APIs to get the
current link duplex and enable the LED accordingly. Under netdev event
handler the rtnl lock is already held and is not needed to be set to
access ethtool APIs.

This is especially useful for PHY and Switch that supports LEDs hw
control for specific link duplex.

Add additional modes:
- half_duplex: Turn on LED when link is half duplex
- full_duplex: Turn on LED when link is full duplex

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Lee Jones <lee@kernel.org>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-06-21 14:30:46 -07:00
..
blink leds: lgm-sso: switch to using devm_fwnode_gpiod_get() 2022-11-09 13:59:28 +01:00
flash leds: flash: Set variables mvflash_{3,4}ch_regs storage-class-specifier to static 2023-03-30 13:58:24 +01:00
rgb leds: qcom-lpg: Fix PWM period limits 2023-06-03 17:00:28 +02:00
simple leds: simatic-ipc-leds-gpio: Make sure we have the GPIO providing driver 2023-01-30 08:03:43 +00:00
trigger leds: trigger: netdev: add additional specific link duplex mode 2023-06-21 14:30:46 -07:00
Kconfig leds: bd2606mvv: Driver for the Rohm 6 Channel i2c LED driver 2023-04-27 17:42:33 +01:00
led-class-flash.c led-class-flash: fix -Wrestrict warning 2021-09-27 16:09:42 +02:00
led-class-multicolor.c
led-class.c driver core: class: remove module * from class_create() 2023-03-17 15:16:33 +01:00
led-core.c leds: move default_state read from fwnode to core 2021-08-18 08:27:30 +02:00
led-triggers.c leds: trigger: use RCU to protect the led_cdevs list 2021-09-27 16:16:42 +02:00
leds-88pm860x.c
leds-acer-a500.c
leds-adp5520.c
leds-an30259a.c leds: an30259a: Get rid of custom led_init_default_state_get() 2023-01-30 08:03:36 +00:00
leds-apu.c leds: apu: extend support for PC Engines APU1 with newer firmware 2021-02-19 22:15:10 +01:00
leds-ariel.c leds: leds-ariel: convert comma to semicolon 2021-01-31 10:38:02 +01:00
leds-aw2013.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
leds-bcm6328.c leds: bcm6328: Get rid of custom led_init_default_state_get() 2023-01-30 08:03:37 +00:00
leds-bcm6358.c leds: bcm6358: Get rid of custom led_init_default_state_get() 2023-01-30 08:03:38 +00:00
leds-bd2606mvv.c leds: bd2606mvv: Driver for the Rohm 6 Channel i2c LED driver 2023-04-27 17:42:33 +01:00
leds-bd2802.c leds: bd2802: Convert to i2c's .probe_new() 2023-01-30 08:03:18 +00:00
leds-blinkm.c leds: blinkm: Convert to i2c's .probe_new() 2023-01-30 08:03:18 +00:00
leds-clevo-mail.c
leds-cobalt-qube.c
leds-cobalt-raq.c
leds-cpcap.c
leds-cr0014114.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
leds-da903x.c
leds-da9052.c
leds-dac124s085.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
leds-el15203000.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
leds-gpio-register.c leds: leds-gpio-register: Supply description for param 'id' 2021-05-28 11:38:54 +02:00
leds-gpio.c leds: gpio: switch to using devm_fwnode_gpiod_get() 2022-11-09 13:59:21 +01:00
leds-hp6xx.c
leds-ip30.c
leds-ipaq-micro.c
leds-is31fl32xx.c leds: is31fl32xx: Convert to i2c's .probe_new() 2023-01-30 08:03:19 +00:00
leds-is31fl319x.c leds: is31fl319x: Wrap mutex_destroy() for devm_add_action_or_rest() 2023-01-30 08:03:34 +00:00
leds-lm355x.c leds: lm355x: Convert to i2c's .probe_new() 2023-01-30 08:03:21 +00:00
leds-lm3530.c leds: lm3530: Convert to i2c's .probe_new() 2023-01-30 08:03:20 +00:00
leds-lm3532.c leds: lm3532: Convert to i2c's .probe_new() 2023-01-30 08:03:21 +00:00
leds-lm3533.c leds: use sysfs_emit() to instead of scnprintf() 2022-12-07 21:05:20 +01:00
leds-lm3642.c leds: lm3642: Convert to i2c's .probe_new() 2023-01-30 08:03:22 +00:00
leds-lm3692x.c leds: lm3692x: Convert to i2c's .probe_new() 2023-01-30 08:03:23 +00:00
leds-lm3697.c leds: lm3697: Convert to i2c's .probe_new() 2023-01-30 08:03:24 +00:00
leds-lm36274.c leds: lm36274: Add missed property.h 2021-05-30 23:03:48 +02:00
leds-locomo.c ARM: pxa: split up mach/hardware.h 2022-04-19 16:27:05 +02:00
leds-lp50xx.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
leds-lp55xx-common.c leds: use sysfs_emit() to instead of scnprintf() 2022-12-07 21:05:20 +01:00
leds-lp55xx-common.h
leds-lp3944.c leds: lp3944: Convert to i2c's .probe_new() 2023-01-30 08:03:24 +00:00
leds-lp3952.c leds: lp3952: Convert to i2c's .probe_new() 2023-01-30 08:03:25 +00:00
leds-lp5521.c leds: lp5521: Convert to i2c's .probe_new() 2023-01-30 08:03:26 +00:00
leds-lp5523.c leds: lp5523: Convert to i2c's .probe_new() 2023-01-30 08:03:27 +00:00
leds-lp5562.c leds: lp5562: Convert to i2c's .probe_new() 2023-01-30 08:03:28 +00:00
leds-lp8501.c leds: lp8501: Convert to i2c's .probe_new() 2023-01-30 08:03:28 +00:00
leds-lp8788.c
leds-lp8860.c leds: lp8860: Remove duplicate NULL checks for gpio_desc 2023-03-16 15:08:40 +00:00
leds-lt3593.c leds: lt3593: Put fwnode in any case during ->probe() 2021-08-03 23:49:31 +02:00
leds-max8997.c leds: max8997: Don't error if there is no pdata 2022-10-22 11:55:03 +02:00
leds-max77650.c
leds-mc13783.c
leds-menf21bmc.c
leds-mlxcpld.c leds: leds-mlxcpld: Fix a bunch of kernel-doc formatting issues 2021-05-28 11:39:00 +02:00
leds-mlxreg.c leds: leds-mlxreg: Fix incorrect documentation of struct member 'led_cdev' and 'led_cdev_name' 2021-05-28 11:38:59 +02:00
leds-mt6323.c leds: mt6323: Get rid of custom led_init_default_state_get() 2023-01-30 08:03:39 +00:00
leds-net48xx.c
leds-netxbig.c leds: Use DEVICE_ATTR_{RW, RO, WO} macros 2020-12-30 19:37:13 +01:00
leds-nic78bx.c
leds-ns2.c
leds-ot200.c
leds-pca955x.c leds: pca955x: Get rid of custom led_init_default_state_get() 2023-01-30 08:03:40 +00:00
leds-pca963x.c leds: pca963x: Convert to i2c's .probe_new() 2023-01-30 08:03:31 +00:00
leds-pca9532.c leds: pca9532: Convert to i2c's .probe_new() 2023-01-30 08:03:30 +00:00
leds-pm8058.c leds: pm8058: Get rid of custom led_init_default_state_get() 2023-01-30 08:03:41 +00:00
leds-powernv.c
leds-pwm.c leds: pwm: Clear the led structure before parsing each child node 2023-01-30 08:00:51 +00:00
leds-rb532.c
leds-regulator.c leds: regulator: Make probeable from device tree 2022-05-05 10:04:52 +02:00
leds-sc27xx-bltc.c
leds-spi-byte.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
leds-ss4200.c leds: ss4200: simplify the return expression of register_nasgpio_led() 2020-12-30 19:37:14 +01:00
leds-sunfire.c
leds-syscon.c leds: syscon: Get rid of custom led_init_default_state_get() 2023-01-30 08:03:42 +00:00
leds-tca6507.c leds: tca6507: Fix error handling of using fwnode_property_read_string 2023-04-05 16:28:42 +01:00
leds-ti-lmu-common.c
leds-tlc591xx.c leds: tlc591xx: Mark OF related data as maybe unused 2023-03-16 15:08:43 +00:00
leds-tps6105x.c
leds-turris-omnia.c leds: turris-omnia: Convert to i2c's .probe_new() 2023-01-30 08:03:33 +00:00
leds-wm831x-status.c leds: Use DEVICE_ATTR_{RW, RO, WO} macros 2020-12-30 19:37:13 +01:00
leds-wm8350.c
leds-wrap.c
leds.h leds: Move led_init_default_state_get() to the global header 2023-01-30 08:03:35 +00:00
Makefile leds: bd2606mvv: Driver for the Rohm 6 Channel i2c LED driver 2023-04-27 17:42:33 +01:00
TODO
uleds.c