* [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.