From: Thomas Weißschuh Date: Sat, 4 Apr 2026 07:55:27 +0000 (+0200) Subject: platform/chrome: cros_kbd_led_backlight: Pass keyboard_led as parameter X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=8cf72e3f6154c7936760ceb2fa3c10f8b9da75b4;p=thirdparty%2Fkernel%2Flinux.git platform/chrome: cros_kbd_led_backlight: Pass keyboard_led as parameter 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 Link: https://lore.kernel.org/r/20260404-cros_kbd_led-cleanup-v1-2-0dc1100d54e3@weissschuh.net Signed-off-by: Tzung-Bi Shih --- diff --git a/drivers/platform/chrome/cros_kbd_led_backlight.c b/drivers/platform/chrome/cros_kbd_led_backlight.c index 39e98e4b9ce65..cca1ed0e00bdf 100644 --- a/drivers/platform/chrome/cros_kbd_led_backlight.c +++ b/drivers/platform/chrome/cros_kbd_led_backlight.c @@ -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; }