Re: [PATCH] dmaengine: fsldma: Replace DMA_IN/OUT by FSL_DMA_IN/OUT

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

 



Hi Wen,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v4.15-rc5 next-20171222]
[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/Wen-He/dmaengine-fsldma-Replace-DMA_IN-OUT-by-FSL_DMA_IN-OUT/20171226-000718
config: powerpc-ge_imp3a_defconfig (attached as .config)
compiler: powerpc-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        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
        make.cross ARCH=powerpc 

All error/warnings (new ones prefixed by >>):

   In file included from drivers/dma/fsldma.c:41:0:
>> drivers/dma/fsldma.h:229:13: error: conflicting types for 'ioread32'
    static void ioread32(const u32 __iomem *addr)
                ^~~~~~~~
   In file included from arch/powerpc/include/asm/io.h:36:0,
                    from include/linux/io.h:25,
                    from include/linux/irq.h:25,
                    from arch/powerpc/include/asm/hardirq.h:6,
                    from include/linux/hardirq.h:9,
                    from include/linux/interrupt.h:13,
                    from include/linux/pci.h:32,
                    from drivers/dma/fsldma.c:29:
   include/asm-generic/iomap.h:32:21: note: previous declaration of 'ioread32' was here
    extern unsigned int ioread32(void __iomem *);
                        ^~~~~~~~
   In file included from drivers/dma/fsldma.c:41:0:
   drivers/dma/fsldma.h: In function 'ioread32':
>> drivers/dma/fsldma.h:231:9: warning: 'return' with a value, in function returning void
     return in_le32(addr);
            ^~~~~~~~~~~~~
   drivers/dma/fsldma.h:229:13: note: declared here
    static void ioread32(const u32 __iomem *addr)
                ^~~~~~~~
   drivers/dma/fsldma.h: At top level:
>> drivers/dma/fsldma.h:234:13: error: conflicting types for 'iowrite32'
    static void iowrite32(u32 __iomem *addr, u32 val)
                ^~~~~~~~~
   In file included from arch/powerpc/include/asm/io.h:36:0,
                    from include/linux/io.h:25,
                    from include/linux/irq.h:25,
                    from arch/powerpc/include/asm/hardirq.h:6,
                    from include/linux/hardirq.h:9,
                    from include/linux/interrupt.h:13,
                    from include/linux/pci.h:32,
                    from drivers/dma/fsldma.c:29:
   include/asm-generic/iomap.h:42:13: note: previous declaration of 'iowrite32' was here
    extern void iowrite32(u32, void __iomem *);
                ^~~~~~~~~
   In file included from drivers/dma/fsldma.c:41:0:
>> drivers/dma/fsldma.h:239:13: error: conflicting types for 'ioread32be'
    static void ioread32be(const u32 __iomem *addr)
                ^~~~~~~~~~
   In file included from arch/powerpc/include/asm/io.h:36:0,
                    from include/linux/io.h:25,
                    from include/linux/irq.h:25,
                    from arch/powerpc/include/asm/hardirq.h:6,
                    from include/linux/hardirq.h:9,
                    from include/linux/interrupt.h:13,
                    from include/linux/pci.h:32,
                    from drivers/dma/fsldma.c:29:
   include/asm-generic/iomap.h:33:21: note: previous declaration of 'ioread32be' was here
    extern unsigned int ioread32be(void __iomem *);
                        ^~~~~~~~~~
   In file included from drivers/dma/fsldma.c:41:0:
   drivers/dma/fsldma.h: In function 'ioread32be':
   drivers/dma/fsldma.h:241:9: warning: 'return' with a value, in function returning void
     return in_be32(addr);
            ^~~~~~~~~~~~~
   drivers/dma/fsldma.h:239:13: note: declared here
    static void ioread32be(const u32 __iomem *addr)
                ^~~~~~~~~~
   drivers/dma/fsldma.h: At top level:
>> drivers/dma/fsldma.h:244:13: error: conflicting types for 'iowrite32be'
    static void iowrite32be(u32 __iomem *addr, u32 val)
                ^~~~~~~~~~~
   In file included from arch/powerpc/include/asm/io.h:36:0,
                    from include/linux/io.h:25,
                    from include/linux/irq.h:25,
                    from arch/powerpc/include/asm/hardirq.h:6,
                    from include/linux/hardirq.h:9,
                    from include/linux/interrupt.h:13,
                    from include/linux/pci.h:32,
                    from drivers/dma/fsldma.c:29:
   include/asm-generic/iomap.h:43:13: note: previous declaration of 'iowrite32be' was here
    extern void iowrite32be(u32, void __iomem *);
                ^~~~~~~~~~~
   In file included from drivers/dma/fsldma.c:41:0:
   drivers/dma/fsldma.c: In function 'set_sr':
>> drivers/dma/fsldma.c:56:37: warning: passing argument 1 of 'iowrite32be' makes pointer from integer without a cast [-Wint-conversion]
     FSL_DMA_OUT(chan, &chan->regs->sr, val, 32);
                                        ^
   drivers/dma/fsldma.h:256:23: note: in definition of macro 'FSL_DMA_OUT'
       iowrite##width##be(val, addr) : iowrite##width \
                          ^~~
   drivers/dma/fsldma.h:244:13: note: expected 'u32 * {aka unsigned int *}' but argument is of type 'u32 {aka unsigned int}'
    static void iowrite32be(u32 __iomem *addr, u32 val)
                ^~~~~~~~~~~
>> drivers/dma/fsldma.c:56:20: warning: passing argument 2 of 'iowrite32be' makes integer from pointer without a cast [-Wint-conversion]
     FSL_DMA_OUT(chan, &chan->regs->sr, val, 32);
                       ^
   drivers/dma/fsldma.h:256:28: note: in definition of macro 'FSL_DMA_OUT'
       iowrite##width##be(val, addr) : iowrite##width \
                               ^~~~
   drivers/dma/fsldma.h:244:13: note: expected 'u32 {aka unsigned int}' but argument is of type 'u32 * {aka unsigned int *}'
    static void iowrite32be(u32 __iomem *addr, u32 val)
                ^~~~~~~~~~~
>> drivers/dma/fsldma.c:56:37: warning: passing argument 1 of 'iowrite32' makes pointer from integer without a cast [-Wint-conversion]
     FSL_DMA_OUT(chan, &chan->regs->sr, val, 32);
                                        ^
   drivers/dma/fsldma.h:257:5: note: in definition of macro 'FSL_DMA_OUT'
       (val, addr))
        ^~~
   drivers/dma/fsldma.h:234:13: note: expected 'u32 * {aka unsigned int *}' but argument is of type 'u32 {aka unsigned int}'
    static void iowrite32(u32 __iomem *addr, u32 val)
                ^~~~~~~~~
