* [pinctrl:devel 43/47] drivers/pinctrl/samsung/pinctrl-s3c64xx.c:283:9: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
@ 2016-11-08 12:58 kbuild test robot
2016-11-08 13:17 ` Linus Walleij
0 siblings, 1 reply; 3+ messages in thread
From: kbuild test robot @ 2016-11-08 12:58 UTC (permalink / raw)
To: Chanwoo Choi; +Cc: kbuild-all, linux-gpio, Linus Walleij, Krzysztof Kozlowski
[-- Attachment #1: Type: text/plain, Size: 34406 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git devel
head: 05e51a4da2af5f68c911adcb888f103460a2e5b3
commit: e40fde2c098df8bbaf82b5b80b43aa49eb2cb9af [43/47] pinctrl: samsung: Add the support the multiple IORESOURCE_MEM for one pin-bank
config: arm-allmodconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout e40fde2c098df8bbaf82b5b80b43aa49eb2cb9af
# save the attached .config to linux build tree
make.cross ARCH=arm
All error/warnings (new ones prefixed by >>):
drivers/pinctrl/samsung/pinctrl-s3c64xx.c: In function 's3c64xx_irq_set_function':
>> drivers/pinctrl/samsung/pinctrl-s3c64xx.c:283:9: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
reg = d->virt_base + bank->pctl_offset;
^~
drivers/pinctrl/samsung/pinctrl-s3c64xx.c: In function 's3c64xx_gpio_irq_set_mask':
drivers/pinctrl/samsung/pinctrl-s3c64xx.c:313:23: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
void __iomem *reg = d->virt_base + EINTMASK_REG(bank->eint_offset);
^~
drivers/pinctrl/samsung/pinctrl-s3c64xx.c: In function 's3c64xx_gpio_irq_ack':
drivers/pinctrl/samsung/pinctrl-s3c64xx.c:339:23: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
void __iomem *reg = d->virt_base + EINTPEND_REG(bank->eint_offset);
^~
drivers/pinctrl/samsung/pinctrl-s3c64xx.c: In function 's3c64xx_gpio_irq_set_type':
drivers/pinctrl/samsung/pinctrl-s3c64xx.c:362:9: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
reg = d->virt_base + EINTCON_REG(bank->eint_offset);
^~
In file included from include/linux/swab.h:4:0,
from include/uapi/linux/byteorder/big_endian.h:12,
from include/linux/byteorder/big_endian.h:4,
from arch/arm/include/uapi/asm/byteorder.h:19,
from include/asm-generic/bitops/le.h:5,
from arch/arm/include/asm/bitops.h:340,
from include/linux/bitops.h:36,
from include/linux/kernel.h:10,
from include/linux/list.h:8,
from include/linux/module.h:9,
from drivers/pinctrl/samsung/pinctrl-s3c64xx.c:18:
drivers/pinctrl/samsung/pinctrl-s3c64xx.c: In function 's3c64xx_eint_gpio_irq':
drivers/pinctrl/samsung/pinctrl-s3c64xx.c:424:22: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
svc = readl(drvdata->virt_base + SERVICE_REG);
^
include/uapi/linux/swab.h:113:54: note: in definition of macro '__swab32'
#define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
^
include/linux/byteorder/generic.h:88:21: note: in expansion of macro '__le32_to_cpu'
#define le32_to_cpu __le32_to_cpu
^~~~~~~~~~~~~
>> arch/arm/include/asm/io.h:301:32: note: in expansion of macro 'readl_relaxed'
#define readl(c) ({ u32 __v = readl_relaxed(c); __iormb(); __v; })
^~~~~~~~~~~~~
>> drivers/pinctrl/samsung/pinctrl-s3c64xx.c:424:9: note: in expansion of macro 'readl'
svc = readl(drvdata->virt_base + SERVICE_REG);
^~~~~
drivers/pinctrl/samsung/pinctrl-s3c64xx.c: In function 's3c64xx_eint0_irq_set_mask':
drivers/pinctrl/samsung/pinctrl-s3c64xx.c:524:15: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
val = readl(d->virt_base + EINT0MASK_REG);
^
include/uapi/linux/swab.h:113:54: note: in definition of macro '__swab32'
#define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
^
include/linux/byteorder/generic.h:88:21: note: in expansion of macro '__le32_to_cpu'
#define le32_to_cpu __le32_to_cpu
^~~~~~~~~~~~~
>> arch/arm/include/asm/io.h:301:32: note: in expansion of macro 'readl_relaxed'
#define readl(c) ({ u32 __v = readl_relaxed(c); __iormb(); __v; })
^~~~~~~~~~~~~
drivers/pinctrl/samsung/pinctrl-s3c64xx.c:524:8: note: in expansion of macro 'readl'
val = readl(d->virt_base + EINT0MASK_REG);
^~~~~
In file included from include/linux/io.h:25:0,
from include/linux/irq.h:24,
from drivers/pinctrl/samsung/pinctrl-s3c64xx.c:22:
drivers/pinctrl/samsung/pinctrl-s3c64xx.c:529:15: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
writel(val, d->virt_base + EINT0MASK_REG);
^
arch/arm/include/asm/io.h:297:71: note: in definition of macro 'writel_relaxed'
#define writel_relaxed(v,c) __raw_writel((__force u32) cpu_to_le32(v),c)
^
>> drivers/pinctrl/samsung/pinctrl-s3c64xx.c:529:2: note: in expansion of macro 'writel'
writel(val, d->virt_base + EINT0MASK_REG);
^~~~~~
drivers/pinctrl/samsung/pinctrl-s3c64xx.c: In function 's3c64xx_eint0_irq_ack':
drivers/pinctrl/samsung/pinctrl-s3c64xx.c:549:7: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
d->virt_base + EINT0PEND_REG);
^
arch/arm/include/asm/io.h:297:71: note: in definition of macro 'writel_relaxed'
#define writel_relaxed(v,c) __raw_writel((__force u32) cpu_to_le32(v),c)
^
drivers/pinctrl/samsung/pinctrl-s3c64xx.c:548:2: note: in expansion of macro 'writel'
writel(1 << ddata->eints[irqd->hwirq],
^~~~~~
drivers/pinctrl/samsung/pinctrl-s3c64xx.c: In function 's3c64xx_eint0_irq_set_type':
drivers/pinctrl/samsung/pinctrl-s3c64xx.c:572:9: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
reg = d->virt_base + EINT0CON0_REG;
^~
In file included from include/linux/swab.h:4:0,
from include/uapi/linux/byteorder/big_endian.h:12,
from include/linux/byteorder/big_endian.h:4,
from arch/arm/include/uapi/asm/byteorder.h:19,
from include/asm-generic/bitops/le.h:5,
from arch/arm/include/asm/bitops.h:340,
from include/linux/bitops.h:36,
from include/linux/kernel.h:10,
from include/linux/list.h:8,
from include/linux/module.h:9,
from drivers/pinctrl/samsung/pinctrl-s3c64xx.c:18:
drivers/pinctrl/samsung/pinctrl-s3c64xx.c: In function 's3c64xx_irq_demux_eint':
drivers/pinctrl/samsung/pinctrl-s3c64xx.c:610:22: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
pend = readl(drvdata->virt_base + EINT0PEND_REG);
^
include/uapi/linux/swab.h:113:54: note: in definition of macro '__swab32'
#define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
^
include/linux/byteorder/generic.h:88:21: note: in expansion of macro '__le32_to_cpu'
#define le32_to_cpu __le32_to_cpu
^~~~~~~~~~~~~
>> arch/arm/include/asm/io.h:301:32: note: in expansion of macro 'readl_relaxed'
#define readl(c) ({ u32 __v = readl_relaxed(c); __iormb(); __v; })
^~~~~~~~~~~~~
drivers/pinctrl/samsung/pinctrl-s3c64xx.c:610:9: note: in expansion of macro 'readl'
pend = readl(drvdata->virt_base + EINT0PEND_REG);
^~~~~
drivers/pinctrl/samsung/pinctrl-s3c64xx.c:611:22: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
mask = readl(drvdata->virt_base + EINT0MASK_REG);
^
include/uapi/linux/swab.h:113:54: note: in definition of macro '__swab32'
#define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
^
include/linux/byteorder/generic.h:88:21: note: in expansion of macro '__le32_to_cpu'
#define le32_to_cpu __le32_to_cpu
^~~~~~~~~~~~~
>> arch/arm/include/asm/io.h:301:32: note: in expansion of macro 'readl_relaxed'
#define readl(c) ({ u32 __v = readl_relaxed(c); __iormb(); __v; })
^~~~~~~~~~~~~
drivers/pinctrl/samsung/pinctrl-s3c64xx.c:611:9: note: in expansion of macro 'readl'
mask = readl(drvdata->virt_base + EINT0MASK_REG);
^~~~~
--
drivers/pinctrl//samsung/pinctrl-s3c64xx.c: In function 's3c64xx_irq_set_function':
drivers/pinctrl//samsung/pinctrl-s3c64xx.c:283:9: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
reg = d->virt_base + bank->pctl_offset;
^~
drivers/pinctrl//samsung/pinctrl-s3c64xx.c: In function 's3c64xx_gpio_irq_set_mask':
drivers/pinctrl//samsung/pinctrl-s3c64xx.c:313:23: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
void __iomem *reg = d->virt_base + EINTMASK_REG(bank->eint_offset);
^~
drivers/pinctrl//samsung/pinctrl-s3c64xx.c: In function 's3c64xx_gpio_irq_ack':
drivers/pinctrl//samsung/pinctrl-s3c64xx.c:339:23: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
void __iomem *reg = d->virt_base + EINTPEND_REG(bank->eint_offset);
^~
drivers/pinctrl//samsung/pinctrl-s3c64xx.c: In function 's3c64xx_gpio_irq_set_type':
drivers/pinctrl//samsung/pinctrl-s3c64xx.c:362:9: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
reg = d->virt_base + EINTCON_REG(bank->eint_offset);
^~
In file included from include/linux/swab.h:4:0,
from include/uapi/linux/byteorder/big_endian.h:12,
from include/linux/byteorder/big_endian.h:4,
from arch/arm/include/uapi/asm/byteorder.h:19,
from include/asm-generic/bitops/le.h:5,
from arch/arm/include/asm/bitops.h:340,
from include/linux/bitops.h:36,
from include/linux/kernel.h:10,
from include/linux/list.h:8,
from include/linux/module.h:9,
from drivers/pinctrl//samsung/pinctrl-s3c64xx.c:18:
drivers/pinctrl//samsung/pinctrl-s3c64xx.c: In function 's3c64xx_eint_gpio_irq':
drivers/pinctrl//samsung/pinctrl-s3c64xx.c:424:22: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
svc = readl(drvdata->virt_base + SERVICE_REG);
^
include/uapi/linux/swab.h:113:54: note: in definition of macro '__swab32'
#define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
^
include/linux/byteorder/generic.h:88:21: note: in expansion of macro '__le32_to_cpu'
#define le32_to_cpu __le32_to_cpu
^~~~~~~~~~~~~
>> arch/arm/include/asm/io.h:301:32: note: in expansion of macro 'readl_relaxed'
#define readl(c) ({ u32 __v = readl_relaxed(c); __iormb(); __v; })
^~~~~~~~~~~~~
drivers/pinctrl//samsung/pinctrl-s3c64xx.c:424:9: note: in expansion of macro 'readl'
svc = readl(drvdata->virt_base + SERVICE_REG);
^~~~~
drivers/pinctrl//samsung/pinctrl-s3c64xx.c: In function 's3c64xx_eint0_irq_set_mask':
drivers/pinctrl//samsung/pinctrl-s3c64xx.c:524:15: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
val = readl(d->virt_base + EINT0MASK_REG);
^
include/uapi/linux/swab.h:113:54: note: in definition of macro '__swab32'
#define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
^
include/linux/byteorder/generic.h:88:21: note: in expansion of macro '__le32_to_cpu'
#define le32_to_cpu __le32_to_cpu
^~~~~~~~~~~~~
>> arch/arm/include/asm/io.h:301:32: note: in expansion of macro 'readl_relaxed'
#define readl(c) ({ u32 __v = readl_relaxed(c); __iormb(); __v; })
^~~~~~~~~~~~~
drivers/pinctrl//samsung/pinctrl-s3c64xx.c:524:8: note: in expansion of macro 'readl'
val = readl(d->virt_base + EINT0MASK_REG);
^~~~~
In file included from include/linux/io.h:25:0,
from include/linux/irq.h:24,
from drivers/pinctrl//samsung/pinctrl-s3c64xx.c:22:
drivers/pinctrl//samsung/pinctrl-s3c64xx.c:529:15: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
writel(val, d->virt_base + EINT0MASK_REG);
^
arch/arm/include/asm/io.h:297:71: note: in definition of macro 'writel_relaxed'
#define writel_relaxed(v,c) __raw_writel((__force u32) cpu_to_le32(v),c)
^
drivers/pinctrl//samsung/pinctrl-s3c64xx.c:529:2: note: in expansion of macro 'writel'
writel(val, d->virt_base + EINT0MASK_REG);
^~~~~~
drivers/pinctrl//samsung/pinctrl-s3c64xx.c: In function 's3c64xx_eint0_irq_ack':
drivers/pinctrl//samsung/pinctrl-s3c64xx.c:549:7: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
d->virt_base + EINT0PEND_REG);
^
arch/arm/include/asm/io.h:297:71: note: in definition of macro 'writel_relaxed'
#define writel_relaxed(v,c) __raw_writel((__force u32) cpu_to_le32(v),c)
^
drivers/pinctrl//samsung/pinctrl-s3c64xx.c:548:2: note: in expansion of macro 'writel'
writel(1 << ddata->eints[irqd->hwirq],
^~~~~~
drivers/pinctrl//samsung/pinctrl-s3c64xx.c: In function 's3c64xx_eint0_irq_set_type':
drivers/pinctrl//samsung/pinctrl-s3c64xx.c:572:9: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
reg = d->virt_base + EINT0CON0_REG;
^~
In file included from include/linux/swab.h:4:0,
from include/uapi/linux/byteorder/big_endian.h:12,
from include/linux/byteorder/big_endian.h:4,
from arch/arm/include/uapi/asm/byteorder.h:19,
from include/asm-generic/bitops/le.h:5,
from arch/arm/include/asm/bitops.h:340,
from include/linux/bitops.h:36,
from include/linux/kernel.h:10,
from include/linux/list.h:8,
from include/linux/module.h:9,
from drivers/pinctrl//samsung/pinctrl-s3c64xx.c:18:
drivers/pinctrl//samsung/pinctrl-s3c64xx.c: In function 's3c64xx_irq_demux_eint':
drivers/pinctrl//samsung/pinctrl-s3c64xx.c:610:22: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
pend = readl(drvdata->virt_base + EINT0PEND_REG);
^
include/uapi/linux/swab.h:113:54: note: in definition of macro '__swab32'
#define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
^
include/linux/byteorder/generic.h:88:21: note: in expansion of macro '__le32_to_cpu'
#define le32_to_cpu __le32_to_cpu
^~~~~~~~~~~~~
>> arch/arm/include/asm/io.h:301:32: note: in expansion of macro 'readl_relaxed'
#define readl(c) ({ u32 __v = readl_relaxed(c); __iormb(); __v; })
^~~~~~~~~~~~~
drivers/pinctrl//samsung/pinctrl-s3c64xx.c:610:9: note: in expansion of macro 'readl'
pend = readl(drvdata->virt_base + EINT0PEND_REG);
^~~~~
drivers/pinctrl//samsung/pinctrl-s3c64xx.c:611:22: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
mask = readl(drvdata->virt_base + EINT0MASK_REG);
^
include/uapi/linux/swab.h:113:54: note: in definition of macro '__swab32'
#define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
^
include/linux/byteorder/generic.h:88:21: note: in expansion of macro '__le32_to_cpu'
#define le32_to_cpu __le32_to_cpu
^~~~~~~~~~~~~
>> arch/arm/include/asm/io.h:301:32: note: in expansion of macro 'readl_relaxed'
#define readl(c) ({ u32 __v = readl_relaxed(c); __iormb(); __v; })
^~~~~~~~~~~~~
drivers/pinctrl//samsung/pinctrl-s3c64xx.c:611:9: note: in expansion of macro 'readl'
mask = readl(drvdata->virt_base + EINT0MASK_REG);
^~~~~
vim +283 drivers/pinctrl/samsung/pinctrl-s3c64xx.c
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 277 void __iomem *reg;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 278 u8 shift;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 279 u32 mask;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 280 u32 val;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 281
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 282 /* Make sure that pin is configured as interrupt */
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 @283 reg = d->virt_base + bank->pctl_offset;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 284 shift = pin;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 285 if (bank_type->fld_width[PINCFG_TYPE_FUNC] * shift >= 32) {
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 286 /* 4-bit bank type with 2 con regs */
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 287 reg += 4;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 288 shift -= 8;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 289 }
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 290
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 291 shift = shift * bank_type->fld_width[PINCFG_TYPE_FUNC];
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 292 mask = (1 << bank_type->fld_width[PINCFG_TYPE_FUNC]) - 1;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 293
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 294 spin_lock_irqsave(&bank->slock, flags);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 295
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 296 val = readl(reg);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 297 val &= ~(mask << shift);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 298 val |= bank->eint_func << shift;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 299 writel(val, reg);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 300
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 301 spin_unlock_irqrestore(&bank->slock, flags);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 302 }
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 303
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 304 /*
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 305 * Functions for EINT GPIO configuration (EINT groups 1-9)
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 306 */
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 307
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 308 static inline void s3c64xx_gpio_irq_set_mask(struct irq_data *irqd, bool mask)
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 309 {
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 310 struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 311 struct samsung_pinctrl_drv_data *d = bank->drvdata;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 312 unsigned char index = EINT_OFFS(bank->eint_offset) + irqd->hwirq;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 313 void __iomem *reg = d->virt_base + EINTMASK_REG(bank->eint_offset);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 314 u32 val;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 315
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 316 val = readl(reg);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 317 if (mask)
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 318 val |= 1 << index;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 319 else
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 320 val &= ~(1 << index);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 321 writel(val, reg);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 322 }
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 323
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 324 static void s3c64xx_gpio_irq_unmask(struct irq_data *irqd)
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 325 {
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 326 s3c64xx_gpio_irq_set_mask(irqd, false);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 327 }
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 328
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 329 static void s3c64xx_gpio_irq_mask(struct irq_data *irqd)
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 330 {
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 331 s3c64xx_gpio_irq_set_mask(irqd, true);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 332 }
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 333
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 334 static void s3c64xx_gpio_irq_ack(struct irq_data *irqd)
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 335 {
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 336 struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 337 struct samsung_pinctrl_drv_data *d = bank->drvdata;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 338 unsigned char index = EINT_OFFS(bank->eint_offset) + irqd->hwirq;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 339 void __iomem *reg = d->virt_base + EINTPEND_REG(bank->eint_offset);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 340
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 341 writel(1 << index, reg);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 342 }
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 343
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 344 static int s3c64xx_gpio_irq_set_type(struct irq_data *irqd, unsigned int type)
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 345 {
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 346 struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 347 struct samsung_pinctrl_drv_data *d = bank->drvdata;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 348 void __iomem *reg;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 349 int trigger;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 350 u8 shift;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 351 u32 val;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 352
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 353 trigger = s3c64xx_irq_get_trigger(type);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 354 if (trigger < 0) {
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 355 pr_err("unsupported external interrupt type\n");
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 356 return -EINVAL;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 357 }
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 358
f66eb498 drivers/pinctrl/samsung/pinctrl-s3c64xx.c Thomas Gleixner 2015-06-23 359 s3c64xx_irq_set_handler(irqd, type);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 360
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 361 /* Set up interrupt trigger */
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 362 reg = d->virt_base + EINTCON_REG(bank->eint_offset);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 363 shift = EINT_OFFS(bank->eint_offset) + irqd->hwirq;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 364 shift = 4 * (shift / 4); /* 4 EINTs per trigger selector */
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 365
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 366 val = readl(reg);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 367 val &= ~(EINT_CON_MASK << shift);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 368 val |= trigger << shift;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 369 writel(val, reg);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 370
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 371 s3c64xx_irq_set_function(d, bank, irqd->hwirq);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 372
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 373 return 0;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 374 }
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 375
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 376 /*
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 377 * irq_chip for gpio interrupts.
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 378 */
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 379 static struct irq_chip s3c64xx_gpio_irq_chip = {
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 380 .name = "GPIO",
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 381 .irq_unmask = s3c64xx_gpio_irq_unmask,
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 382 .irq_mask = s3c64xx_gpio_irq_mask,
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 383 .irq_ack = s3c64xx_gpio_irq_ack,
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 384 .irq_set_type = s3c64xx_gpio_irq_set_type,
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 385 };
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 386
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 387 static int s3c64xx_gpio_irq_map(struct irq_domain *h, unsigned int virq,
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 388 irq_hw_number_t hw)
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 389 {
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 390 struct samsung_pin_bank *bank = h->host_data;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 391
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 392 if (!(bank->eint_mask & (1 << hw)))
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 393 return -EINVAL;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 394
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 395 irq_set_chip_and_handler(virq,
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 396 &s3c64xx_gpio_irq_chip, handle_level_irq);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 397 irq_set_chip_data(virq, bank);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 398
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 399 return 0;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 400 }
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 401
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 402 /*
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 403 * irq domain callbacks for external gpio interrupt controller.
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 404 */
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 405 static const struct irq_domain_ops s3c64xx_gpio_irqd_ops = {
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 406 .map = s3c64xx_gpio_irq_map,
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 407 .xlate = irq_domain_xlate_twocell,
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 408 };
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 409
bd0b9ac4 drivers/pinctrl/samsung/pinctrl-s3c64xx.c Thomas Gleixner 2015-09-14 410 static void s3c64xx_eint_gpio_irq(struct irq_desc *desc)
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 411 {
5663bb27 drivers/pinctrl/samsung/pinctrl-s3c64xx.c Jiang Liu 2015-06-04 412 struct irq_chip *chip = irq_desc_get_chip(desc);
5663bb27 drivers/pinctrl/samsung/pinctrl-s3c64xx.c Jiang Liu 2015-06-04 413 struct s3c64xx_eint_gpio_data *data = irq_desc_get_handler_data(desc);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 414 struct samsung_pinctrl_drv_data *drvdata = data->drvdata;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 415
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 416 chained_irq_enter(chip, desc);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 417
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 418 do {
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 419 unsigned int svc;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 420 unsigned int group;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 421 unsigned int pin;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 422 unsigned int virq;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 423
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 @424 svc = readl(drvdata->virt_base + SERVICE_REG);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 425 group = SVC_GROUP(svc);
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 426 pin = svc & SVC_NUM_MASK;
61dd7261 drivers/pinctrl/pinctrl-s3c64xx.c Tomasz Figa 2013-03-18 427
:::::: The code at line 283 was first introduced by commit
:::::: 61dd726131777017348b70bd8576b42994a8ffa2 pinctrl: Add pinctrl-s3c64xx driver
:::::: TO: Tomasz Figa <tomasz.figa@gmail.com>
:::::: CC: Linus Walleij <linus.walleij@linaro.org>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 59446 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [pinctrl:devel 43/47] drivers/pinctrl/samsung/pinctrl-s3c64xx.c:283:9: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
2016-11-08 12:58 [pinctrl:devel 43/47] drivers/pinctrl/samsung/pinctrl-s3c64xx.c:283:9: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'? kbuild test robot
@ 2016-11-08 13:17 ` Linus Walleij
2016-11-09 0:47 ` Chanwoo Choi
0 siblings, 1 reply; 3+ messages in thread
From: Linus Walleij @ 2016-11-08 13:17 UTC (permalink / raw)
To: Chanwoo Choi
Cc: kbuild-all@01.org, linux-gpio@vger.kernel.org,
Krzysztof Kozlowski
On Tue, Nov 8, 2016 at 1:58 PM, kbuild test robot
<fengguang.wu@intel.com> wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git devel
> head: 05e51a4da2af5f68c911adcb888f103460a2e5b3
> commit: e40fde2c098df8bbaf82b5b80b43aa49eb2cb9af [43/47] pinctrl: samsung: Add the support the multiple IORESOURCE_MEM for one pin-bank
> config: arm-allmodconfig (attached as .config)
> compiler: arm-linux-gnueabi-gcc (Debian 6.1.1-9) 6.1.1 20160705
> reproduce:
> wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> git checkout e40fde2c098df8bbaf82b5b80b43aa49eb2cb9af
> # save the attached .config to linux build tree
> make.cross ARCH=arm
>
> All error/warnings (new ones prefixed by >>):
>
> drivers/pinctrl/samsung/pinctrl-s3c64xx.c: In function 's3c64xx_irq_set_function':
>>> drivers/pinctrl/samsung/pinctrl-s3c64xx.c:283:9: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
> reg = d->virt_base + bank->pctl_offset;
> ^~
This patch does not compile. I took out both patches from my tree as they
are causing build regressions.
Please develop against the latest release candidate or the "devel" branch
in the pin control tree.
Please also split the patches better as Krzysztof requested.
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [pinctrl:devel 43/47] drivers/pinctrl/samsung/pinctrl-s3c64xx.c:283:9: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
2016-11-08 13:17 ` Linus Walleij
@ 2016-11-09 0:47 ` Chanwoo Choi
0 siblings, 0 replies; 3+ messages in thread
From: Chanwoo Choi @ 2016-11-09 0:47 UTC (permalink / raw)
To: Linus Walleij
Cc: kbuild-all@01.org, linux-gpio@vger.kernel.org,
Krzysztof Kozlowski
Hi Linus,
On 2016년 11월 08일 22:17, Linus Walleij wrote:
> On Tue, Nov 8, 2016 at 1:58 PM, kbuild test robot
> <fengguang.wu@intel.com> wrote:
>
>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git devel
>> head: 05e51a4da2af5f68c911adcb888f103460a2e5b3
>> commit: e40fde2c098df8bbaf82b5b80b43aa49eb2cb9af [43/47] pinctrl: samsung: Add the support the multiple IORESOURCE_MEM for one pin-bank
>> config: arm-allmodconfig (attached as .config)
>> compiler: arm-linux-gnueabi-gcc (Debian 6.1.1-9) 6.1.1 20160705
>> reproduce:
>> wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
>> chmod +x ~/bin/make.cross
>> git checkout e40fde2c098df8bbaf82b5b80b43aa49eb2cb9af
>> # save the attached .config to linux build tree
>> make.cross ARCH=arm
>>
>> All error/warnings (new ones prefixed by >>):
>>
>> drivers/pinctrl/samsung/pinctrl-s3c64xx.c: In function 's3c64xx_irq_set_function':
>>>> drivers/pinctrl/samsung/pinctrl-s3c64xx.c:283:9: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'?
>> reg = d->virt_base + bank->pctl_offset;
>> ^~
>
> This patch does not compile. I took out both patches from my tree as they
> are causing build regressions.
>
> Please develop against the latest release candidate or the "devel" branch
> in the pin control tree.
>
> Please also split the patches better as Krzysztof requested.
I'm sorry for my mistake. I'll resend the patch after fixing it.
Best Regards,
Chanwoo Choi
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-11-09 0:47 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-08 12:58 [pinctrl:devel 43/47] drivers/pinctrl/samsung/pinctrl-s3c64xx.c:283:9: error: 'struct samsung_pinctrl_drv_data' has no member named 'virt_base'; did you mean 'pin_base'? kbuild test robot
2016-11-08 13:17 ` Linus Walleij
2016-11-09 0:47 ` Chanwoo Choi
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.