All of lore.kernel.org
 help / color / mirror / Atom feed
* [linusw-nomadik:ux500-charging-v5.18-rc1 14/14] drivers/dma/qcom/bam_dma.c:1316:32: error: 'dma_work' undeclared
@ 2022-05-01  6:01 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-05-01  6:01 UTC (permalink / raw)
  To: Allen Pais; +Cc: kbuild-all, linux-arm-kernel, Linus Walleij

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git ux500-charging-v5.18-rc1
head:   1e198cb5bdd34fd231f456c23fe57d35d71fdeda
commit: 1e198cb5bdd34fd231f456c23fe57d35d71fdeda [14/14] drivers/dma/*: replace tasklets with workqueue
config: arm-allmodconfig (https://download.01.org/0day-ci/archive/20220501/202205011351.PbUolxgm-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 11.3.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/linusw/linux-nomadik.git/commit/?id=1e198cb5bdd34fd231f456c23fe57d35d71fdeda
        git remote add linusw-nomadik https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git
        git fetch --no-tags linusw-nomadik ux500-charging-v5.18-rc1
        git checkout 1e198cb5bdd34fd231f456c23fe57d35d71fdeda
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash drivers/dma/qcom/

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

All errors (new ones prefixed by >>):

   In file included from include/linux/mm_types.h:18,
                    from include/linux/mmzone.h:21,
                    from include/linux/gfp.h:6,
                    from include/linux/slab.h:15,
                    from drivers/dma/qcom/bam_dma.c:29:
   drivers/dma/qcom/bam_dma.c: In function 'bam_dma_probe':
>> drivers/dma/qcom/bam_dma.c:1316:32: error: 'dma_work' undeclared (first use in this function)
    1316 |         INIT_WORK(&bdev->work, dma_work);
         |                                ^~~~~~~~
   include/linux/workqueue.h:232:34: note: in definition of macro '__INIT_WORK'
     232 |                 (_work)->func = (_func);                                \
         |                                  ^~~~~
   drivers/dma/qcom/bam_dma.c:1316:9: note: in expansion of macro 'INIT_WORK'
    1316 |         INIT_WORK(&bdev->work, dma_work);
         |         ^~~~~~~~~
   drivers/dma/qcom/bam_dma.c:1316:32: note: each undeclared identifier is reported only once for each function it appears in
    1316 |         INIT_WORK(&bdev->work, dma_work);
         |                                ^~~~~~~~
   include/linux/workqueue.h:232:34: note: in definition of macro '__INIT_WORK'
     232 |                 (_work)->func = (_func);                                \
         |                                  ^~~~~
   drivers/dma/qcom/bam_dma.c:1316:9: note: in expansion of macro 'INIT_WORK'
    1316 |         INIT_WORK(&bdev->work, dma_work);
         |         ^~~~~~~~~
   At top level:
   drivers/dma/qcom/bam_dma.c:1123:13: warning: 'dma_workqueue' defined but not used [-Wunused-function]
    1123 | static void dma_workqueue(struct work_struct *work)
         |             ^~~~~~~~~~~~~


vim +/dma_work +1316 drivers/dma/qcom/bam_dma.c

  1244	
  1245	static int bam_dma_probe(struct platform_device *pdev)
  1246	{
  1247		struct bam_device *bdev;
  1248		const struct of_device_id *match;
  1249		struct resource *iores;
  1250		int ret, i;
  1251	
  1252		bdev = devm_kzalloc(&pdev->dev, sizeof(*bdev), GFP_KERNEL);
  1253		if (!bdev)
  1254			return -ENOMEM;
  1255	
  1256		bdev->dev = &pdev->dev;
  1257	
  1258		match = of_match_node(bam_of_match, pdev->dev.of_node);
  1259		if (!match) {
  1260			dev_err(&pdev->dev, "Unsupported BAM module\n");
  1261			return -ENODEV;
  1262		}
  1263	
  1264		bdev->layout = match->data;
  1265	
  1266		iores = platform_get_resource(pdev, IORESOURCE_MEM, 0);
  1267		bdev->regs = devm_ioremap_resource(&pdev->dev, iores);
  1268		if (IS_ERR(bdev->regs))
  1269			return PTR_ERR(bdev->regs);
  1270	
  1271		bdev->irq = platform_get_irq(pdev, 0);
  1272		if (bdev->irq < 0)
  1273			return bdev->irq;
  1274	
  1275		ret = of_property_read_u32(pdev->dev.of_node, "qcom,ee", &bdev->ee);
  1276		if (ret) {
  1277			dev_err(bdev->dev, "Execution environment unspecified\n");
  1278			return ret;
  1279		}
  1280	
  1281		bdev->controlled_remotely = of_property_read_bool(pdev->dev.of_node,
  1282							"qcom,controlled-remotely");
  1283		bdev->powered_remotely = of_property_read_bool(pdev->dev.of_node,
  1284							"qcom,powered-remotely");
  1285	
  1286		if (bdev->controlled_remotely || bdev->powered_remotely) {
  1287			ret = of_property_read_u32(pdev->dev.of_node, "num-channels",
  1288						   &bdev->num_channels);
  1289			if (ret)
  1290				dev_err(bdev->dev, "num-channels unspecified in dt\n");
  1291	
  1292			ret = of_property_read_u32(pdev->dev.of_node, "qcom,num-ees",
  1293						   &bdev->num_ees);
  1294			if (ret)
  1295				dev_err(bdev->dev, "num-ees unspecified in dt\n");
  1296		}
  1297	
  1298		if (bdev->controlled_remotely || bdev->powered_remotely)
  1299			bdev->bamclk = devm_clk_get_optional(bdev->dev, "bam_clk");
  1300		else
  1301			bdev->bamclk = devm_clk_get(bdev->dev, "bam_clk");
  1302	
  1303		if (IS_ERR(bdev->bamclk))
  1304			return PTR_ERR(bdev->bamclk);
  1305	
  1306		ret = clk_prepare_enable(bdev->bamclk);
  1307		if (ret) {
  1308			dev_err(bdev->dev, "failed to prepare/enable clock\n");
  1309			return ret;
  1310		}
  1311	
  1312		ret = bam_init(bdev);
  1313		if (ret)
  1314			goto err_disable_clk;
  1315	
> 1316		INIT_WORK(&bdev->work, dma_work);
  1317	
  1318		bdev->channels = devm_kcalloc(bdev->dev, bdev->num_channels,
  1319					sizeof(*bdev->channels), GFP_KERNEL);
  1320	
  1321		if (!bdev->channels) {
  1322			ret = -ENOMEM;
  1323			goto err_wq_kill;
  1324		}
  1325	
  1326		/* allocate and initialize channels */
  1327		INIT_LIST_HEAD(&bdev->common.channels);
  1328	
  1329		for (i = 0; i < bdev->num_channels; i++)
  1330			bam_channel_init(bdev, &bdev->channels[i], i);
  1331	
  1332		ret = devm_request_irq(bdev->dev, bdev->irq, bam_dma_irq,
  1333				IRQF_TRIGGER_HIGH, "bam_dma", bdev);
  1334		if (ret)
  1335			goto err_bam_channel_exit;
  1336	
  1337		/* set max dma segment size */
  1338		bdev->common.dev = bdev->dev;
  1339		ret = dma_set_max_seg_size(bdev->common.dev, BAM_FIFO_SIZE);
  1340		if (ret) {
  1341			dev_err(bdev->dev, "cannot set maximum segment size\n");
  1342			goto err_bam_channel_exit;
  1343		}
  1344	
  1345		platform_set_drvdata(pdev, bdev);
  1346	
  1347		/* set capabilities */
  1348		dma_cap_zero(bdev->common.cap_mask);
  1349		dma_cap_set(DMA_SLAVE, bdev->common.cap_mask);
  1350	
  1351		/* initialize dmaengine apis */
  1352		bdev->common.directions = BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV);
  1353		bdev->common.residue_granularity = DMA_RESIDUE_GRANULARITY_SEGMENT;
  1354		bdev->common.src_addr_widths = DMA_SLAVE_BUSWIDTH_4_BYTES;
  1355		bdev->common.dst_addr_widths = DMA_SLAVE_BUSWIDTH_4_BYTES;
  1356		bdev->common.device_alloc_chan_resources = bam_alloc_chan;
  1357		bdev->common.device_free_chan_resources = bam_free_chan;
  1358		bdev->common.device_prep_slave_sg = bam_prep_slave_sg;
  1359		bdev->common.device_config = bam_slave_config;
  1360		bdev->common.device_pause = bam_pause;
  1361		bdev->common.device_resume = bam_resume;
  1362		bdev->common.device_terminate_all = bam_dma_terminate_all;
  1363		bdev->common.device_issue_pending = bam_issue_pending;
  1364		bdev->common.device_tx_status = bam_tx_status;
  1365		bdev->common.dev = bdev->dev;
  1366	
  1367		ret = dma_async_device_register(&bdev->common);
  1368		if (ret) {
  1369			dev_err(bdev->dev, "failed to register dma async device\n");
  1370			goto err_bam_channel_exit;
  1371		}
  1372	
  1373		ret = of_dma_controller_register(pdev->dev.of_node, bam_dma_xlate,
  1374						&bdev->common);
  1375		if (ret)
  1376			goto err_unregister_dma;
  1377	
  1378		if (!bdev->bamclk) {
  1379			pm_runtime_disable(&pdev->dev);
  1380			return 0;
  1381		}
  1382	
  1383		pm_runtime_irq_safe(&pdev->dev);
  1384		pm_runtime_set_autosuspend_delay(&pdev->dev, BAM_DMA_AUTOSUSPEND_DELAY);
  1385		pm_runtime_use_autosuspend(&pdev->dev);
  1386		pm_runtime_mark_last_busy(&pdev->dev);
  1387		pm_runtime_set_active(&pdev->dev);
  1388		pm_runtime_enable(&pdev->dev);
  1389	
  1390		return 0;
  1391	
  1392	err_unregister_dma:
  1393		dma_async_device_unregister(&bdev->common);
  1394	err_bam_channel_exit:
  1395		for (i = 0; i < bdev->num_channels; i++)
  1396			cancel_work_sync(&bdev->channels[i].vc.work);
  1397	err_wq_kill:
  1398		cancel_work_sync(&bdev->work);
  1399	err_disable_clk:
  1400		clk_disable_unprepare(bdev->bamclk);
  1401	
  1402		return ret;
  1403	}
  1404	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-05-01  6:02 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-01  6:01 [linusw-nomadik:ux500-charging-v5.18-rc1 14/14] drivers/dma/qcom/bam_dma.c:1316:32: error: 'dma_work' undeclared kernel test robot

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.