Message ID | 1606301475-7030-1-git-send-email-gene.chen.richtek@gmail.com |
---|---|
Headers | show |
Series | leds: mt6360: Add LED driver for MT6360 | expand |
Hi Gene, On 11/25/20 11:51 AM, Gene Chen wrote: > From: Gene Chen <gene_chen@richtek.com> > > Add flash registration with undefined CONFIG_LEDS_CLASS_FLASH > > Signed-off-by: Gene Chen <gene_chen@richtek.com> > --- > include/linux/led-class-flash.h | 36 ++++++++++++++++++++++++++++++++++++ > 1 file changed, 36 insertions(+) > > diff --git a/include/linux/led-class-flash.h b/include/linux/led-class-flash.h > index 21a3358..5f36eae 100644 > --- a/include/linux/led-class-flash.h > +++ b/include/linux/led-class-flash.h > @@ -85,6 +85,7 @@ static inline struct led_classdev_flash *lcdev_to_flcdev( > return container_of(lcdev, struct led_classdev_flash, led_cdev); > } > > +#if IS_ENABLED(CONFIG_LEDS_CLASS_FLASH) > /** > * led_classdev_flash_register_ext - register a new object of LED class with > * init data and with support for flash LEDs > @@ -127,6 +128,41 @@ static inline int devm_led_classdev_flash_register(struct device *parent, > void devm_led_classdev_flash_unregister(struct device *parent, > struct led_classdev_flash *fled_cdev); > > +#else > + > +static inline int led_classdev_flash_register_ext(struct device *parent, > + struct led_classdev_flash *fled_cdev, > + struct led_init_data *init_data) > +{ > + return 0; > +} > + > +static inline int led_classdev_flash_register(struct device *parent, > + struct led_classdev_flash *fled_cdev) > +{ > + return led_classdev_flash_register_ext(parent, fled_cdev, NULL); > +} This function can be placed after #ifdef block - now it is in two copies in this file. > + > +static inline void led_classdev_flash_unregister(struct led_classdev_flash *fled_cdev) {}; > +static inline int devm_led_classdev_flash_register_ext(struct device *parent, > + struct led_classdev_flash *fled_cdev, > + struct led_init_data *init_data) > +{ > + return 0; > +} > + > +static inline int devm_led_classdev_flash_register(struct device *parent, > + struct led_classdev_flash *fled_cdev) > +{ > + return devm_led_classdev_flash_register_ext(parent, fled_cdev, NULL); > +} Ditto. > +static inline void devm_led_classdev_flash_unregister(struct device *parent, > + struct led_classdev_flash *fled_cdev) > +{}; > + > +#endif /* IS_ENABLED(CONFIG_LEDS_CLASS_FLASH) */ > + > /** > * led_set_flash_strobe - setup flash strobe > * @fled_cdev: the flash LED to set strobe on >
Hi Gene, Thank you for the fix. Would you mind fixing in the same patch also a duplication of led_classdev_multicolor_register() and devm_led_classdev_multicolor_register(), by moving them outside of #ifdef block ? They look identical for both CONFIG_LEDS_CLASS_MULTICOLOR states. On 11/25/20 11:51 AM, Gene Chen wrote: > From: Gene Chen <gene_chen@richtek.com> > > Fix multicolor registration no-ops by return 0 > > Signed-off-by: Gene Chen <gene_chen@richtek.com> > --- > include/linux/led-class-multicolor.h | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/include/linux/led-class-multicolor.h b/include/linux/led-class-multicolor.h > index 5116f9a..dbf3832 100644 > --- a/include/linux/led-class-multicolor.h > +++ b/include/linux/led-class-multicolor.h > @@ -83,7 +83,7 @@ static inline int led_classdev_multicolor_register_ext(struct device *parent, > struct led_classdev_mc *mcled_cdev, > struct led_init_data *init_data) > { > - return -EINVAL; > + return 0; > } > > static inline int led_classdev_multicolor_register(struct device *parent, > @@ -96,14 +96,14 @@ static inline void led_classdev_multicolor_unregister(struct led_classdev_mc *mc > static inline int led_mc_calc_color_components(struct led_classdev_mc *mcled_cdev, > enum led_brightness brightness) > { > - return -EINVAL; > + return 0; > } > > static inline int devm_led_classdev_multicolor_register_ext(struct device *parent, > struct led_classdev_mc *mcled_cdev, > struct led_init_data *init_data) > { > - return -EINVAL; > + return 0; > } > > static inline int devm_led_classdev_multicolor_register(struct device *parent, >
Hi Gene, Thank you for the update. On 11/25/20 11:51 AM, Gene Chen wrote: > From: Gene Chen <gene_chen@richtek.com> > > Add MT6360 LED driver include 2-channel Flash LED with torch/strobe mode, > 3-channel RGB LED support Register/Flash/Breath Mode, and 1-channel for > moonlight LED. > > Signed-off-by: Gene Chen <gene_chen@richtek.com> > --- > drivers/leds/Kconfig | 13 + > drivers/leds/Makefile | 1 + > drivers/leds/leds-mt6360.c | 811 +++++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 825 insertions(+) > create mode 100644 drivers/leds/leds-mt6360.c > > diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig > index 1c181df..4f533bc 100644 > --- a/drivers/leds/Kconfig > +++ b/drivers/leds/Kconfig > @@ -271,6 +271,19 @@ config LEDS_MT6323 > This option enables support for on-chip LED drivers found on > Mediatek MT6323 PMIC. > > +config LEDS_MT6360 > + tristate "LED Support for Mediatek MT6360 PMIC" > + depends on LEDS_CLASS && OF > + depends on LEDS_CLASS_FLASH || !LEDS_CLASS_FLASH > + depends on LEDS_CLASS_MULTICOLOR || !LEDS_CLASS_MULTICOLOR > + depends on V4L2_FLASH_LED_CLASS || !V4L2_FLASH_LED_CLASS > + depends on MFD_MT6360 > + help > + This option enables support for dual Flash LED drivers found on > + Mediatek MT6360 PMIC. > + Independent current sources supply for each flash LED support torch > + and strobe mode. Acked-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>