>> drivers/dma/fsldma.c:56:20: warning: passing argument 2 of 'iowrite32' makes integer from pointer without a cast [-Wint-conversion]
     FSL_DMA_OUT(chan, &chan->regs->sr, val, 32);
                       ^
   drivers/dma/fsldma.h:257:10: note: in definition of macro 'FSL_DMA_OUT'
       (val, addr))
             ^~~~
   drivers/dma/fsldma.h:234:13: note: expected 'u32 {aka unsigned int}' but argument is of type 'u32 * {aka unsigned int *}'
    static void iowrite32(u32 __iomem *addr, u32 val)
                ^~~~~~~~~
   drivers/dma/fsldma.c: In function 'get_sr':
>> drivers/dma/fsldma.h:252:28: error: void value not ignored as it ought to be
      (((fsl_dma)->feature & FSL_DMA_BIG_ENDIAN) ?  \
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       ioread##width##be(addr) : ioread##width(addr))
       ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
>> drivers/dma/fsldma.c:61:9: note: in expansion of macro 'FSL_DMA_IN'
     return FSL_DMA_IN(chan, &chan->regs->sr, 32);
            ^~~~~~~~~~
   drivers/dma/fsldma.c: In function 'set_mr':
   drivers/dma/fsldma.c:66:37: warning: passing argument 1 of 'iowrite32be' makes pointer from integer without a cast [-Wint-conversion]
     FSL_DMA_OUT(chan, &chan->regs->mr, val, 32);
                                        ^
   drivers/dma/fsldma.h:256:23: note: in definition of macro 'FSL_DMA_OUT'
       iowrite##width##be(val, addr) : iowrite##width \
                          ^~~
   drivers/dma/fsldma.h:244:13: note: expected 'u32 * {aka unsigned int *}' but argument is of type 'u32 {aka unsigned int}'
    static void iowrite32be(u32 __iomem *addr, u32 val)
                ^~~~~~~~~~~
   drivers/dma/fsldma.c:66:20: warning: passing argument 2 of 'iowrite32be' makes integer from pointer without a cast [-Wint-conversion]
     FSL_DMA_OUT(chan, &chan->regs->mr, val, 32);
                       ^
   drivers/dma/fsldma.h:256:28: note: in definition of macro 'FSL_DMA_OUT'
       iowrite##width##be(val, addr) : iowrite##width \
                               ^~~~
   drivers/dma/fsldma.h:244:13: note: expected 'u32 {aka unsigned int}' but argument is of type 'u32 * {aka unsigned int *}'
    static void iowrite32be(u32 __iomem *addr, u32 val)
                ^~~~~~~~~~~
   drivers/dma/fsldma.c:66:37: warning: passing argument 1 of 'iowrite32' makes pointer from integer without a cast [-Wint-conversion]
     FSL_DMA_OUT(chan, &chan->regs->mr, val, 32);
                                        ^
   drivers/dma/fsldma.h:257:5: note: in definition of macro 'FSL_DMA_OUT'
       (val, addr))
        ^~~
   drivers/dma/fsldma.h:234:13: note: expected 'u32 * {aka unsigned int *}' but argument is of type 'u32 {aka unsigned int}'
    static void iowrite32(u32 __iomem *addr, u32 val)
                ^~~~~~~~~
   drivers/dma/fsldma.c:66:20: warning: passing argument 2 of 'iowrite32' makes integer from pointer without a cast [-Wint-conversion]
     FSL_DMA_OUT(chan, &chan->regs->mr, val, 32);
                       ^
   drivers/dma/fsldma.h:257:10: note: in definition of macro 'FSL_DMA_OUT'
       (val, addr))
             ^~~~
   drivers/dma/fsldma.h:234:13: note: expected 'u32 {aka unsigned int}' but argument is of type 'u32 * {aka unsigned int *}'
    static void iowrite32(u32 __iomem *addr, u32 val)
                ^~~~~~~~~
   drivers/dma/fsldma.c: In function 'get_mr':
