[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'?

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

 



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@xxxxxxxxx>
:::::: CC: Linus Walleij <linus.walleij@xxxxxxxxxx>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux