* [PATCH] leds: trigger: netdev: extend speeds up to 10G
@ 2023-11-26 20:17 Daniel Golle
2023-11-26 21:04 ` Andrew Lunn
0 siblings, 1 reply; 4+ messages in thread
From: Daniel Golle @ 2023-11-26 20:17 UTC (permalink / raw)
To: Pavel Machek, Lee Jones, Andrew Lunn, Christian Marangi,
David S. Miller, Jakub Kicinski, Daniel Golle, Li Zetao,
linux-leds, linux-kernel
Add 2.5G, 5G and 10G as available speeds to the netdev LED trigger.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
---
drivers/leds/trigger/ledtrig-netdev.c | 29 ++++++++++++++++++++++++++-
include/linux/leds.h | 3 +++
2 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/drivers/leds/trigger/ledtrig-netdev.c b/drivers/leds/trigger/ledtrig-netdev.c
index e358e77e4b38f..612f214cd4f3c 100644
--- a/drivers/leds/trigger/ledtrig-netdev.c
+++ b/drivers/leds/trigger/ledtrig-netdev.c
@@ -99,6 +99,18 @@ static void set_baseline_state(struct led_netdev_data *trigger_data)
trigger_data->link_speed == SPEED_1000)
blink_on = true;
+ if (test_bit(TRIGGER_NETDEV_LINK_2500, &trigger_data->mode) &&
+ trigger_data->link_speed == SPEED_2500)
+ blink_on = true;
+
+ if (test_bit(TRIGGER_NETDEV_LINK_5000, &trigger_data->mode) &&
+ trigger_data->link_speed == SPEED_5000)
+ blink_on = true;
+
+ if (test_bit(TRIGGER_NETDEV_LINK_10000, &trigger_data->mode) &&
+ trigger_data->link_speed == SPEED_10000)
+ blink_on = true;
+
if (test_bit(TRIGGER_NETDEV_HALF_DUPLEX, &trigger_data->mode) &&
trigger_data->duplex == DUPLEX_HALF)
blink_on = true;
@@ -286,6 +298,9 @@ static ssize_t netdev_led_attr_show(struct device *dev, char *buf,
case TRIGGER_NETDEV_LINK_10:
case TRIGGER_NETDEV_LINK_100:
case TRIGGER_NETDEV_LINK_1000:
+ case TRIGGER_NETDEV_LINK_2500:
+ case TRIGGER_NETDEV_LINK_5000:
+ case TRIGGER_NETDEV_LINK_10000:
case TRIGGER_NETDEV_HALF_DUPLEX:
case TRIGGER_NETDEV_FULL_DUPLEX:
case TRIGGER_NETDEV_TX:
@@ -316,6 +331,9 @@ static ssize_t netdev_led_attr_store(struct device *dev, const char *buf,
case TRIGGER_NETDEV_LINK_10:
case TRIGGER_NETDEV_LINK_100:
case TRIGGER_NETDEV_LINK_1000:
+ case TRIGGER_NETDEV_LINK_2500:
+ case TRIGGER_NETDEV_LINK_5000:
+ case TRIGGER_NETDEV_LINK_10000:
case TRIGGER_NETDEV_HALF_DUPLEX:
case TRIGGER_NETDEV_FULL_DUPLEX:
case TRIGGER_NETDEV_TX:
@@ -334,7 +352,10 @@ static ssize_t netdev_led_attr_store(struct device *dev, const char *buf,
if (test_bit(TRIGGER_NETDEV_LINK, &mode) &&
(test_bit(TRIGGER_NETDEV_LINK_10, &mode) ||
test_bit(TRIGGER_NETDEV_LINK_100, &mode) ||
- test_bit(TRIGGER_NETDEV_LINK_1000, &mode)))
+ test_bit(TRIGGER_NETDEV_LINK_1000, &mode) ||
+ test_bit(TRIGGER_NETDEV_LINK_2500, &mode) ||
+ test_bit(TRIGGER_NETDEV_LINK_5000, &mode) ||
+ test_bit(TRIGGER_NETDEV_LINK_10000, &mode)))
return -EINVAL;
cancel_delayed_work_sync(&trigger_data->work);
@@ -364,6 +385,9 @@ DEFINE_NETDEV_TRIGGER(link, TRIGGER_NETDEV_LINK);
DEFINE_NETDEV_TRIGGER(link_10, TRIGGER_NETDEV_LINK_10);
DEFINE_NETDEV_TRIGGER(link_100, TRIGGER_NETDEV_LINK_100);
DEFINE_NETDEV_TRIGGER(link_1000, TRIGGER_NETDEV_LINK_1000);
+DEFINE_NETDEV_TRIGGER(link_2500, TRIGGER_NETDEV_LINK_2500);
+DEFINE_NETDEV_TRIGGER(link_5000, TRIGGER_NETDEV_LINK_5000);
+DEFINE_NETDEV_TRIGGER(link_10000, TRIGGER_NETDEV_LINK_10000);
DEFINE_NETDEV_TRIGGER(half_duplex, TRIGGER_NETDEV_HALF_DUPLEX);
DEFINE_NETDEV_TRIGGER(full_duplex, TRIGGER_NETDEV_FULL_DUPLEX);
DEFINE_NETDEV_TRIGGER(tx, TRIGGER_NETDEV_TX);
@@ -519,6 +543,9 @@ static void netdev_trig_work(struct work_struct *work)
test_bit(TRIGGER_NETDEV_LINK_10, &trigger_data->mode) ||
test_bit(TRIGGER_NETDEV_LINK_100, &trigger_data->mode) ||
test_bit(TRIGGER_NETDEV_LINK_1000, &trigger_data->mode) ||
+ test_bit(TRIGGER_NETDEV_LINK_2500, &trigger_data->mode) ||
+ test_bit(TRIGGER_NETDEV_LINK_5000, &trigger_data->mode) ||
+ test_bit(TRIGGER_NETDEV_LINK_10000, &trigger_data->mode) ||
test_bit(TRIGGER_NETDEV_HALF_DUPLEX, &trigger_data->mode) ||
test_bit(TRIGGER_NETDEV_FULL_DUPLEX, &trigger_data->mode);
interval = jiffies_to_msecs(
diff --git a/include/linux/leds.h b/include/linux/leds.h
index aa16dc2a8230f..1bdf7f5a0d7c0 100644
--- a/include/linux/leds.h
+++ b/include/linux/leds.h
@@ -588,6 +588,9 @@ enum led_trigger_netdev_modes {
TRIGGER_NETDEV_LINK_10,
TRIGGER_NETDEV_LINK_100,
TRIGGER_NETDEV_LINK_1000,
+ TRIGGER_NETDEV_LINK_2500,
+ TRIGGER_NETDEV_LINK_5000,
+ TRIGGER_NETDEV_LINK_10000,
TRIGGER_NETDEV_HALF_DUPLEX,
TRIGGER_NETDEV_FULL_DUPLEX,
TRIGGER_NETDEV_TX,
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] leds: trigger: netdev: extend speeds up to 10G
2023-11-26 20:17 [PATCH] leds: trigger: netdev: extend speeds up to 10G Daniel Golle
@ 2023-11-26 21:04 ` Andrew Lunn
2023-11-26 22:11 ` Daniel Golle
0 siblings, 1 reply; 4+ messages in thread
From: Andrew Lunn @ 2023-11-26 21:04 UTC (permalink / raw)
To: Daniel Golle
Cc: Pavel Machek, Lee Jones, Christian Marangi, David S. Miller,
Jakub Kicinski, Li Zetao, linux-leds, linux-kernel
On Sun, Nov 26, 2023 at 08:17:03PM +0000, Daniel Golle wrote:
> Add 2.5G, 5G and 10G as available speeds to the netdev LED trigger.
>
> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
One thing to consider is how this get merged. I assume you will have a
PHY driver patch soon making use of this? We can either:
1) Get Lee to merge it into the LED tree and then create a stable
branch which gets pulled into netdev.
2) Merge into netdev, with Lees Acked-by:
It seems unlikely there will be any merge conflicts. So netdev does
seem like an O.K. way to go.
Andrew
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] leds: trigger: netdev: extend speeds up to 10G
2023-11-26 21:04 ` Andrew Lunn
@ 2023-11-26 22:11 ` Daniel Golle
2023-11-27 8:13 ` Lee Jones
0 siblings, 1 reply; 4+ messages in thread
From: Daniel Golle @ 2023-11-26 22:11 UTC (permalink / raw)
To: Andrew Lunn
Cc: Pavel Machek, Lee Jones, Christian Marangi, David S. Miller,
Jakub Kicinski, Li Zetao, linux-leds, linux-kernel
Hi Andrew,
On Sun, Nov 26, 2023 at 10:04:22PM +0100, Andrew Lunn wrote:
> On Sun, Nov 26, 2023 at 08:17:03PM +0000, Daniel Golle wrote:
> > Add 2.5G, 5G and 10G as available speeds to the netdev LED trigger.
> >
> > Signed-off-by: Daniel Golle <daniel@makrotopia.org>
>
> Reviewed-by: Andrew Lunn <andrew@lunn.ch>
>
> One thing to consider is how this get merged. I assume you will have a
> PHY driver patch soon making use of this?
Yes, exactly. I'm working on adding support for LEDs to MaxLinear and
RealTek PHY drivers.
> We can either:
>
> 1) Get Lee to merge it into the LED tree and then create a stable
> branch which gets pulled into netdev.
>
> 2) Merge into netdev, with Lees Acked-by:
>
> It seems unlikely there will be any merge conflicts. So netdev does
> seem like an O.K. way to go.
Via netdev (net-next) would be better imho as it would allow to add
changes to PHY drivers making use of the new constants without having
to wait for LED tree being merged.
Note that I've sent v2 which adds missing use of sysfs attributes.
Thank you!
Daniel
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] leds: trigger: netdev: extend speeds up to 10G
2023-11-26 22:11 ` Daniel Golle
@ 2023-11-27 8:13 ` Lee Jones
0 siblings, 0 replies; 4+ messages in thread
From: Lee Jones @ 2023-11-27 8:13 UTC (permalink / raw)
To: Daniel Golle
Cc: Andrew Lunn, Pavel Machek, Christian Marangi, David S. Miller,
Jakub Kicinski, Li Zetao, linux-leds, linux-kernel
On Sun, 26 Nov 2023, Daniel Golle wrote:
> Hi Andrew,
>
> On Sun, Nov 26, 2023 at 10:04:22PM +0100, Andrew Lunn wrote:
> > On Sun, Nov 26, 2023 at 08:17:03PM +0000, Daniel Golle wrote:
> > > Add 2.5G, 5G and 10G as available speeds to the netdev LED trigger.
> > >
> > > Signed-off-by: Daniel Golle <daniel@makrotopia.org>
> >
> > Reviewed-by: Andrew Lunn <andrew@lunn.ch>
> >
> > One thing to consider is how this get merged. I assume you will have a
> > PHY driver patch soon making use of this?
>
> Yes, exactly. I'm working on adding support for LEDs to MaxLinear and
> RealTek PHY drivers.
>
> > We can either:
> >
> > 1) Get Lee to merge it into the LED tree and then create a stable
> > branch which gets pulled into netdev.
I'll create an immutable branch.
> > 2) Merge into netdev, with Lees Acked-by:
> >
> > It seems unlikely there will be any merge conflicts. So netdev does
> > seem like an O.K. way to go.
>
> Via netdev (net-next) would be better imho as it would allow to add
> changes to PHY drivers making use of the new constants without having
> to wait for LED tree being merged.
The former solution does not prevent this.
> Note that I've sent v2 which adds missing use of sysfs attributes.
--
Lee Jones [李琼斯]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-11-27 8:13 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-26 20:17 [PATCH] leds: trigger: netdev: extend speeds up to 10G Daniel Golle
2023-11-26 21:04 ` Andrew Lunn
2023-11-26 22:11 ` Daniel Golle
2023-11-27 8:13 ` Lee Jones
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox