Re: [RESEND PATCH v27 11/15] leds: lp55xx: Add multicolor framework support to lp55xx

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Jacek

On 6/17/20 4:41 PM, Jacek Anaszewski wrote:
Dan,

On 6/17/20 9:22 PM, Dan Murphy wrote:
Pavel/Jacek

On 6/17/20 11:28 AM, kernel test robot wrote:
Hi Dan,

I love your patch! Yet something to improve:

[auto build test ERROR on pavel-linux-leds/for-next]
[cannot apply to j.anaszewski-leds/for-next]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url: https://github.com/0day-ci/linux/commits/Dan-Murphy/Multicolor-Framework-v27/20200616-042217 base: git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds.git for-next
config: ia64-randconfig-r015-20200617 (attached as .config)
compiler: ia64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
         chmod +x ~/bin/make.cross
         # save the attached .config to linux build tree
         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=ia64

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>, old ones prefixed by <<):

ia64-linux-ld: drivers/leds/leds-lp55xx-common.o: in function `lp55xx_set_mc_brightness':
drivers/leds/leds-lp55xx-common.c:146: undefined reference to `led_mc_calc_color_components'
ia64-linux-ld: drivers/leds/leds-lp55xx-common.o: in function `devm_led_classdev_multicolor_register':
include/linux/led-class-multicolor.h:74: undefined reference to `devm_led_classdev_multicolor_register_ext'
vim +146 drivers/leds/leds-lp55xx-common.c

    138
    139    static int lp55xx_set_mc_brightness(struct led_classdev *cdev,
    140                        enum led_brightness brightness)
    141    {
    142        struct led_classdev_mc *mc_dev = lcdev_to_mccdev(cdev);
    143        struct lp55xx_led *led = mcled_cdev_to_led(mc_dev);
    144        struct lp55xx_device_config *cfg = led->chip->cfg;
    145
  > 146 led_mc_calc_color_components(&led->mc_cdev, brightness);
    147        return cfg->multicolor_brightness_fn(led);
    148

Well this was a mess to figure out.

The only fix I can figure out here is to remove the

     depends on LEDS_CLASS_MULTI_COLOR || !LEDS_CLASS_MULTI_COLOR

from each child device and add

     select LEDS_CLASS_MULTI_COLOR

to the LP55XX_COMMON

This way the Multi color framework will inherit the symbol that was set by the COMMON flag which is inherited by majority from the child flags.

Did you try this?

--- a/drivers/leds/Kconfig
+++ b/drivers/leds/Kconfig
@@ -398,6 +398,7 @@ config LEDS_LP50XX
 config LEDS_LP55XX_COMMON
        tristate "Common Driver for TI/National LP5521/5523/55231/5562/8501"         depends on LEDS_LP5521 || LEDS_LP5523 || LEDS_LP5562 || LEDS_LP8501
+       depends on LEDS_CLASS_MULTI_COLOR || !LEDS_CLASS_MULTI_COLOR
        depends on OF
        select FW_LOADER
        select FW_LOADER_USER_HELPER


Yes I did

That gave unmet dependencies.

WARNING: unmet direct dependencies detected for LEDS_LP55XX_COMMON
  Depends on [m]: NEW_LEDS [=y] && (LEDS_LP5521 [=n] || LEDS_LP5523 [=m] || LEDS_LP5562 [=y] || LEDS_LP8501 [=y]) && (LEDS_CLASS_MULTI_COLOR [=m] || !LEDS_CLASS_MULTI_COLOR [=m]) && OF [=y]
  Selected by [y]:
  - LEDS_LP5562 [=y] && NEW_LEDS [=y] && LEDS_CLASS [=y] && I2C [=y]
  - LEDS_LP8501 [=y] && NEW_LEDS [=y] && LEDS_CLASS [=y] && I2C [=y]
  Selected by [m]:
  - LEDS_LP5523 [=m] && NEW_LEDS [=y] && LEDS_CLASS [=y] && I2C [=y] && (LEDS_CLASS_MULTI_COLOR [=m] || !LEDS_CLASS_MULTI_COLOR [=m])




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux