mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-28 17:48:58 +00:00
55 lines
1.7 KiB
Diff
55 lines
1.7 KiB
Diff
|
From 4fd1b6d47a7a38e81fdc6f8be2ccd4216b3f93db Mon Sep 17 00:00:00 2001
|
||
|
From: Christian Marangi <ansuelsmth@gmail.com>
|
||
|
Date: Mon, 29 May 2023 18:32:35 +0200
|
||
|
Subject: [PATCH 05/13] leds: trigger: netdev: introduce check for possible hw
|
||
|
control
|
||
|
|
||
|
Introduce function to check if the requested mode can use hw control in
|
||
|
preparation for hw control support. Currently everything is handled in
|
||
|
software so can_hw_control will always return false.
|
||
|
|
||
|
Add knob with the new value hw_control in trigger_data struct to
|
||
|
set hw control possible. Useful for future implementation to implement
|
||
|
in set_baseline_state() the required function to set the requested mode
|
||
|
using LEDs hw control ops and in other function to reject set if hw
|
||
|
control is currently active.
|
||
|
|
||
|
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||
|
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
|
||
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||
|
---
|
||
|
drivers/leds/trigger/ledtrig-netdev.c | 8 ++++++++
|
||
|
1 file changed, 8 insertions(+)
|
||
|
|
||
|
--- a/drivers/leds/trigger/ledtrig-netdev.c
|
||
|
+++ b/drivers/leds/trigger/ledtrig-netdev.c
|
||
|
@@ -51,6 +51,7 @@ struct led_netdev_data {
|
||
|
|
||
|
unsigned long mode;
|
||
|
bool carrier_link_up;
|
||
|
+ bool hw_control;
|
||
|
};
|
||
|
|
||
|
enum led_trigger_netdev_modes {
|
||
|
@@ -91,6 +92,11 @@ static void set_baseline_state(struct le
|
||
|
}
|
||
|
}
|
||
|
|
||
|
+static bool can_hw_control(struct led_netdev_data *trigger_data)
|
||
|
+{
|
||
|
+ return false;
|
||
|
+}
|
||
|
+
|
||
|
static ssize_t device_name_show(struct device *dev,
|
||
|
struct device_attribute *attr, char *buf)
|
||
|
{
|
||
|
@@ -204,6 +210,8 @@ static ssize_t netdev_led_attr_store(str
|
||
|
else
|
||
|
clear_bit(bit, &trigger_data->mode);
|
||
|
|
||
|
+ trigger_data->hw_control = can_hw_control(trigger_data);
|
||
|
+
|
||
|
set_baseline_state(trigger_data);
|
||
|
|
||
|
return size;
|