leds: trigger: netdev: add basic check for hw control support
authorChristian Marangi <ansuelsmth@gmail.com>
Mon, 29 May 2023 16:32:36 +0000 (18:32 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 31 May 2023 08:42:08 +0000 (09:42 +0100)
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 <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

index e1f3cedd5d5710b34a629d8202c1b362c440932e..2101cbbda707fb1161842f21f0091e8bd13ffa81 100644 (file)
@@ -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;
 }