Message ID | 20210526180020.13557-4-kabel@kernel.org (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | Add support for offloading netdev trigger to HW | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Not a local patch |
On Wed, May 26, 2021 at 08:00:18PM +0200, Marek Behún wrote: > In preparation for HW offloading of netdev trigger, move struct > led_trigger_data into global include directory, into file > linux/ledtrig.h, so that drivers wanting to offload the trigger can see > the requested settings. > > Signed-off-by: Marek Behún <kabel@kernel.org> > --- > drivers/leds/trigger/ledtrig-netdev.c | 23 +--------------- > include/linux/ledtrig.h | 38 +++++++++++++++++++++++++++ I'm wondering how this is going to scale, if we have a lot of triggers which can be offloaded. Rather than try to pack them all into one header, would it make more sense to add include/linux/led/ledtrig-netdev.h Andrew
On Thu, 27 May 2021 18:48:21 +0200 Andrew Lunn <andrew@lunn.ch> wrote: > On Wed, May 26, 2021 at 08:00:18PM +0200, Marek Behún wrote: > > In preparation for HW offloading of netdev trigger, move struct > > led_trigger_data into global include directory, into file > > linux/ledtrig.h, so that drivers wanting to offload the trigger can > > see the requested settings. > > > > Signed-off-by: Marek Behún <kabel@kernel.org> > > --- > > drivers/leds/trigger/ledtrig-netdev.c | 23 +--------------- > > include/linux/ledtrig.h | 38 > > +++++++++++++++++++++++++++ > > I'm wondering how this is going to scale, if we have a lot of triggers > which can be offloaded. Rather than try to pack them all into > one header, would it make more sense to add > > include/linux/led/ledtrig-netdev.h > > Andrew Hmm, I guess you are right. Also when looking at a LED controller driver we could immediately see which triggers this driver can offload, when looking at headers included.
diff --git a/drivers/leds/trigger/ledtrig-netdev.c b/drivers/leds/trigger/ledtrig-netdev.c index 4f6b73e3b491..a611ad755036 100644 --- a/drivers/leds/trigger/ledtrig-netdev.c +++ b/drivers/leds/trigger/ledtrig-netdev.c @@ -10,17 +10,16 @@ // Copyright 2005-2006 Openedhand Ltd. // Author: Richard Purdie <rpurdie@openedhand.com> -#include <linux/atomic.h> #include <linux/ctype.h> #include <linux/device.h> #include <linux/init.h> #include <linux/jiffies.h> #include <linux/kernel.h> #include <linux/leds.h> +#include <linux/ledtrig.h> #include <linux/list.h> #include <linux/module.h> #include <linux/netdevice.h> -#include <linux/spinlock.h> #include <linux/timer.h> #include "../leds.h" @@ -36,26 +35,6 @@ * */ -struct led_netdev_data { - spinlock_t lock; - - struct delayed_work work; - struct notifier_block notifier; - - struct led_classdev *led_cdev; - struct net_device *net_dev; - - char device_name[IFNAMSIZ]; - atomic_t interval; - unsigned int last_activity; - - unsigned long mode; -#define NETDEV_LED_LINK 0 -#define NETDEV_LED_TX 1 -#define NETDEV_LED_RX 2 -#define NETDEV_LED_MODE_LINKUP 3 -}; - enum netdev_led_attr { NETDEV_ATTR_LINK, NETDEV_ATTR_TX, diff --git a/include/linux/ledtrig.h b/include/linux/ledtrig.h new file mode 100644 index 000000000000..1cb7f03e6c16 --- /dev/null +++ b/include/linux/ledtrig.h @@ -0,0 +1,38 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * LED trigger shared structures + */ + +#ifndef __LINUX_LEDTRIG_H__ +#define __LINUX_LEDTRIG_H__ + +#include <linux/atomic.h> +#include <linux/leds.h> +#include <linux/netdevice.h> +#include <linux/spinlock.h> + +#if IS_ENABLED(CONFIG_LEDS_TRIGGER_NETDEV) + +struct led_netdev_data { + spinlock_t lock; + + struct delayed_work work; + struct notifier_block notifier; + + struct led_classdev *led_cdev; + struct net_device *net_dev; + + char device_name[IFNAMSIZ]; + atomic_t interval; + unsigned int last_activity; + + unsigned long mode; +#define NETDEV_LED_LINK 0 +#define NETDEV_LED_TX 1 +#define NETDEV_LED_RX 2 +#define NETDEV_LED_MODE_LINKUP 3 +}; + +#endif /* IS_ENABLED(CONFIG_LEDS_TRIGGER_NETDEV) */ + +#endif /* __LINUX_LEDTRIG_H__ */
In preparation for HW offloading of netdev trigger, move struct led_trigger_data into global include directory, into file linux/ledtrig.h, so that drivers wanting to offload the trigger can see the requested settings. Signed-off-by: Marek Behún <kabel@kernel.org> --- drivers/leds/trigger/ledtrig-netdev.c | 23 +--------------- include/linux/ledtrig.h | 38 +++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 22 deletions(-) create mode 100644 include/linux/ledtrig.h