Re: [PATCH 12/15] dmaengine: pxa: make the filter function internal
On Mon, Apr 2, 2018 at 6:35 PM, kbuild test robotwrote: > >drivers/mtd/nand/marvell_nand.c:2621:17: sparse: undefined identifier > 'pxad_filter_fn' >>> drivers/mtd/nand/marvell_nand.c:2621:17: sparse: call with no type! >In file included from drivers/mtd/nand/marvell_nand.c:21:0: >drivers/mtd/nand/marvell_nand.c: In function 'marvell_nfc_init_dma': >drivers/mtd/nand/marvell_nand.c:2621:42: error: 'pxad_filter_fn' > undeclared (first use in this function); did you mean 'dma_filter_fn'? > dma_request_slave_channel_compat(mask, pxad_filter_fn, > ^ >include/linux/dmaengine.h:1408:46: note: in definition of macro > 'dma_request_slave_channel_compat' > __dma_request_slave_channel_compat(&(mask), x, y, dev, name) > ^ >drivers/mtd/nand/marvell_nand.c:2621:42: note: each undeclared identifier > is reported only once for each function it appears in > dma_request_slave_channel_compat(mask, pxad_filter_fn, > ^ >include/linux/dmaengine.h:1408:46: note: in definition of macro > 'dma_request_slave_channel_compat' > __dma_request_slave_channel_compat(&(mask), x, y, dev, name) The driver is a replacement for the pxa3xx nand driver, so it now has to get changed as well. Arnd
Re: [PATCH 12/15] dmaengine: pxa: make the filter function internal
Hi Robert, I love your patch! Perhaps something to improve: [auto build test WARNING on linus/master] [also build test WARNING on v4.16] [cannot apply to arm-soc/for-next next-20180329] [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/Robert-Jarzmik/ARM-pxa-switch-to-DMA-slave-maps/20180402-233029 reproduce: # apt-get install sparse make ARCH=x86_64 allmodconfig make C=1 CF=-D__CHECK_ENDIAN__ sparse warnings: (new ones prefixed by >>) drivers/mtd/nand/marvell_nand.c:2621:17: sparse: undefined identifier 'pxad_filter_fn' >> drivers/mtd/nand/marvell_nand.c:2621:17: sparse: call with no type! In file included from drivers/mtd/nand/marvell_nand.c:21:0: drivers/mtd/nand/marvell_nand.c: In function 'marvell_nfc_init_dma': drivers/mtd/nand/marvell_nand.c:2621:42: error: 'pxad_filter_fn' undeclared (first use in this function); did you mean 'dma_filter_fn'? dma_request_slave_channel_compat(mask, pxad_filter_fn, ^ include/linux/dmaengine.h:1408:46: note: in definition of macro 'dma_request_slave_channel_compat' __dma_request_slave_channel_compat(&(mask), x, y, dev, name) ^ drivers/mtd/nand/marvell_nand.c:2621:42: note: each undeclared identifier is reported only once for each function it appears in dma_request_slave_channel_compat(mask, pxad_filter_fn, ^ include/linux/dmaengine.h:1408:46: note: in definition of macro 'dma_request_slave_channel_compat' __dma_request_slave_channel_compat(&(mask), x, y, dev, name) ^ vim +2621 drivers/mtd/nand/marvell_nand.c 02f26ecf Miquel Raynal 2018-01-09 2588 02f26ecf Miquel Raynal 2018-01-09 2589 static int marvell_nfc_init_dma(struct marvell_nfc *nfc) 02f26ecf Miquel Raynal 2018-01-09 2590 { 02f26ecf Miquel Raynal 2018-01-09 2591 struct platform_device *pdev = container_of(nfc->dev, 02f26ecf Miquel Raynal 2018-01-09 2592 struct platform_device, 02f26ecf Miquel Raynal 2018-01-09 2593 dev); 02f26ecf Miquel Raynal 2018-01-09 2594 struct dma_slave_config config = {}; 02f26ecf Miquel Raynal 2018-01-09 2595 struct resource *r; 02f26ecf Miquel Raynal 2018-01-09 2596 dma_cap_mask_t mask; 02f26ecf Miquel Raynal 2018-01-09 2597 struct pxad_param param; 02f26ecf Miquel Raynal 2018-01-09 2598 int ret; 02f26ecf Miquel Raynal 2018-01-09 2599 02f26ecf Miquel Raynal 2018-01-09 2600 if (!IS_ENABLED(CONFIG_PXA_DMA)) { 02f26ecf Miquel Raynal 2018-01-09 2601 dev_warn(nfc->dev, 02f26ecf Miquel Raynal 2018-01-09 2602 "DMA not enabled in configuration\n"); 02f26ecf Miquel Raynal 2018-01-09 2603 return -ENOTSUPP; 02f26ecf Miquel Raynal 2018-01-09 2604 } 02f26ecf Miquel Raynal 2018-01-09 2605 02f26ecf Miquel Raynal 2018-01-09 2606 ret = dma_set_mask_and_coherent(nfc->dev, DMA_BIT_MASK(32)); 02f26ecf Miquel Raynal 2018-01-09 2607 if (ret) 02f26ecf Miquel Raynal 2018-01-09 2608 return ret; 02f26ecf Miquel Raynal 2018-01-09 2609 02f26ecf Miquel Raynal 2018-01-09 2610 r = platform_get_resource(pdev, IORESOURCE_DMA, 0); 02f26ecf Miquel Raynal 2018-01-09 2611 if (!r) { 02f26ecf Miquel Raynal 2018-01-09 2612 dev_err(nfc->dev, "No resource defined for data DMA\n"); 02f26ecf Miquel Raynal 2018-01-09 2613 return -ENXIO; 02f26ecf Miquel Raynal 2018-01-09 2614 } 02f26ecf Miquel Raynal 2018-01-09 2615 02f26ecf Miquel Raynal 2018-01-09 2616 param.drcmr = r->start; 02f26ecf Miquel Raynal 2018-01-09 2617 param.prio = PXAD_PRIO_LOWEST; 02f26ecf Miquel Raynal 2018-01-09 2618 dma_cap_zero(mask); 02f26ecf Miquel Raynal 2018-01-09 2619 dma_cap_set(DMA_SLAVE, mask); 02f26ecf Miquel Raynal 2018-01-09 2620 nfc->dma_chan = 02f26ecf Miquel Raynal 2018-01-09 @2621 dma_request_slave_channel_compat(mask, pxad_filter_fn, 02f26ecf Miquel Raynal 2018-01-09 2622 , nfc->dev, 02f26ecf Miquel Raynal 2018-01-09 2623 "data"); 02f26ecf Miquel Raynal 2018-01-09 2624 if (!nfc->dma_chan) { 02f26ecf Miquel Raynal 2018-01-09 2625 dev_err(nfc->dev, 02f26ecf Miquel Raynal 2018-01-09 2626 "Unable to request data DMA channel\n"); 02f26ecf Miquel Raynal 2018-01-09 2627 return -ENODEV; 02f26ecf Miquel Raynal 2018-01-09 2628 } 02f26ecf Miquel Raynal 2018-01-09 2629 02f26ecf Miquel Raynal
Re: [PATCH 12/15] dmaengine: pxa: make the filter function internal
Hi Robert, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.16] [cannot apply to arm-soc/for-next next-20180329] [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/Robert-Jarzmik/ARM-pxa-switch-to-DMA-slave-maps/20180402-233029 config: i386-allmodconfig (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=i386 All errors (new ones prefixed by >>): In file included from drivers/mtd/nand/marvell_nand.c:21:0: drivers/mtd/nand/marvell_nand.c: In function 'marvell_nfc_init_dma': >> drivers/mtd/nand/marvell_nand.c:2621:42: error: 'pxad_filter_fn' undeclared >> (first use in this function); did you mean 'dma_filter_fn'? dma_request_slave_channel_compat(mask, pxad_filter_fn, ^ include/linux/dmaengine.h:1408:46: note: in definition of macro 'dma_request_slave_channel_compat' __dma_request_slave_channel_compat(&(mask), x, y, dev, name) ^ drivers/mtd/nand/marvell_nand.c:2621:42: note: each undeclared identifier is reported only once for each function it appears in dma_request_slave_channel_compat(mask, pxad_filter_fn, ^ include/linux/dmaengine.h:1408:46: note: in definition of macro 'dma_request_slave_channel_compat' __dma_request_slave_channel_compat(&(mask), x, y, dev, name) ^ vim +2621 drivers/mtd/nand/marvell_nand.c 02f26ecf Miquel Raynal 2018-01-09 2588 02f26ecf Miquel Raynal 2018-01-09 2589 static int marvell_nfc_init_dma(struct marvell_nfc *nfc) 02f26ecf Miquel Raynal 2018-01-09 2590 { 02f26ecf Miquel Raynal 2018-01-09 2591 struct platform_device *pdev = container_of(nfc->dev, 02f26ecf Miquel Raynal 2018-01-09 2592 struct platform_device, 02f26ecf Miquel Raynal 2018-01-09 2593 dev); 02f26ecf Miquel Raynal 2018-01-09 2594 struct dma_slave_config config = {}; 02f26ecf Miquel Raynal 2018-01-09 2595 struct resource *r; 02f26ecf Miquel Raynal 2018-01-09 2596 dma_cap_mask_t mask; 02f26ecf Miquel Raynal 2018-01-09 2597 struct pxad_param param; 02f26ecf Miquel Raynal 2018-01-09 2598 int ret; 02f26ecf Miquel Raynal 2018-01-09 2599 02f26ecf Miquel Raynal 2018-01-09 2600 if (!IS_ENABLED(CONFIG_PXA_DMA)) { 02f26ecf Miquel Raynal 2018-01-09 2601 dev_warn(nfc->dev, 02f26ecf Miquel Raynal 2018-01-09 2602 "DMA not enabled in configuration\n"); 02f26ecf Miquel Raynal 2018-01-09 2603 return -ENOTSUPP; 02f26ecf Miquel Raynal 2018-01-09 2604 } 02f26ecf Miquel Raynal 2018-01-09 2605 02f26ecf Miquel Raynal 2018-01-09 2606 ret = dma_set_mask_and_coherent(nfc->dev, DMA_BIT_MASK(32)); 02f26ecf Miquel Raynal 2018-01-09 2607 if (ret) 02f26ecf Miquel Raynal 2018-01-09 2608 return ret; 02f26ecf Miquel Raynal 2018-01-09 2609 02f26ecf Miquel Raynal 2018-01-09 2610 r = platform_get_resource(pdev, IORESOURCE_DMA, 0); 02f26ecf Miquel Raynal 2018-01-09 2611 if (!r) { 02f26ecf Miquel Raynal 2018-01-09 2612 dev_err(nfc->dev, "No resource defined for data DMA\n"); 02f26ecf Miquel Raynal 2018-01-09 2613 return -ENXIO; 02f26ecf Miquel Raynal 2018-01-09 2614 } 02f26ecf Miquel Raynal 2018-01-09 2615 02f26ecf Miquel Raynal 2018-01-09 2616 param.drcmr = r->start; 02f26ecf Miquel Raynal 2018-01-09 2617 param.prio = PXAD_PRIO_LOWEST; 02f26ecf Miquel Raynal 2018-01-09 2618 dma_cap_zero(mask); 02f26ecf Miquel Raynal 2018-01-09 2619 dma_cap_set(DMA_SLAVE, mask); 02f26ecf Miquel Raynal 2018-01-09 2620 nfc->dma_chan = 02f26ecf Miquel Raynal 2018-01-09 @2621 dma_request_slave_channel_compat(mask, pxad_filter_fn, 02f26ecf Miquel Raynal 2018-01-09 2622 , nfc->dev, 02f26ecf Miquel Raynal 2018-01-09 2623 "data"); 02f26ecf Miquel Raynal 2018-01-09 2624 if (!nfc->dma_chan) { 02f26ecf Miquel Raynal 2018-01-09 2625 dev_err(nfc->dev, 02f26ecf Miquel Raynal 2018-01-09 2626 "Unable to request data DMA channel\n"); 02f26ecf Miquel Raynal 2018-01-09 2627 return -ENODEV; 02f26ecf Miquel Raynal 2018-01-09 2628 } 02f26ecf Miquel Raynal 2018-01-09 2629 02f26ecf Miquel Raynal 2018-01-09 2630 r = platform_get_resource(pdev, IORESOURCE_MEM, 0); 02f26ecf Miquel Raynal 2018-01-09 2631