Re: [PATCH v5 08/13] gpio: add support for the sl28cpld GPIO controller

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

 



Hi Michael,

I love your patch! Perhaps something to improve:

[auto build test WARNING on ljones-mfd/for-mfd-next]
[also build test WARNING on shawnguo/for-next v5.8-rc5]
[cannot apply to gpio/for-next hwmon/hwmon-next next-20200716]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Michael-Walle/Add-support-for-Kontron-sl28cpld/20200707-020034
base:   https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git for-mfd-next
config: x86_64-allyesconfig (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project ed6b578040a85977026c93bf4188f996148f3218)
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
        # install x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 

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

All warnings (new ones prefixed by >>):

>> drivers/gpio/gpio-sl28cpld.c:121:29: warning: implicit conversion from 'unsigned long' to 'unsigned int' changes value from 18446744073709551615 to 4294967295 [-Wconstant-conversion]
                   config.reg_dir_out_base = GPIO_REGMAP_ADDR(base + GPIO_REG_DIR);
                                           ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/gpio/regmap.h:12:44: note: expanded from macro 'GPIO_REGMAP_ADDR'
   #define GPIO_REGMAP_ADDR(addr) ((addr) ? : GPIO_REGMAP_ADDR_ZERO)
                                              ^~~~~~~~~~~~~~~~~~~~~
   include/linux/gpio/regmap.h:11:32: note: expanded from macro 'GPIO_REGMAP_ADDR_ZERO'
   #define GPIO_REGMAP_ADDR_ZERO ((unsigned long)(-1))
                                  ^~~~~~~~~~~~~~~~~~~
   1 warning generated.

vim +121 drivers/gpio/gpio-sl28cpld.c

    88	
    89	static int sl28cpld_gpio_probe(struct platform_device *pdev)
    90	{
    91		struct gpio_regmap_config config = {0};
    92		enum sl28cpld_gpio_type type;
    93		struct regmap *regmap;
    94		u32 base;
    95		int ret;
    96	
    97		if (!pdev->dev.parent)
    98			return -ENODEV;
    99	
   100		type = (uintptr_t)device_get_match_data(&pdev->dev);
   101		if (!type)
   102			return -ENODEV;
   103	
   104		ret = device_property_read_u32(&pdev->dev, "reg", &base);
   105		if (ret)
   106			return -EINVAL;
   107	
   108		regmap = dev_get_regmap(pdev->dev.parent, NULL);
   109		if (!regmap)
   110			return -ENODEV;
   111	
   112		config.regmap = regmap;
   113		config.parent = &pdev->dev;
   114		config.ngpio = 8;
   115	
   116		switch (type) {
   117		case SL28CPLD_GPIO:
   118			config.reg_dat_base = base + GPIO_REG_IN;
   119			config.reg_set_base = base + GPIO_REG_OUT;
   120			/* reg_dir_out_base might be zero */
 > 121			config.reg_dir_out_base = GPIO_REGMAP_ADDR(base + GPIO_REG_DIR);
   122	
   123			/* This type supports interrupts */
   124			ret = sl28cpld_gpio_irq_init(pdev, base, &config);
   125			if (ret)
   126				return ret;
   127			break;
   128		case SL28CPLD_GPO:
   129			config.reg_set_base = base + GPO_REG_OUT;
   130			break;
   131		case SL28CPLD_GPI:
   132			config.reg_dat_base = base + GPI_REG_IN;
   133			break;
   134		default:
   135			dev_err(&pdev->dev, "unknown type %d\n", type);
   136			return -ENODEV;
   137		}
   138	
   139		return PTR_ERR_OR_ZERO(devm_gpio_regmap_register(&pdev->dev, &config));
   140	}
   141	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux