[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CA+V-a8tW9tWw=-fFHXSvYPeipd8+ADUuQj7DGuKP-xwDrdAbyQ@mail.gmail.com>
Date: Thu, 16 Oct 2025 12:43:46 +0100
From: "Lad, Prabhakar" <prabhakar.csengg@...il.com>
To: Marek Behún <kabel@...nel.org>
Cc: linux-leds@...r.kernel.org, netdev@...r.kernel.org,
Pavel Machek <pavel@....cz>, Dan Murphy <dmurphy@...com>, Russell King <linux@...linux.org.uk>,
Andrew Lunn <andrew@...n.ch>, Matthias Schiffer <matthias.schiffer@...tq-group.com>,
Jacek Anaszewski <jacek.anaszewski@...il.com>,
Mauro Carvalho Chehab <mchehab+huawei@...nel.org>
Subject: Re: [PATCH leds v2 00/10] Add support for offloading netdev trigger
to HW + example implementation for Turris Omnia
Hi Marek,
On Tue, Jun 1, 2021 at 1:53 AM Marek Behún <kabel@...nel.org> wrote:
>
> Hello,
>
> this is v2 of series adding support for offloading LED triggers to HW.
> The netdev trigger is the first user and leds-turris-omnia is the first
> example implementation.
>
> A video comparing SW (left LED) vs HW (right LED) netdev trigger on
> Omnia
> https://secure.nic.cz/files/mbehun/omnia-wan-netdev-trig-offload.mp4
>
> Changes since v1:
> - changed typo in doc
> - the netdev trigger data structure now lives in
> include/linux/ledtrig-netdev.h instead of ledtrig.h, as suggested by
> Andrew. Also the structure is always defined, no guard against
> CONFIG_LEDS_TRIGGER_NETDEV
> - we do not export netdev_led_trigger variable. The trigger_offload()
> method can look at led_cdev->trigger->name to see which trigger it
> should try to offload, i.e. compare the string to "netdev"
> - netdev trigger is being offloaded only if link is up, and at least one
> of the rx, tx parameters are set. No need to offload otherwise
> - a patch is added that moves setting flag LED_UNREGISTERING in
> led_classdev_unregister() before unsetting trigger. This makes it
> possible for the trigger_offload() method to determine whether the
> offloading is being disabled because the LED is being unregistered.
> The driver may put the LED into HW triggering mode in this case, to
> achieve behaviour as was before the driver was loaded
> - an example implementation for offloading the netdev trigger for the
> WAN LED on Turris Omnia is added. LAN LEDs are not yet supported
>
> Changes since RFC:
> - split the patch adding HW offloading support to netdev trigger into
> several separate patches (suggested by Pavel):
> 1. move trigger data structure to include/linux/ledtrig.h
> 2. support HW offloading
> 3. change spinlock to mutex
> - fixed bug where the .offloaded variable was not set to false when
> offloading was disabled (suggested by Pavel)
> - removed the code saving one call to set_baseline_state() on the
> NETDEV_CHANGE event. It is not needed, the trigger_offload() method
> can handle this situation on its own (suggested by Pavel)
> - documentation now explicitly says that when offloading is being
> disabled, the function must return 0 (no error) (suggested by Pavel)
>
> Marek Behún (10):
> leds: trigger: netdev: don't explicitly zero kzalloced data
> leds: trigger: add API for HW offloading of triggers
> leds: trigger: netdev: move trigger data structure to global include
> dir
> leds: trigger: netdev: support HW offloading
> leds: trigger: netdev: change spinlock to mutex
> leds: core: inform trigger that it's deactivation is due to LED
> removal
> leds: turris-omnia: refactor sw mode setting code into separate
> function
> leds: turris-omnia: refactor brightness setting function
> leds: turris-omnia: initialize each multicolor LED to white color
> leds: turris-omnia: support offloading netdev trigger for WAN LED
>
Do you plan to progress with the above series anytime soon? If not I
want to give this patch [0] again a respin.
[0] https://lore.kernel.org/all/20210930125747.2511954-1-frieder@fris.de/
Cheers,
Prabhakar
> Documentation/leds/leds-class.rst | 22 ++
> drivers/leds/Kconfig | 3 +
> drivers/leds/led-class.c | 4 +-
> drivers/leds/led-triggers.c | 1 +
> drivers/leds/leds-turris-omnia.c | 284 ++++++++++++++++++++++++--
> drivers/leds/trigger/ledtrig-netdev.c | 56 ++---
> include/linux/leds.h | 29 +++
> include/linux/ledtrig-netdev.h | 34 +++
> 8 files changed, 377 insertions(+), 56 deletions(-)
> create mode 100644 include/linux/ledtrig-netdev.h
>
> --
> 2.26.3
>
Powered by blists - more mailing lists