From: kbuild test robot <lkp@intel.com> Cc: kbuild-all@01.org, linus.walleij@linaro.org, andy.shevchenko@gmail.com, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org, William Breathitt Gray <vilhelm.gray@gmail.com> Subject: Re: [PATCH v2 3/8] gpio: pci-idio-16: Implement get_multiple callback Date: Sun, 18 Mar 2018 03:16:08 +0800 [thread overview] Message-ID: <201803180345.UikgMo06%fengguang.wu@intel.com> (raw) In-Reply-To: <b856f88b5f52e1787860f7dbca44673905f79744.1521128287.git.vilhelm.gray@gmail.com> Hi William, I love your patch! Perhaps something to improve: [auto build test WARNING on v4.16-rc4] [also build test WARNING on next-20180316] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/William-Breathitt-Gray/Implement-get_multiple-for-ACCES-and-PC-104-drivers/20180317-224135 reproduce: # apt-get install sparse make ARCH=x86_64 allmodconfig make C=1 CF=-D__CHECK_ENDIAN__ sparse warnings: (new ones prefixed by >>) drivers/gpio/gpio-pci-idio-16.c:139:17: sparse: undefined identifier 'word_mask' drivers/gpio/gpio-pci-idio-16.c:140:22: sparse: undefined identifier 'word_mask' >> drivers/gpio/gpio-pci-idio-16.c:120:27: sparse: dereference of noderef expression drivers/gpio/gpio-pci-idio-16.c:120:52: sparse: dereference of noderef expression drivers/gpio/gpio-pci-idio-16.c:121:27: sparse: dereference of noderef expression drivers/gpio/gpio-pci-idio-16.c:121:51: sparse: dereference of noderef expression >> drivers/gpio/gpio-pci-idio-16.c:139:17: sparse: generating address of non-lvalue (3) drivers/gpio/gpio-pci-idio-16.c: In function 'idio_16_gpio_get_multiple': drivers/gpio/gpio-pci-idio-16.c:139:3: error: 'word_mask' undeclared (first use in this function); did you mean 'port_mask'? word_mask = mask[word_index] & (port_mask << word_offset); ^~~~~~~~~ port_mask drivers/gpio/gpio-pci-idio-16.c:139:3: note: each undeclared identifier is reported only once for each function it appears in drivers/gpio/gpio-pci-idio-16.c:146:24: warning: passing argument 1 of 'ioread8' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] port_state = ioread8(ports + i); ^~~~~ In file included from arch/x86/include/asm/io.h:223:0, from arch/x86/include/asm/realmode.h:15, from arch/x86/include/asm/acpi.h:33, from arch/x86/include/asm/fixmap.h:19, from arch/x86/include/asm/apic.h:10, from arch/x86/include/asm/smp.h:13, from arch/x86/include/asm/mmzone_64.h:11, from arch/x86/include/asm/mmzone.h:5, from include/linux/mmzone.h:912, from include/linux/gfp.h:6, from include/linux/idr.h:16, from include/linux/kernfs.h:14, from include/linux/sysfs.h:16, from include/linux/kobject.h:20, from include/linux/device.h:16, from drivers/gpio/gpio-pci-idio-16.c:16: include/asm-generic/iomap.h:29:21: note: expected 'void *' but argument is of type 'const u8 * {aka const unsigned char *}' extern unsigned int ioread8(void __iomem *); ^~~~~~~ drivers/gpio/gpio-pci-idio-16.c:116:16: warning: unused variable 'mask_word' [-Wunused-variable] unsigned long mask_word; ^~~~~~~~~ vim +120 drivers/gpio/gpio-pci-idio-16.c 106 107 static int idio_16_gpio_get_multiple(struct gpio_chip *chip, 108 unsigned long *mask, unsigned long *bits) 109 { 110 struct idio_16_gpio *const idio16gpio = gpiochip_get_data(chip); 111 size_t i; 112 const unsigned int gpio_reg_size = 8; 113 unsigned int bits_offset; 114 size_t word_index; 115 unsigned int word_offset; 116 unsigned long mask_word; 117 const unsigned long port_mask = GENMASK(gpio_reg_size, 0); 118 unsigned long port_state; 119 const u8 __iomem ports[] = { > 120 idio16gpio->reg->out0_7, idio16gpio->reg->out8_15, 121 idio16gpio->reg->in0_7, idio16gpio->reg->in8_15 122 }; 123 124 /* clear bits array to a clean slate */ 125 bitmap_zero(bits, chip->ngpio); 126 127 /* get bits are evaluated a gpio port register at a time */ 128 for (i = 0; i < ARRAY_SIZE(ports); i++) { 129 /* gpio offset in bits array */ 130 bits_offset = i * gpio_reg_size; 131 132 /* word index for bits array */ 133 word_index = BIT_WORD(bits_offset); 134 135 /* gpio offset within current word of bits array */ 136 word_offset = bits_offset % BITS_PER_LONG; 137 138 /* mask of get bits for current gpio within current word */ > 139 word_mask = mask[word_index] & (port_mask << word_offset); 140 if (!word_mask) { 141 /* no get bits in this port so skip to next one */ 142 continue; 143 } 144 145 /* read bits from current gpio port */ 146 port_state = ioread8(ports + i); 147 148 /* store acquired bits at respective bits array offset */ 149 bits[word_index] |= port_state << word_offset; 150 } 151 152 return 0; 153 } 154 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
WARNING: multiple messages have this Message-ID (diff)
From: kbuild test robot <lkp@intel.com> To: William Breathitt Gray <vilhelm.gray@gmail.com> Cc: kbuild-all@01.org, linus.walleij@linaro.org, andy.shevchenko@gmail.com, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org, William Breathitt Gray <vilhelm.gray@gmail.com> Subject: Re: [PATCH v2 3/8] gpio: pci-idio-16: Implement get_multiple callback Date: Sun, 18 Mar 2018 03:16:08 +0800 [thread overview] Message-ID: <201803180345.UikgMo06%fengguang.wu@intel.com> (raw) In-Reply-To: <b856f88b5f52e1787860f7dbca44673905f79744.1521128287.git.vilhelm.gray@gmail.com> Hi William, I love your patch! Perhaps something to improve: [auto build test WARNING on v4.16-rc4] [also build test WARNING on next-20180316] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/William-Breathitt-Gray/Implement-get_multiple-for-ACCES-and-PC-104-drivers/20180317-224135 reproduce: # apt-get install sparse make ARCH=x86_64 allmodconfig make C=1 CF=-D__CHECK_ENDIAN__ sparse warnings: (new ones prefixed by >>) drivers/gpio/gpio-pci-idio-16.c:139:17: sparse: undefined identifier 'word_mask' drivers/gpio/gpio-pci-idio-16.c:140:22: sparse: undefined identifier 'word_mask' >> drivers/gpio/gpio-pci-idio-16.c:120:27: sparse: dereference of noderef expression drivers/gpio/gpio-pci-idio-16.c:120:52: sparse: dereference of noderef expression drivers/gpio/gpio-pci-idio-16.c:121:27: sparse: dereference of noderef expression drivers/gpio/gpio-pci-idio-16.c:121:51: sparse: dereference of noderef expression >> drivers/gpio/gpio-pci-idio-16.c:139:17: sparse: generating address of non-lvalue (3) drivers/gpio/gpio-pci-idio-16.c: In function 'idio_16_gpio_get_multiple': drivers/gpio/gpio-pci-idio-16.c:139:3: error: 'word_mask' undeclared (first use in this function); did you mean 'port_mask'? word_mask = mask[word_index] & (port_mask << word_offset); ^~~~~~~~~ port_mask drivers/gpio/gpio-pci-idio-16.c:139:3: note: each undeclared identifier is reported only once for each function it appears in drivers/gpio/gpio-pci-idio-16.c:146:24: warning: passing argument 1 of 'ioread8' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] port_state = ioread8(ports + i); ^~~~~ In file included from arch/x86/include/asm/io.h:223:0, from arch/x86/include/asm/realmode.h:15, from arch/x86/include/asm/acpi.h:33, from arch/x86/include/asm/fixmap.h:19, from arch/x86/include/asm/apic.h:10, from arch/x86/include/asm/smp.h:13, from arch/x86/include/asm/mmzone_64.h:11, from arch/x86/include/asm/mmzone.h:5, from include/linux/mmzone.h:912, from include/linux/gfp.h:6, from include/linux/idr.h:16, from include/linux/kernfs.h:14, from include/linux/sysfs.h:16, from include/linux/kobject.h:20, from include/linux/device.h:16, from drivers/gpio/gpio-pci-idio-16.c:16: include/asm-generic/iomap.h:29:21: note: expected 'void *' but argument is of type 'const u8 * {aka const unsigned char *}' extern unsigned int ioread8(void __iomem *); ^~~~~~~ drivers/gpio/gpio-pci-idio-16.c:116:16: warning: unused variable 'mask_word' [-Wunused-variable] unsigned long mask_word; ^~~~~~~~~ vim +120 drivers/gpio/gpio-pci-idio-16.c 106 107 static int idio_16_gpio_get_multiple(struct gpio_chip *chip, 108 unsigned long *mask, unsigned long *bits) 109 { 110 struct idio_16_gpio *const idio16gpio = gpiochip_get_data(chip); 111 size_t i; 112 const unsigned int gpio_reg_size = 8; 113 unsigned int bits_offset; 114 size_t word_index; 115 unsigned int word_offset; 116 unsigned long mask_word; 117 const unsigned long port_mask = GENMASK(gpio_reg_size, 0); 118 unsigned long port_state; 119 const u8 __iomem ports[] = { > 120 idio16gpio->reg->out0_7, idio16gpio->reg->out8_15, 121 idio16gpio->reg->in0_7, idio16gpio->reg->in8_15 122 }; 123 124 /* clear bits array to a clean slate */ 125 bitmap_zero(bits, chip->ngpio); 126 127 /* get bits are evaluated a gpio port register at a time */ 128 for (i = 0; i < ARRAY_SIZE(ports); i++) { 129 /* gpio offset in bits array */ 130 bits_offset = i * gpio_reg_size; 131 132 /* word index for bits array */ 133 word_index = BIT_WORD(bits_offset); 134 135 /* gpio offset within current word of bits array */ 136 word_offset = bits_offset % BITS_PER_LONG; 137 138 /* mask of get bits for current gpio within current word */ > 139 word_mask = mask[word_index] & (port_mask << word_offset); 140 if (!word_mask) { 141 /* no get bits in this port so skip to next one */ 142 continue; 143 } 144 145 /* read bits from current gpio port */ 146 port_state = ioread8(ports + i); 147 148 /* store acquired bits at respective bits array offset */ 149 bits[word_index] |= port_state << word_offset; 150 } 151 152 return 0; 153 } 154 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
next prev parent reply other threads:[~2018-03-17 19:16 UTC|newest] Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-03-15 15:46 [PATCH v2 0/8] Implement get_multiple for ACCES and PC/104 drivers William Breathitt Gray 2018-03-15 15:46 ` [PATCH v2 1/8] iio: stx104: Implement get_multiple callback William Breathitt Gray 2018-03-15 15:46 ` [PATCH v2 2/8] gpio: 104-idio-16: " William Breathitt Gray 2018-03-15 15:47 ` [PATCH v2 3/8] gpio: pci-idio-16: " William Breathitt Gray 2018-03-17 19:16 ` kbuild test robot [this message] 2018-03-17 19:16 ` kbuild test robot 2018-03-15 15:52 ` [PATCH v2 4/8] gpio: pcie-idio-24: Implement get_multiple/set_multiple callbacks William Breathitt Gray 2018-03-17 21:01 ` kbuild test robot 2018-03-17 21:01 ` kbuild test robot 2018-03-15 15:53 ` [PATCH v2 5/8] gpio: 104-dio-48e: Implement get_multiple callback William Breathitt Gray 2018-03-17 15:47 ` kbuild test robot 2018-03-17 15:47 ` kbuild test robot 2018-03-15 15:53 ` [PATCH v2 6/8] gpio: 104-idi-48: " William Breathitt Gray 2018-03-17 15:13 ` kbuild test robot 2018-03-17 15:13 ` kbuild test robot 2018-03-15 15:53 ` [PATCH v2 7/8] gpio: gpio-mm: " William Breathitt Gray 2018-03-15 15:53 ` [PATCH v2 8/8] gpio: ws16c48: " William Breathitt Gray
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=201803180345.UikgMo06%fengguang.wu@intel.com \ --to=lkp@intel.com \ --cc=andy.shevchenko@gmail.com \ --cc=kbuild-all@01.org \ --cc=linus.walleij@linaro.org \ --cc=linux-gpio@vger.kernel.org \ --cc=linux-iio@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=vilhelm.gray@gmail.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.