aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Marangi <[email protected]>2023-05-29 18:32:36 +0200
committerDavid S. Miller <[email protected]>2023-05-31 09:42:08 +0100
commit6352f25f9fadba59d5df2ba7139495759ccc81d5 (patch)
treea141bf411e87e765773d4e11b42c75bdedb9046e
parent4fd1b6d47a7a38e81fdc6f8be2ccd4216b3f93db (diff)
leds: trigger: netdev: add basic check for hw control support
Add basic check for hw control support. Check if the required API are defined and check if the defined trigger supported in hw control for the LED driver match netdev. Signed-off-by: Christian Marangi <[email protected]> Reviewed-by: Andrew Lunn <[email protected]> Signed-off-by: David S. Miller <[email protected]>
-rw-r--r--drivers/leds/trigger/ledtrig-netdev.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/leds/trigger/ledtrig-netdev.c b/drivers/leds/trigger/ledtrig-netdev.c
index e1f3cedd5d57..2101cbbda707 100644
--- a/drivers/leds/trigger/ledtrig-netdev.c
+++ b/drivers/leds/trigger/ledtrig-netdev.c
@@ -92,8 +92,22 @@ static void set_baseline_state(struct led_netdev_data *trigger_data)
}
}
+static bool supports_hw_control(struct led_classdev *led_cdev)
+{
+ if (!led_cdev->hw_control_get || !led_cdev->hw_control_set ||
+ !led_cdev->hw_control_is_supported)
+ return false;
+
+ return !strcmp(led_cdev->hw_control_trigger, led_cdev->trigger->name);
+}
+
static bool can_hw_control(struct led_netdev_data *trigger_data)
{
+ struct led_classdev *led_cdev = trigger_data->led_cdev;
+
+ if (!supports_hw_control(led_cdev))
+ return false;
+
return false;
}