All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [narmstrong-oxnas:oxnas/v5.18/dma 2/4] drivers/dma/oxnas_adma.c:915:40: warning: cast to pointer from integer of different size
Date: Sat, 08 Jan 2022 09:32:22 +0800	[thread overview]
Message-ID: <202201080904.ADmkINrx-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 17690 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/narmstrong/linux-oxnas.git oxnas/v5.18/dma
head:   8a4b70b0d54020bfae32041369422c3b41c0cd56
commit: 90ad9e59c40581027a2fd9134e4e160ad0a7f5d2 [2/4] dmaengine: Add Oxford Semiconductor OXNAS DMA Controller
config: arc-allmodconfig (https://download.01.org/0day-ci/archive/20220108/202201080904.ADmkINrx-lkp(a)intel.com/config)
compiler: arceb-elf-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://git.kernel.org/pub/scm/linux/kernel/git/narmstrong/linux-oxnas.git/commit/?id=90ad9e59c40581027a2fd9134e4e160ad0a7f5d2
        git remote add narmstrong-oxnas https://git.kernel.org/pub/scm/linux/kernel/git/narmstrong/linux-oxnas.git
        git fetch --no-tags narmstrong-oxnas oxnas/v5.18/dma
        git checkout 90ad9e59c40581027a2fd9134e4e160ad0a7f5d2
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arc SHELL=/bin/bash drivers/dma/ drivers/net/wireless/ath/wcn36xx/ drivers/nvme/host/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

         |                                                               |
         |                                                               unsigned int
         |                                                            %08llx
   In file included from include/linux/printk.h:555,
                    from include/linux/kernel.h:20,
                    from include/linux/cpumask.h:10,
                    from include/linux/mm_types_task.h:14,
                    from include/linux/mm_types.h:5,
                    from include/linux/buildid.h:5,
                    from include/linux/module.h:14,
                    from drivers/dma/oxnas_adma.c:7:
   drivers/dma/oxnas_adma.c:655:37: warning: format '%x' expects argument of type 'unsigned int', but argument 5 has type 'dma_addr_t' {aka 'long long unsigned int'} [-Wformat=]
     655 |         dev_dbg(&dmadev->pdev->dev, "preparing memcpy from %08x to %08x, %lubytes (flags %x)\n",
         |                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/dynamic_debug.h:134:29: note: in definition of macro '__dynamic_func_call'
     134 |                 func(&id, ##__VA_ARGS__);               \
         |                             ^~~~~~~~~~~
   include/linux/dynamic_debug.h:166:9: note: in expansion of macro '_dynamic_func_call'
     166 |         _dynamic_func_call(fmt,__dynamic_dev_dbg,               \
         |         ^~~~~~~~~~~~~~~~~~
   include/linux/dev_printk.h:155:9: note: in expansion of macro 'dynamic_dev_dbg'
     155 |         dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
         |         ^~~~~~~~~~~~~~~
   include/linux/dev_printk.h:155:30: note: in expansion of macro 'dev_fmt'
     155 |         dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
         |                              ^~~~~~~
   drivers/dma/oxnas_adma.c:655:9: note: in expansion of macro 'dev_dbg'
     655 |         dev_dbg(&dmadev->pdev->dev, "preparing memcpy from %08x to %08x, %lubytes (flags %x)\n",
         |         ^~~~~~~
   drivers/dma/oxnas_adma.c:655:71: note: format string is defined here
     655 |         dev_dbg(&dmadev->pdev->dev, "preparing memcpy from %08x to %08x, %lubytes (flags %x)\n",
         |                                                                    ~~~^
         |                                                                       |
         |                                                                       unsigned int
         |                                                                    %08llx
   In file included from include/linux/printk.h:555,
                    from include/linux/kernel.h:20,
                    from include/linux/cpumask.h:10,
                    from include/linux/mm_types_task.h:14,
                    from include/linux/mm_types.h:5,
                    from include/linux/buildid.h:5,
                    from include/linux/module.h:14,
                    from drivers/dma/oxnas_adma.c:7:
   drivers/dma/oxnas_adma.c: In function 'oxnas_dma_probe':
   drivers/dma/oxnas_adma.c:869:37: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'dma_addr_t' {aka 'long long unsigned int'} [-Wformat=]
     869 |                 dev_dbg(&pdev->dev, "0x%08x-0x%08x = %d\n",
         |                                     ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/dynamic_debug.h:134:29: note: in definition of macro '__dynamic_func_call'
     134 |                 func(&id, ##__VA_ARGS__);               \
         |                             ^~~~~~~~~~~
   include/linux/dynamic_debug.h:166:9: note: in expansion of macro '_dynamic_func_call'
     166 |         _dynamic_func_call(fmt,__dynamic_dev_dbg,               \
         |         ^~~~~~~~~~~~~~~~~~
   include/linux/dev_printk.h:155:9: note: in expansion of macro 'dynamic_dev_dbg'
     155 |         dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
         |         ^~~~~~~~~~~~~~~
   include/linux/dev_printk.h:155:30: note: in expansion of macro 'dev_fmt'
     155 |         dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
         |                              ^~~~~~~
   drivers/dma/oxnas_adma.c:869:17: note: in expansion of macro 'dev_dbg'
     869 |                 dev_dbg(&pdev->dev, "0x%08x-0x%08x = %d\n",
         |                 ^~~~~~~
   drivers/dma/oxnas_adma.c:869:43: note: format string is defined here
     869 |                 dev_dbg(&pdev->dev, "0x%08x-0x%08x = %d\n",
         |                                        ~~~^
         |                                           |
         |                                           unsigned int
         |                                        %08llx
   In file included from include/linux/printk.h:555,
                    from include/linux/kernel.h:20,
                    from include/linux/cpumask.h:10,
                    from include/linux/mm_types_task.h:14,
                    from include/linux/mm_types.h:5,
                    from include/linux/buildid.h:5,
                    from include/linux/module.h:14,
                    from drivers/dma/oxnas_adma.c:7:
   drivers/dma/oxnas_adma.c:869:37: warning: format '%x' expects argument of type 'unsigned int', but argument 5 has type 'dma_addr_t' {aka 'long long unsigned int'} [-Wformat=]
     869 |                 dev_dbg(&pdev->dev, "0x%08x-0x%08x = %d\n",
         |                                     ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/dynamic_debug.h:134:29: note: in definition of macro '__dynamic_func_call'
     134 |                 func(&id, ##__VA_ARGS__);               \
         |                             ^~~~~~~~~~~
   include/linux/dynamic_debug.h:166:9: note: in expansion of macro '_dynamic_func_call'
     166 |         _dynamic_func_call(fmt,__dynamic_dev_dbg,               \
         |         ^~~~~~~~~~~~~~~~~~
   include/linux/dev_printk.h:155:9: note: in expansion of macro 'dynamic_dev_dbg'
     155 |         dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
         |         ^~~~~~~~~~~~~~~
   include/linux/dev_printk.h:155:30: note: in expansion of macro 'dev_fmt'
     155 |         dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
         |                              ^~~~~~~
   drivers/dma/oxnas_adma.c:869:17: note: in expansion of macro 'dev_dbg'
     869 |                 dev_dbg(&pdev->dev, "0x%08x-0x%08x = %d\n",
         |                 ^~~~~~~
   drivers/dma/oxnas_adma.c:869:50: note: format string is defined here
     869 |                 dev_dbg(&pdev->dev, "0x%08x-0x%08x = %d\n",
         |                                               ~~~^
         |                                                  |
         |                                                  unsigned int
         |                                               %08llx
>> drivers/dma/oxnas_adma.c:915:40: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
     915 |                         (dma_addr_t)&(((struct oxnas_dma_sg_data *)dmadev->p_sg_data)->entries[i]);
         |                                        ^
>> drivers/dma/oxnas_adma.c:915:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
     915 |                         (dma_addr_t)&(((struct oxnas_dma_sg_data *)dmadev->p_sg_data)->entries[i]);
         |                         ^
   drivers/dma/oxnas_adma.c:944:39: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
     944 |                         (dma_addr_t)&((struct oxnas_dma_sg_data *)dmadev->p_sg_data)->infos[i];
         |                                       ^
   drivers/dma/oxnas_adma.c:944:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
     944 |                         (dma_addr_t)&((struct oxnas_dma_sg_data *)dmadev->p_sg_data)->infos[i];
         |                         ^


vim +915 drivers/dma/oxnas_adma.c

   794	
   795	static int oxnas_dma_probe(struct platform_device *pdev)
   796	{
   797		struct oxnas_dma_device *dmadev;
   798		struct resource *res;
   799		int hwid, i, ret;
   800	
   801		dmadev = devm_kzalloc(&pdev->dev, sizeof(struct oxnas_dma_device), GFP_KERNEL);
   802		if (!dmadev)
   803			return -ENOMEM;
   804	
   805		res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
   806		dmadev->dma_base = devm_ioremap_resource(&pdev->dev, res);
   807		if (IS_ERR(dmadev->dma_base))
   808			return PTR_ERR(dmadev->dma_base);
   809	
   810		res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
   811		dmadev->sgdma_base = devm_ioremap_resource(&pdev->dev, res);
   812		if (IS_ERR(dmadev->sgdma_base))
   813			return PTR_ERR(dmadev->sgdma_base);
   814	
   815		dmadev->dma_rst = devm_reset_control_get(&pdev->dev, "dma");
   816		if (IS_ERR(dmadev->dma_rst))
   817			return PTR_ERR(dmadev->dma_rst);
   818	
   819		dmadev->sgdma_rst = devm_reset_control_get(&pdev->dev, "sgdma");
   820		if (IS_ERR(dmadev->sgdma_rst))
   821			return PTR_ERR(dmadev->sgdma_rst);
   822	
   823		dmadev->dma_clk = devm_clk_get(&pdev->dev, 0);
   824		if (IS_ERR(dmadev->dma_clk))
   825			return PTR_ERR(dmadev->dma_clk);
   826	
   827		ret = of_property_count_elems_of_size(pdev->dev.of_node, "oxsemi,targets-types", 4);
   828		if (ret <= 0 || (ret % 3) != 0) {
   829			dev_err(&pdev->dev, "malformed or missing oxsemi,targets-types\n");
   830			return -EINVAL;
   831		}
   832	
   833		dmadev->authorized_types_count = ret / 3;
   834		dmadev->authorized_types = devm_kzalloc(&pdev->dev,
   835			sizeof(*dmadev->authorized_types) * dmadev->authorized_types_count, GFP_KERNEL);
   836	
   837		if (!dmadev->authorized_types)
   838			return -ENOMEM;
   839	
   840		for (i = 0 ; i < dmadev->authorized_types_count ; ++i) {
   841			u32 value;
   842	
   843			ret = of_property_read_u32_index(pdev->dev.of_node,
   844							 "oxsemi,targets-types",
   845							 (i * 3), &value);
   846			if (ret < 0)
   847				return ret;
   848	
   849			dmadev->authorized_types[i].start = value;
   850			ret = of_property_read_u32_index(pdev->dev.of_node,
   851							 "oxsemi,targets-types",
   852							 (i * 3) + 1, &value);
   853			if (ret < 0)
   854				return ret;
   855	
   856			dmadev->authorized_types[i].end = value;
   857			ret = of_property_read_u32_index(pdev->dev.of_node,
   858							 "oxsemi,targets-types",
   859							 (i * 3) + 2, &value);
   860			if (ret < 0)
   861				return ret;
   862	
   863			dmadev->authorized_types[i].type = value;
   864		}
   865	
   866		dev_dbg(&pdev->dev, "Authorized memory ranges :\n");
   867		dev_dbg(&pdev->dev, " Start    - End      = Type\n");
   868		for (i = 0 ; i <  dmadev->authorized_types_count ; ++i)
   869			dev_dbg(&pdev->dev, "0x%08x-0x%08x = %d\n",
   870				dmadev->authorized_types[i].start,
   871				dmadev->authorized_types[i].end,
   872				dmadev->authorized_types[i].type);
   873	
   874		dmadev->pdev = pdev;
   875	
   876		spin_lock_init(&dmadev->lock);
   877	
   878		tasklet_init(&dmadev->tasklet, oxnas_dma_sched, (unsigned long)dmadev);
   879		INIT_LIST_HEAD(&dmadev->common.channels);
   880		INIT_LIST_HEAD(&dmadev->pending);
   881		INIT_LIST_HEAD(&dmadev->free_entries);
   882	
   883		/* Enable HW & Clocks */
   884		reset_control_reset(dmadev->dma_rst);
   885		reset_control_reset(dmadev->sgdma_rst);
   886		clk_prepare_enable(dmadev->dma_clk);
   887	
   888		/* Discover the number of channels available */
   889		hwid = readl(dmadev->dma_base + DMA_CALC_REG_ADR(0, DMA_INTR_ID));
   890		dmadev->channels_count = DMA_INTR_ID_GET_NUM_CHANNELS(hwid);
   891		dmadev->hwversion = DMA_INTR_ID_GET_VERSION(hwid);
   892	
   893		dev_dbg(&pdev->dev, "OXNAS DMA v%x with %d channels\n",
   894			dmadev->hwversion, dmadev->channels_count);
   895	
   896		/* Limit channels count */
   897		if (dmadev->channels_count > MAX_OXNAS_DMA_CHANNELS)
   898			dmadev->channels_count = MAX_OXNAS_DMA_CHANNELS;
   899	
   900		/* Allocate coherent memory for sg descriptors */
   901		dmadev->sg_data = dma_alloc_coherent(&pdev->dev, sizeof(struct oxnas_dma_sg_data),
   902						     &dmadev->p_sg_data, GFP_KERNEL);
   903		if (!dmadev->sg_data) {
   904			ret = -ENOMEM;
   905			goto disable_clks;
   906		}
   907	
   908		/* Reset SG descritors */
   909		memset(dmadev->sg_data, 0, sizeof(struct oxnas_dma_sg_data));
   910		atomic_set(&dmadev->free_entries_count, 0);
   911	
   912		/* Initialize and add all sg entries to the free list */
   913		for (i = 0 ; i < MAX_OXNAS_SG_ENTRIES ; ++i) {
   914			dmadev->sg_data->entries[i].this_paddr =
 > 915				(dma_addr_t)&(((struct oxnas_dma_sg_data *)dmadev->p_sg_data)->entries[i]);
   916			INIT_LIST_HEAD(&dmadev->sg_data->entries[i].entry);
   917			list_add_tail(&dmadev->sg_data->entries[i].entry,
   918				      &dmadev->free_entries);
   919			atomic_inc(&dmadev->free_entries_count);
   920		}
   921	
   922		/* Init all channels */
   923		for (i = 0 ; i < dmadev->channels_count ; ++i) {
   924			struct oxnas_dma_channel *ch = &dmadev->channels[i];
   925	
   926			ch->dmadev = dmadev;
   927			ch->id = i;
   928	
   929			ch->irq = irq_of_parse_and_map(pdev->dev.of_node, i);
   930			if (ch->irq <= 0) {
   931				dev_err(&pdev->dev, "invalid irq%d from platform\n", i);
   932				goto free_coherent;
   933			}
   934	
   935			ret = devm_request_irq(&pdev->dev, ch->irq,
   936					       oxnas_dma_interrupt, 0,
   937					       "DMA", ch);
   938			if (ret < 0) {
   939				dev_err(&pdev->dev, "failed to request irq%d\n", i);
   940				goto free_coherent;
   941			}
   942	
   943			ch->p_sg_info =
   944				(dma_addr_t)&((struct oxnas_dma_sg_data *)dmadev->p_sg_data)->infos[i];
   945			ch->sg_info = &dmadev->sg_data->infos[i];
   946			memset(ch->sg_info, 0, sizeof(struct oxnas_dma_sg_info));
   947	
   948			atomic_set(&ch->active, 0);
   949	
   950			ch->vc.desc_free = oxnas_dma_desc_free;
   951			vchan_init(&ch->vc, &dmadev->common);
   952			INIT_LIST_HEAD(&ch->node);
   953		}
   954	
   955		platform_set_drvdata(pdev, dmadev);
   956	
   957		dma_cap_set(DMA_MEMCPY, dmadev->common.cap_mask);
   958		dmadev->common.chancnt = dmadev->channels_count;
   959		dmadev->common.device_free_chan_resources = oxnas_dma_free_chan_resources;
   960		dmadev->common.device_tx_status = oxnas_dma_tx_status;
   961		dmadev->common.device_issue_pending = oxnas_dma_issue_pending;
   962		dmadev->common.device_prep_dma_memcpy = oxnas_dma_prep_dma_memcpy;
   963		dmadev->common.device_prep_slave_sg = oxnas_dma_prep_slave_sg;
   964		dmadev->common.device_config = oxnas_dma_slave_config;
   965		dmadev->common.copy_align = DMAENGINE_ALIGN_4_BYTES;
   966		dmadev->common.src_addr_widths = DMA_SLAVE_BUSWIDTH_4_BYTES;
   967		dmadev->common.dst_addr_widths = DMA_SLAVE_BUSWIDTH_4_BYTES;
   968		dmadev->common.directions = BIT(DMA_MEM_TO_MEM);
   969		dmadev->common.residue_granularity = DMA_RESIDUE_GRANULARITY_DESCRIPTOR;
   970		dmadev->common.dev = &pdev->dev;
   971	
   972		ret = dma_async_device_register(&dmadev->common);
   973		if (ret)
   974			goto free_coherent;
   975	
   976		ret = of_dma_controller_register(pdev->dev.of_node,
   977						 of_dma_xlate_by_chan_id,
   978						 &dmadev->common);
   979		if (ret) {
   980			dev_warn(&pdev->dev, "Failed to register DMA Controller\n");
   981			goto dma_unregister;
   982		}
   983	
   984		dev_info(&pdev->dev, "OXNAS DMA Registered\n");
   985	
   986		return 0;
   987	
   988	dma_unregister:
   989		dma_async_device_unregister(&dmadev->common);
   990	
   991	free_coherent:
   992		dma_free_coherent(&pdev->dev, sizeof(struct oxnas_dma_sg_data),
   993				  dmadev->sg_data, dmadev->p_sg_data);
   994	
   995	disable_clks:
   996		clk_disable_unprepare(dmadev->dma_clk);
   997	
   998		return ret;
   999	}
  1000	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Neil Armstrong <narmstrong@baylibre.com>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org
Subject: [narmstrong-oxnas:oxnas/v5.18/dma 2/4] drivers/dma/oxnas_adma.c:915:40: warning: cast to pointer from integer of different size
Date: Sat, 8 Jan 2022 09:32:22 +0800	[thread overview]
Message-ID: <202201080904.ADmkINrx-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/narmstrong/linux-oxnas.git oxnas/v5.18/dma
head:   8a4b70b0d54020bfae32041369422c3b41c0cd56
commit: 90ad9e59c40581027a2fd9134e4e160ad0a7f5d2 [2/4] dmaengine: Add Oxford Semiconductor OXNAS DMA Controller
config: arc-allmodconfig (https://download.01.org/0day-ci/archive/20220108/202201080904.ADmkINrx-lkp@intel.com/config)
compiler: arceb-elf-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://git.kernel.org/pub/scm/linux/kernel/git/narmstrong/linux-oxnas.git/commit/?id=90ad9e59c40581027a2fd9134e4e160ad0a7f5d2
        git remote add narmstrong-oxnas https://git.kernel.org/pub/scm/linux/kernel/git/narmstrong/linux-oxnas.git
        git fetch --no-tags narmstrong-oxnas oxnas/v5.18/dma
        git checkout 90ad9e59c40581027a2fd9134e4e160ad0a7f5d2
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arc SHELL=/bin/bash drivers/dma/ drivers/net/wireless/ath/wcn36xx/ drivers/nvme/host/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

         |                                                               |
         |                                                               unsigned int
         |                                                            %08llx
   In file included from include/linux/printk.h:555,
                    from include/linux/kernel.h:20,
                    from include/linux/cpumask.h:10,
                    from include/linux/mm_types_task.h:14,
                    from include/linux/mm_types.h:5,
                    from include/linux/buildid.h:5,
                    from include/linux/module.h:14,
                    from drivers/dma/oxnas_adma.c:7:
   drivers/dma/oxnas_adma.c:655:37: warning: format '%x' expects argument of type 'unsigned int', but argument 5 has type 'dma_addr_t' {aka 'long long unsigned int'} [-Wformat=]
     655 |         dev_dbg(&dmadev->pdev->dev, "preparing memcpy from %08x to %08x, %lubytes (flags %x)\n",
         |                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/dynamic_debug.h:134:29: note: in definition of macro '__dynamic_func_call'
     134 |                 func(&id, ##__VA_ARGS__);               \
         |                             ^~~~~~~~~~~
   include/linux/dynamic_debug.h:166:9: note: in expansion of macro '_dynamic_func_call'
     166 |         _dynamic_func_call(fmt,__dynamic_dev_dbg,               \
         |         ^~~~~~~~~~~~~~~~~~
   include/linux/dev_printk.h:155:9: note: in expansion of macro 'dynamic_dev_dbg'
     155 |         dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
         |         ^~~~~~~~~~~~~~~
   include/linux/dev_printk.h:155:30: note: in expansion of macro 'dev_fmt'
     155 |         dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
         |                              ^~~~~~~
   drivers/dma/oxnas_adma.c:655:9: note: in expansion of macro 'dev_dbg'
     655 |         dev_dbg(&dmadev->pdev->dev, "preparing memcpy from %08x to %08x, %lubytes (flags %x)\n",
         |         ^~~~~~~
   drivers/dma/oxnas_adma.c:655:71: note: format string is defined here
     655 |         dev_dbg(&dmadev->pdev->dev, "preparing memcpy from %08x to %08x, %lubytes (flags %x)\n",
         |                                                                    ~~~^
         |                                                                       |
         |                                                                       unsigned int
         |                                                                    %08llx
   In file included from include/linux/printk.h:555,
                    from include/linux/kernel.h:20,
                    from include/linux/cpumask.h:10,
                    from include/linux/mm_types_task.h:14,
                    from include/linux/mm_types.h:5,
                    from include/linux/buildid.h:5,
                    from include/linux/module.h:14,
                    from drivers/dma/oxnas_adma.c:7:
   drivers/dma/oxnas_adma.c: In function 'oxnas_dma_probe':
   drivers/dma/oxnas_adma.c:869:37: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'dma_addr_t' {aka 'long long unsigned int'} [-Wformat=]
     869 |                 dev_dbg(&pdev->dev, "0x%08x-0x%08x = %d\n",
         |                                     ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/dynamic_debug.h:134:29: note: in definition of macro '__dynamic_func_call'
     134 |                 func(&id, ##__VA_ARGS__);               \
         |                             ^~~~~~~~~~~
   include/linux/dynamic_debug.h:166:9: note: in expansion of macro '_dynamic_func_call'
     166 |         _dynamic_func_call(fmt,__dynamic_dev_dbg,               \
         |         ^~~~~~~~~~~~~~~~~~
   include/linux/dev_printk.h:155:9: note: in expansion of macro 'dynamic_dev_dbg'
     155 |         dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
         |         ^~~~~~~~~~~~~~~
   include/linux/dev_printk.h:155:30: note: in expansion of macro 'dev_fmt'
     155 |         dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
         |                              ^~~~~~~
   drivers/dma/oxnas_adma.c:869:17: note: in expansion of macro 'dev_dbg'
     869 |                 dev_dbg(&pdev->dev, "0x%08x-0x%08x = %d\n",
         |                 ^~~~~~~
   drivers/dma/oxnas_adma.c:869:43: note: format string is defined here
     869 |                 dev_dbg(&pdev->dev, "0x%08x-0x%08x = %d\n",
         |                                        ~~~^
         |                                           |
         |                                           unsigned int
         |                                        %08llx
   In file included from include/linux/printk.h:555,
                    from include/linux/kernel.h:20,
                    from include/linux/cpumask.h:10,
                    from include/linux/mm_types_task.h:14,
                    from include/linux/mm_types.h:5,
                    from include/linux/buildid.h:5,
                    from include/linux/module.h:14,
                    from drivers/dma/oxnas_adma.c:7:
   drivers/dma/oxnas_adma.c:869:37: warning: format '%x' expects argument of type 'unsigned int', but argument 5 has type 'dma_addr_t' {aka 'long long unsigned int'} [-Wformat=]
     869 |                 dev_dbg(&pdev->dev, "0x%08x-0x%08x = %d\n",
         |                                     ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/dynamic_debug.h:134:29: note: in definition of macro '__dynamic_func_call'
     134 |                 func(&id, ##__VA_ARGS__);               \
         |                             ^~~~~~~~~~~
   include/linux/dynamic_debug.h:166:9: note: in expansion of macro '_dynamic_func_call'
     166 |         _dynamic_func_call(fmt,__dynamic_dev_dbg,               \
         |         ^~~~~~~~~~~~~~~~~~
   include/linux/dev_printk.h:155:9: note: in expansion of macro 'dynamic_dev_dbg'
     155 |         dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
         |         ^~~~~~~~~~~~~~~
   include/linux/dev_printk.h:155:30: note: in expansion of macro 'dev_fmt'
     155 |         dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
         |                              ^~~~~~~
   drivers/dma/oxnas_adma.c:869:17: note: in expansion of macro 'dev_dbg'
     869 |                 dev_dbg(&pdev->dev, "0x%08x-0x%08x = %d\n",
         |                 ^~~~~~~
   drivers/dma/oxnas_adma.c:869:50: note: format string is defined here
     869 |                 dev_dbg(&pdev->dev, "0x%08x-0x%08x = %d\n",
         |                                               ~~~^
         |                                                  |
         |                                                  unsigned int
         |                                               %08llx
>> drivers/dma/oxnas_adma.c:915:40: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
     915 |                         (dma_addr_t)&(((struct oxnas_dma_sg_data *)dmadev->p_sg_data)->entries[i]);
         |                                        ^
>> drivers/dma/oxnas_adma.c:915:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
     915 |                         (dma_addr_t)&(((struct oxnas_dma_sg_data *)dmadev->p_sg_data)->entries[i]);
         |                         ^
   drivers/dma/oxnas_adma.c:944:39: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
     944 |                         (dma_addr_t)&((struct oxnas_dma_sg_data *)dmadev->p_sg_data)->infos[i];
         |                                       ^
   drivers/dma/oxnas_adma.c:944:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
     944 |                         (dma_addr_t)&((struct oxnas_dma_sg_data *)dmadev->p_sg_data)->infos[i];
         |                         ^


vim +915 drivers/dma/oxnas_adma.c

   794	
   795	static int oxnas_dma_probe(struct platform_device *pdev)
   796	{
   797		struct oxnas_dma_device *dmadev;
   798		struct resource *res;
   799		int hwid, i, ret;
   800	
   801		dmadev = devm_kzalloc(&pdev->dev, sizeof(struct oxnas_dma_device), GFP_KERNEL);
   802		if (!dmadev)
   803			return -ENOMEM;
   804	
   805		res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
   806		dmadev->dma_base = devm_ioremap_resource(&pdev->dev, res);
   807		if (IS_ERR(dmadev->dma_base))
   808			return PTR_ERR(dmadev->dma_base);
   809	
   810		res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
   811		dmadev->sgdma_base = devm_ioremap_resource(&pdev->dev, res);
   812		if (IS_ERR(dmadev->sgdma_base))
   813			return PTR_ERR(dmadev->sgdma_base);
   814	
   815		dmadev->dma_rst = devm_reset_control_get(&pdev->dev, "dma");
   816		if (IS_ERR(dmadev->dma_rst))
   817			return PTR_ERR(dmadev->dma_rst);
   818	
   819		dmadev->sgdma_rst = devm_reset_control_get(&pdev->dev, "sgdma");
   820		if (IS_ERR(dmadev->sgdma_rst))
   821			return PTR_ERR(dmadev->sgdma_rst);
   822	
   823		dmadev->dma_clk = devm_clk_get(&pdev->dev, 0);
   824		if (IS_ERR(dmadev->dma_clk))
   825			return PTR_ERR(dmadev->dma_clk);
   826	
   827		ret = of_property_count_elems_of_size(pdev->dev.of_node, "oxsemi,targets-types", 4);
   828		if (ret <= 0 || (ret % 3) != 0) {
   829			dev_err(&pdev->dev, "malformed or missing oxsemi,targets-types\n");
   830			return -EINVAL;
   831		}
   832	
   833		dmadev->authorized_types_count = ret / 3;
   834		dmadev->authorized_types = devm_kzalloc(&pdev->dev,
   835			sizeof(*dmadev->authorized_types) * dmadev->authorized_types_count, GFP_KERNEL);
   836	
   837		if (!dmadev->authorized_types)
   838			return -ENOMEM;
   839	
   840		for (i = 0 ; i < dmadev->authorized_types_count ; ++i) {
   841			u32 value;
   842	
   843			ret = of_property_read_u32_index(pdev->dev.of_node,
   844							 "oxsemi,targets-types",
   845							 (i * 3), &value);
   846			if (ret < 0)
   847				return ret;
   848	
   849			dmadev->authorized_types[i].start = value;
   850			ret = of_property_read_u32_index(pdev->dev.of_node,
   851							 "oxsemi,targets-types",
   852							 (i * 3) + 1, &value);
   853			if (ret < 0)
   854				return ret;
   855	
   856			dmadev->authorized_types[i].end = value;
   857			ret = of_property_read_u32_index(pdev->dev.of_node,
   858							 "oxsemi,targets-types",
   859							 (i * 3) + 2, &value);
   860			if (ret < 0)
   861				return ret;
   862	
   863			dmadev->authorized_types[i].type = value;
   864		}
   865	
   866		dev_dbg(&pdev->dev, "Authorized memory ranges :\n");
   867		dev_dbg(&pdev->dev, " Start    - End      = Type\n");
   868		for (i = 0 ; i <  dmadev->authorized_types_count ; ++i)
   869			dev_dbg(&pdev->dev, "0x%08x-0x%08x = %d\n",
   870				dmadev->authorized_types[i].start,
   871				dmadev->authorized_types[i].end,
   872				dmadev->authorized_types[i].type);
   873	
   874		dmadev->pdev = pdev;
   875	
   876		spin_lock_init(&dmadev->lock);
   877	
   878		tasklet_init(&dmadev->tasklet, oxnas_dma_sched, (unsigned long)dmadev);
   879		INIT_LIST_HEAD(&dmadev->common.channels);
   880		INIT_LIST_HEAD(&dmadev->pending);
   881		INIT_LIST_HEAD(&dmadev->free_entries);
   882	
   883		/* Enable HW & Clocks */
   884		reset_control_reset(dmadev->dma_rst);
   885		reset_control_reset(dmadev->sgdma_rst);
   886		clk_prepare_enable(dmadev->dma_clk);
   887	
   888		/* Discover the number of channels available */
   889		hwid = readl(dmadev->dma_base + DMA_CALC_REG_ADR(0, DMA_INTR_ID));
   890		dmadev->channels_count = DMA_INTR_ID_GET_NUM_CHANNELS(hwid);
   891		dmadev->hwversion = DMA_INTR_ID_GET_VERSION(hwid);
   892	
   893		dev_dbg(&pdev->dev, "OXNAS DMA v%x with %d channels\n",
   894			dmadev->hwversion, dmadev->channels_count);
   895	
   896		/* Limit channels count */
   897		if (dmadev->channels_count > MAX_OXNAS_DMA_CHANNELS)
   898			dmadev->channels_count = MAX_OXNAS_DMA_CHANNELS;
   899	
   900		/* Allocate coherent memory for sg descriptors */
   901		dmadev->sg_data = dma_alloc_coherent(&pdev->dev, sizeof(struct oxnas_dma_sg_data),
   902						     &dmadev->p_sg_data, GFP_KERNEL);
   903		if (!dmadev->sg_data) {
   904			ret = -ENOMEM;
   905			goto disable_clks;
   906		}
   907	
   908		/* Reset SG descritors */
   909		memset(dmadev->sg_data, 0, sizeof(struct oxnas_dma_sg_data));
   910		atomic_set(&dmadev->free_entries_count, 0);
   911	
   912		/* Initialize and add all sg entries to the free list */
   913		for (i = 0 ; i < MAX_OXNAS_SG_ENTRIES ; ++i) {
   914			dmadev->sg_data->entries[i].this_paddr =
 > 915				(dma_addr_t)&(((struct oxnas_dma_sg_data *)dmadev->p_sg_data)->entries[i]);
   916			INIT_LIST_HEAD(&dmadev->sg_data->entries[i].entry);
   917			list_add_tail(&dmadev->sg_data->entries[i].entry,
   918				      &dmadev->free_entries);
   919			atomic_inc(&dmadev->free_entries_count);
   920		}
   921	
   922		/* Init all channels */
   923		for (i = 0 ; i < dmadev->channels_count ; ++i) {
   924			struct oxnas_dma_channel *ch = &dmadev->channels[i];
   925	
   926			ch->dmadev = dmadev;
   927			ch->id = i;
   928	
   929			ch->irq = irq_of_parse_and_map(pdev->dev.of_node, i);
   930			if (ch->irq <= 0) {
   931				dev_err(&pdev->dev, "invalid irq%d from platform\n", i);
   932				goto free_coherent;
   933			}
   934	
   935			ret = devm_request_irq(&pdev->dev, ch->irq,
   936					       oxnas_dma_interrupt, 0,
   937					       "DMA", ch);
   938			if (ret < 0) {
   939				dev_err(&pdev->dev, "failed to request irq%d\n", i);
   940				goto free_coherent;
   941			}
   942	
   943			ch->p_sg_info =
   944				(dma_addr_t)&((struct oxnas_dma_sg_data *)dmadev->p_sg_data)->infos[i];
   945			ch->sg_info = &dmadev->sg_data->infos[i];
   946			memset(ch->sg_info, 0, sizeof(struct oxnas_dma_sg_info));
   947	
   948			atomic_set(&ch->active, 0);
   949	
   950			ch->vc.desc_free = oxnas_dma_desc_free;
   951			vchan_init(&ch->vc, &dmadev->common);
   952			INIT_LIST_HEAD(&ch->node);
   953		}
   954	
   955		platform_set_drvdata(pdev, dmadev);
   956	
   957		dma_cap_set(DMA_MEMCPY, dmadev->common.cap_mask);
   958		dmadev->common.chancnt = dmadev->channels_count;
   959		dmadev->common.device_free_chan_resources = oxnas_dma_free_chan_resources;
   960		dmadev->common.device_tx_status = oxnas_dma_tx_status;
   961		dmadev->common.device_issue_pending = oxnas_dma_issue_pending;
   962		dmadev->common.device_prep_dma_memcpy = oxnas_dma_prep_dma_memcpy;
   963		dmadev->common.device_prep_slave_sg = oxnas_dma_prep_slave_sg;
   964		dmadev->common.device_config = oxnas_dma_slave_config;
   965		dmadev->common.copy_align = DMAENGINE_ALIGN_4_BYTES;
   966		dmadev->common.src_addr_widths = DMA_SLAVE_BUSWIDTH_4_BYTES;
   967		dmadev->common.dst_addr_widths = DMA_SLAVE_BUSWIDTH_4_BYTES;
   968		dmadev->common.directions = BIT(DMA_MEM_TO_MEM);
   969		dmadev->common.residue_granularity = DMA_RESIDUE_GRANULARITY_DESCRIPTOR;
   970		dmadev->common.dev = &pdev->dev;
   971	
   972		ret = dma_async_device_register(&dmadev->common);
   973		if (ret)
   974			goto free_coherent;
   975	
   976		ret = of_dma_controller_register(pdev->dev.of_node,
   977						 of_dma_xlate_by_chan_id,
   978						 &dmadev->common);
   979		if (ret) {
   980			dev_warn(&pdev->dev, "Failed to register DMA Controller\n");
   981			goto dma_unregister;
   982		}
   983	
   984		dev_info(&pdev->dev, "OXNAS DMA Registered\n");
   985	
   986		return 0;
   987	
   988	dma_unregister:
   989		dma_async_device_unregister(&dmadev->common);
   990	
   991	free_coherent:
   992		dma_free_coherent(&pdev->dev, sizeof(struct oxnas_dma_sg_data),
   993				  dmadev->sg_data, dmadev->p_sg_data);
   994	
   995	disable_clks:
   996		clk_disable_unprepare(dmadev->dma_clk);
   997	
   998		return ret;
   999	}
  1000	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

             reply	other threads:[~2022-01-08  1:32 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-08  1:32 kernel test robot [this message]
2022-01-08  1:32 ` [narmstrong-oxnas:oxnas/v5.18/dma 2/4] drivers/dma/oxnas_adma.c:915:40: warning: cast to pointer from integer of different size kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202201080904.ADmkINrx-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.