--- zzzz-none-000/linux-4.9.276/include/linux/leds.h 2021-07-20 14:21:16.000000000 +0000 +++ falcon-5530-750/linux-4.9.276/include/linux/leds.h 2023-04-05 08:19:02.000000000 +0000 @@ -21,6 +21,7 @@ #include struct device; +struct device_node; /* * LED Core */ @@ -104,21 +105,36 @@ /* true if activated - deactivate routine uses it to do cleanup */ bool activated; #endif - +#ifdef CONFIG_SOC_GRX500 + void (*blink_src_set)(struct led_classdev *led_cdev, + char *); + char *(*blink_src_get)(struct led_classdev *led_cdev); +#endif /* Ensures consistent access to the LED Flash Class device */ struct mutex led_access; }; -extern int led_classdev_register(struct device *parent, - struct led_classdev *led_cdev); -extern int devm_led_classdev_register(struct device *parent, - struct led_classdev *led_cdev); +extern int of_led_classdev_register(struct device *parent, + struct device_node *np, + struct led_classdev *led_cdev); +#define led_classdev_register(parent, led_cdev) \ + of_led_classdev_register(parent, NULL, led_cdev) +extern int devm_of_led_classdev_register(struct device *parent, + struct device_node *np, + struct led_classdev *led_cdev); +#define devm_led_classdev_register(parent, led_cdev) \ + devm_of_led_classdev_register(parent, NULL, led_cdev) extern void led_classdev_unregister(struct led_classdev *led_cdev); extern void devm_led_classdev_unregister(struct device *parent, struct led_classdev *led_cdev); extern void led_classdev_suspend(struct led_classdev *led_cdev); extern void led_classdev_resume(struct led_classdev *led_cdev); +extern struct led_classdev *of_led_get(struct device_node *np, int index); +extern void led_put(struct led_classdev *led_cdev); +struct led_classdev *__must_check devm_of_led_get(struct device *dev, + int index); + /** * led_blink_set - set blinking with software fallback * @led_cdev: the LED to start blinking