mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 23:42:43 +00:00
cf08db988b
Backport initial LEDs hw control support. Currently this is limited to
only rx/tx and link events for the netdev trigger but the API got
accepted and the additional modes are working on and will be backported
later.
Refresh every patch and add the additional config flag for QCA8K new
LEDs support.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit 0a4b309f41
)
83 lines
2.6 KiB
Diff
83 lines
2.6 KiB
Diff
From 164b67d53476a9d114be85c885bd31f783835be4 Mon Sep 17 00:00:00 2001
|
|
From: Christian Marangi <ansuelsmth@gmail.com>
|
|
Date: Wed, 19 Apr 2023 23:07:42 +0200
|
|
Subject: [PATCH 4/5] leds: trigger: netdev: Convert device attr to macro
|
|
|
|
Convert link tx and rx device attr to a common macro to reduce common
|
|
code and in preparation for additional attr.
|
|
|
|
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
|
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
|
|
Signed-off-by: Lee Jones <lee@kernel.org>
|
|
Link: https://lore.kernel.org/r/20230419210743.3594-5-ansuelsmth@gmail.com
|
|
---
|
|
drivers/leds/trigger/ledtrig-netdev.c | 57 ++++++++-------------------
|
|
1 file changed, 16 insertions(+), 41 deletions(-)
|
|
|
|
--- a/drivers/leds/trigger/ledtrig-netdev.c
|
|
+++ b/drivers/leds/trigger/ledtrig-netdev.c
|
|
@@ -198,47 +198,22 @@ static ssize_t netdev_led_attr_store(str
|
|
return size;
|
|
}
|
|
|
|
-static ssize_t link_show(struct device *dev,
|
|
- struct device_attribute *attr, char *buf)
|
|
-{
|
|
- return netdev_led_attr_show(dev, buf, NETDEV_ATTR_LINK);
|
|
-}
|
|
-
|
|
-static ssize_t link_store(struct device *dev,
|
|
- struct device_attribute *attr, const char *buf, size_t size)
|
|
-{
|
|
- return netdev_led_attr_store(dev, buf, size, NETDEV_ATTR_LINK);
|
|
-}
|
|
-
|
|
-static DEVICE_ATTR_RW(link);
|
|
-
|
|
-static ssize_t tx_show(struct device *dev,
|
|
- struct device_attribute *attr, char *buf)
|
|
-{
|
|
- return netdev_led_attr_show(dev, buf, NETDEV_ATTR_TX);
|
|
-}
|
|
-
|
|
-static ssize_t tx_store(struct device *dev,
|
|
- struct device_attribute *attr, const char *buf, size_t size)
|
|
-{
|
|
- return netdev_led_attr_store(dev, buf, size, NETDEV_ATTR_TX);
|
|
-}
|
|
-
|
|
-static DEVICE_ATTR_RW(tx);
|
|
-
|
|
-static ssize_t rx_show(struct device *dev,
|
|
- struct device_attribute *attr, char *buf)
|
|
-{
|
|
- return netdev_led_attr_show(dev, buf, NETDEV_ATTR_RX);
|
|
-}
|
|
-
|
|
-static ssize_t rx_store(struct device *dev,
|
|
- struct device_attribute *attr, const char *buf, size_t size)
|
|
-{
|
|
- return netdev_led_attr_store(dev, buf, size, NETDEV_ATTR_RX);
|
|
-}
|
|
-
|
|
-static DEVICE_ATTR_RW(rx);
|
|
+#define DEFINE_NETDEV_TRIGGER(trigger_name, trigger) \
|
|
+ static ssize_t trigger_name##_show(struct device *dev, \
|
|
+ struct device_attribute *attr, char *buf) \
|
|
+ { \
|
|
+ return netdev_led_attr_show(dev, buf, trigger); \
|
|
+ } \
|
|
+ static ssize_t trigger_name##_store(struct device *dev, \
|
|
+ struct device_attribute *attr, const char *buf, size_t size) \
|
|
+ { \
|
|
+ return netdev_led_attr_store(dev, buf, size, trigger); \
|
|
+ } \
|
|
+ static DEVICE_ATTR_RW(trigger_name)
|
|
+
|
|
+DEFINE_NETDEV_TRIGGER(link, TRIGGER_NETDEV_LINK);
|
|
+DEFINE_NETDEV_TRIGGER(tx, TRIGGER_NETDEV_TX);
|
|
+DEFINE_NETDEV_TRIGGER(rx, TRIGGER_NETDEV_RX);
|
|
|
|
static ssize_t interval_show(struct device *dev,
|
|
struct device_attribute *attr, char *buf)
|