Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

leds: aat1290: Use generic support for composing LED names

Switch to using generic LED support for composing LED class
device name.

After switching to new led_classdev_register_ext() the validity
of struct led_classdev's name property is no longer guaranteed,
and therefore rely on struct device's kobj.name instead.

Signed-off-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Acked-by: Pavel Machek <pavel@ucw.cz>

+9 -7
+9 -7
drivers/leds/leds-aat1290.c
··· 42 42 #define AAT1290_FLASH_TM_NUM_LEVELS 16 43 43 #define AAT1290_MM_CURRENT_SCALE_SIZE 15 44 44 45 + #define AAT1290_NAME "aat1290" 46 + 45 47 46 48 struct aat1290_led_config_data { 47 49 /* maximum LED current in movie mode */ ··· 77 75 int *mm_current_scale; 78 76 /* device mode */ 79 77 bool movie_mode; 80 - 81 78 /* brightness cache */ 82 79 unsigned int torch_brightness; 83 80 }; ··· 216 215 struct aat1290_led_config_data *cfg, 217 216 struct device_node **sub_node) 218 217 { 219 - struct led_classdev *led_cdev = &led->fled_cdev.led_cdev; 220 218 struct device *dev = &led->pdev->dev; 221 219 struct device_node *child_node; 222 220 #if IS_ENABLED(CONFIG_V4L2_FLASH_LED_CLASS) ··· 253 253 dev_err(dev, "No DT child node found for connected LED.\n"); 254 254 return -EINVAL; 255 255 } 256 - 257 - led_cdev->name = of_get_property(child_node, "label", NULL) ? : 258 - child_node->name; 259 256 260 257 ret = of_property_read_u32(child_node, "led-max-microamp", 261 258 &cfg->max_mm_current); ··· 425 428 struct led_classdev *led_cdev = &led->fled_cdev.led_cdev; 426 429 struct led_flash_setting *s; 427 430 428 - strlcpy(v4l2_sd_cfg->dev_name, led_cdev->name, 431 + strlcpy(v4l2_sd_cfg->dev_name, led_cdev->dev->kobj.name, 429 432 sizeof(v4l2_sd_cfg->dev_name)); 430 433 431 434 s = &v4l2_sd_cfg->intensity; ··· 463 466 struct aat1290_led *led; 464 467 struct led_classdev *led_cdev; 465 468 struct led_classdev_flash *fled_cdev; 469 + struct led_init_data init_data = {}; 466 470 struct aat1290_led_config_data led_cfg = {}; 467 471 struct v4l2_flash_config v4l2_sd_cfg = {}; 468 472 int ret; ··· 492 494 493 495 aat1290_init_flash_timeout(led, &led_cfg); 494 496 497 + init_data.fwnode = of_fwnode_handle(sub_node); 498 + init_data.devicename = AAT1290_NAME; 499 + 495 500 /* Register LED Flash class device */ 496 - ret = led_classdev_flash_register(&pdev->dev, fled_cdev); 501 + ret = led_classdev_flash_register_ext(&pdev->dev, fled_cdev, 502 + &init_data); 497 503 if (ret < 0) 498 504 goto err_flash_register; 499 505