>> drivers/dma/fsldma.h:252:28: error: void value not ignored as it ought to be
      (((fsl_dma)->feature & FSL_DMA_BIG_ENDIAN) ?  \
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       ioread##width##be(addr) : ioread##width(addr))
       ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
   drivers/dma/fsldma.c:71:9: note: in expansion of macro 'FSL_DMA_IN'
     return FSL_DMA_IN(chan, &chan->regs->mr, 32);
            ^~~~~~~~~~
   drivers/dma/fsldma.c: In function 'set_cdar':
>> drivers/dma/fsldma.h:256:4: error: implicit declaration of function 'iowrite64be'; did you mean 'iowrite32be'? [-Werror=implicit-function-declaration]
       iowrite##width##be(val, addr) : iowrite##width \
       ^
>> drivers/dma/fsldma.c:76:2: note: in expansion of macro 'FSL_DMA_OUT'
     FSL_DMA_OUT(chan, &chan->regs->cdar, addr | FSL_DMA_SNEN, 64);
     ^~~~~~~~~~~
>> drivers/dma/fsldma.h:256:36: error: implicit declaration of function 'iowrite64'; did you mean 'iowrite32'? [-Werror=implicit-function-declaration]
       iowrite##width##be(val, addr) : iowrite##width \
                                       ^
>> drivers/dma/fsldma.c:76:2: note: in expansion of macro 'FSL_DMA_OUT'
     FSL_DMA_OUT(chan, &chan->regs->cdar, addr | FSL_DMA_SNEN, 64);
     ^~~~~~~~~~~
   drivers/dma/fsldma.c: In function 'get_cdar':
>> drivers/dma/fsldma.h:252:4: error: implicit declaration of function 'ioread64be'; did you mean 'ioread32be'? [-Werror=implicit-function-declaration]
       ioread##width##be(addr) : ioread##width(addr))
       ^
   drivers/dma/fsldma.c:81:9: note: in expansion of macro 'FSL_DMA_IN'
     return FSL_DMA_IN(chan, &chan->regs->cdar, 64) & ~FSL_DMA_SNEN;
            ^~~~~~~~~~
>> drivers/dma/fsldma.h:252:30: error: implicit declaration of function 'ioread64'; did you mean 'ioread32'? [-Werror=implicit-function-declaration]
       ioread##width##be(addr) : ioread##width(addr))
                                 ^
   drivers/dma/fsldma.c:81:9: note: in expansion of macro 'FSL_DMA_IN'
     return FSL_DMA_IN(chan, &chan->regs->cdar, 64) & ~FSL_DMA_SNEN;
            ^~~~~~~~~~
   drivers/dma/fsldma.c: In function 'set_bcr':
   drivers/dma/fsldma.c:86:38: warning: passing argument 1 of 'iowrite32be' makes pointer from integer without a cast [-Wint-conversion]
     FSL_DMA_OUT(chan, &chan->regs->bcr, val, 32);
                                         ^
   drivers/dma/fsldma.h:256:23: note: in definition of macro 'FSL_DMA_OUT'
       iowrite##width##be(val, addr) : iowrite##width \
                          ^~~
   drivers/dma/fsldma.h:244:13: note: expected 'u32 * {aka unsigned int *}' but argument is of type 'u32 {aka unsigned int}'
    static void iowrite32be(u32 __iomem *addr, u32 val)
                ^~~~~~~~~~~
   drivers/dma/fsldma.c:86:20: warning: passing argument 2 of 'iowrite32be' makes integer from pointer without a cast [-Wint-conversion]
     FSL_DMA_OUT(chan, &chan->regs->bcr, val, 32);
                       ^
   drivers/dma/fsldma.h:256:28: note: in definition of macro 'FSL_DMA_OUT'
       iowrite##width##be(val, addr) : iowrite##width \
                               ^~~~
   drivers/dma/fsldma.h:244:13: note: expected 'u32 {aka unsigned int}' but argument is of type 'u32 * {aka unsigned int *}'
    static void iowrite32be(u32 __iomem *addr, u32 val)
                ^~~~~~~~~~~
   drivers/dma/fsldma.c:86:38: warning: passing argument 1 of 'iowrite32' makes pointer from integer without a cast [-Wint-conversion]
     FSL_DMA_OUT(chan, &chan->regs->bcr, val, 32);
                                         ^
   drivers/dma/fsldma.h:257:5: note: in definition of macro 'FSL_DMA_OUT'
       (val, addr))
        ^~~
   drivers/dma/fsldma.h:234:13: note: expected 'u32 * {aka unsigned int *}' but argument is of type 'u32 {aka unsigned int}'
    static void iowrite32(u32 __iomem *addr, u32 val)
                ^~~~~~~~~
   drivers/dma/fsldma.c:86:20: warning: passing argument 2 of 'iowrite32' makes integer from pointer without a cast [-Wint-conversion]
     FSL_DMA_OUT(chan, &chan->regs->bcr, val, 32);
                       ^
   drivers/dma/fsldma.h:257:10: note: in definition of macro 'FSL_DMA_OUT'
       (val, addr))
             ^~~~
   drivers/dma/fsldma.h:234:13: note: expected 'u32 {aka unsigned int}' but argument is of type 'u32 * {aka unsigned int *}'
    static void iowrite32(u32 __iomem *addr, u32 val)
                ^~~~~~~~~
   drivers/dma/fsldma.c: In function 'get_bcr':
