]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
platform/chrome: cros_kbd_led_backlight: Pass keyboard_led as parameter
authorThomas Weißschuh <linux@weissschuh.net>
Sat, 4 Apr 2026 07:55:27 +0000 (09:55 +0200)
committerTzung-Bi Shih <tzungbi@kernel.org>
Mon, 11 May 2026 03:09:42 +0000 (03:09 +0000)
Make the code simpler to read by passing the 'struct keyboard_led' as
a parameter to the 'init' callbacks instead of relying on the platform
device driver data.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Link: https://lore.kernel.org/r/20260404-cros_kbd_led-cleanup-v1-2-0dc1100d54e3@weissschuh.net
Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
drivers/platform/chrome/cros_kbd_led_backlight.c

index 39e98e4b9ce65278ec491181a4e56f799428559f..cca1ed0e00bdf56c3630691d8e46bc0782ead170 100644 (file)
@@ -36,7 +36,7 @@ struct keyboard_led {
  * See struct led_classdev in include/linux/leds.h for more details.
  */
 struct keyboard_led_drvdata {
-       int (*init)(struct platform_device *pdev);
+       int (*init)(struct platform_device *pdev, struct keyboard_led *keyboard_led);
 
        enum led_brightness (*brightness_get)(struct led_classdev *led_cdev);
 
@@ -89,7 +89,8 @@ keyboard_led_get_brightness_acpi(struct led_classdev *cdev)
        return brightness;
 }
 
-static int keyboard_led_init_acpi(struct platform_device *pdev)
+static int keyboard_led_init_acpi(struct platform_device *pdev,
+                                 struct keyboard_led *keyboard_led)
 {
        acpi_handle handle;
        acpi_status status;
@@ -116,11 +117,11 @@ static const struct keyboard_led_drvdata keyboard_led_drvdata_acpi = {
 #endif /* CONFIG_ACPI */
 
 #if IS_ENABLED(CONFIG_MFD_CROS_EC_DEV)
-static int keyboard_led_init_ec_pwm_mfd(struct platform_device *pdev)
+static int keyboard_led_init_ec_pwm_mfd(struct platform_device *pdev,
+                                       struct keyboard_led *keyboard_led)
 {
        struct cros_ec_dev *ec_dev = dev_get_drvdata(pdev->dev.parent);
        struct cros_ec_device *cros_ec = ec_dev->ec_dev;
-       struct keyboard_led *keyboard_led = platform_get_drvdata(pdev);
 
        keyboard_led->ec = cros_ec;
 
@@ -198,10 +199,9 @@ static int keyboard_led_probe(struct platform_device *pdev)
        keyboard_led = devm_kzalloc(&pdev->dev, sizeof(*keyboard_led), GFP_KERNEL);
        if (!keyboard_led)
                return -ENOMEM;
-       platform_set_drvdata(pdev, keyboard_led);
 
        if (drvdata->init) {
-               err = drvdata->init(pdev);
+               err = drvdata->init(pdev, keyboard_led);
                if (err)
                        return err;
        }