>> drivers/dma/fsldma.h:252:28: error: void value not ignored as it ought to be
      (((fsl_dma)->feature & FSL_DMA_BIG_ENDIAN) ?  \
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       ioread##width##be(addr) : ioread##width(addr))
       ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
   drivers/dma/fsldma.c:91:9: note: in expansion of macro 'FSL_DMA_IN'
     return FSL_DMA_IN(chan, &chan->regs->bcr, 32);
            ^~~~~~~~~~
   drivers/dma/fsldma.c: In function 'get_mr':
>> drivers/dma/fsldma.c:72:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   drivers/dma/fsldma.c: In function 'get_sr':
   drivers/dma/fsldma.c:62:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   drivers/dma/fsldma.c: In function 'get_bcr':
   drivers/dma/fsldma.c:92:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   In file included from drivers/dma/fsldma.c:41:0:
   At top level:
   drivers/dma/fsldma.h:220:13: warning: 'out_le64' defined but not used [-Wunused-function]
    static void out_le64(u64 __iomem *addr, u64 val)
                ^~~~~~~~
   drivers/dma/fsldma.h:214:12: warning: 'in_le64' defined but not used [-Wunused-function]
    static u64 in_le64(const u64 __iomem *addr)
               ^~~~~~~
   drivers/dma/fsldma.h:207:13: warning: 'out_be64' defined but not used [-Wunused-function]
    static void out_be64(u64 __iomem *addr, u64 val)
                ^~~~~~~~
   drivers/dma/fsldma.h:201:12: warning: 'in_be64' defined but not used [-Wunused-function]
    static u64 in_be64(const u64 __iomem *addr)
               ^~~~~~~
   cc1: some warnings being treated as errors

vim +/ioread32 +229 drivers/dma/fsldma.h

   227	
   228	#ifdef CONFIG_PPC
 > 229	static void ioread32(const u32 __iomem *addr)
   230	{
 > 231		return in_le32(addr);
   232	}
   233	
 > 234	static void iowrite32(u32 __iomem *addr, u32 val)
   235	{
   236		out_le32(addr, val);
   237	}
   238	
 > 239	static void ioread32be(const u32 __iomem *addr)
   240	{
 > 241		return in_be32(addr);
   242	}
   243	
 > 244	static void iowrite32be(u32 __iomem *addr, u32 val)
   245	{
   246		out_be32(addr, val);
   247	}
   248	#endif
   249	
   250	#define FSL_DMA_IN(fsl_dma, addr, width)				\
   251			(((fsl_dma)->feature & FSL_DMA_BIG_ENDIAN) ?		\
 > 252				ioread##width##be(addr) : ioread##width(addr))
   253	
   254	#define FSL_DMA_OUT(fsl_dma, addr, val, width)				\
   255			(((fsl_dma)->feature & FSL_DMA_BIG_ENDIAN) ?		\
 > 256				iowrite##width##be(val, addr) : iowrite##width	\
 > 257			 (val, addr))
   258	

---
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 Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux PCI]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux