All of lore.kernel.org
 help / color / mirror / Atom feed
* [wens:sunxi-wip 21/29] drivers/mmc/host/sunxi-mmc.c:1517:4: error: call to undeclared function 'FIELD_GET'; ISO C99 and later do not support implicit function declarations
@ 2026-05-16  3:32 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-05-16  3:32 UTC (permalink / raw)
  To: Chen-Yu Tsai; +Cc: llvm, oe-kbuild-all

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/wens/linux.git sunxi-wip
head:   1cdb4d4846ffaddce6d648dbbfcdcca78f8a0bcc
commit: 2abb9ce9741414211f8e0a2e94cfbedc4f08e613 [21/29] WIP: mmc: sunxi: tuning
config: sparc64-allmodconfig (https://download.01.org/0day-ci/archive/20260516/202605161159.T5FePjlf-lkp@intel.com/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project 5bac06718f502014fade905512f1d26d578a18f3)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260516/202605161159.T5FePjlf-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605161159.T5FePjlf-lkp@intel.com/

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

>> drivers/mmc/host/sunxi-mmc.c:1517:4: error: call to undeclared function 'FIELD_GET'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    1517 |                         FIELD_GET(GENMASK(23, 16), val),
         |                         ^
>> drivers/mmc/host/sunxi-mmc.c:1517:4: warning: format specifies type 'unsigned long' but the argument has type 'int' [-Wformat]
    1516 |                 dev_info(&pdev->dev, "host version: %lu.%lu.%lu\n",
         |                                                     ~~~
         |                                                     %d
    1517 |                         FIELD_GET(GENMASK(23, 16), val),
         |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/dev_printk.h:160:67: note: expanded from macro 'dev_info'
     160 |         dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
         |                                                                  ~~~     ^~~~~~~~~~~
   include/linux/dev_printk.h:110:23: note: expanded from macro 'dev_printk_index_wrap'
     110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
         |                              ~~~    ^~~~~~~~~~~
   drivers/mmc/host/sunxi-mmc.c:1518:4: warning: format specifies type 'unsigned long' but the argument has type 'int' [-Wformat]
    1516 |                 dev_info(&pdev->dev, "host version: %lu.%lu.%lu\n",
         |                                                         ~~~
         |                                                         %d
    1517 |                         FIELD_GET(GENMASK(23, 16), val),
    1518 |                         FIELD_GET(GENMASK(15, 8), val),
         |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/dev_printk.h:160:67: note: expanded from macro 'dev_info'
     160 |         dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
         |                                                                  ~~~     ^~~~~~~~~~~
   include/linux/dev_printk.h:110:23: note: expanded from macro 'dev_printk_index_wrap'
     110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
         |                              ~~~    ^~~~~~~~~~~
   drivers/mmc/host/sunxi-mmc.c:1519:4: warning: format specifies type 'unsigned long' but the argument has type 'int' [-Wformat]
    1516 |                 dev_info(&pdev->dev, "host version: %lu.%lu.%lu\n",
         |                                                             ~~~
         |                                                             %d
    1517 |                         FIELD_GET(GENMASK(23, 16), val),
    1518 |                         FIELD_GET(GENMASK(15, 8), val),
    1519 |                         FIELD_GET(GENMASK(7, 0), val));
         |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/dev_printk.h:160:67: note: expanded from macro 'dev_info'
     160 |         dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
         |                                                                  ~~~     ^~~~~~~~~~~
   include/linux/dev_printk.h:110:23: note: expanded from macro 'dev_printk_index_wrap'
     110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
         |                              ~~~    ^~~~~~~~~~~
   3 warnings and 1 error generated.


vim +/FIELD_GET +1517 drivers/mmc/host/sunxi-mmc.c

  1414	
  1415	static int sunxi_mmc_probe(struct platform_device *pdev)
  1416	{
  1417		struct sunxi_mmc_host *host;
  1418		struct mmc_host *mmc;
  1419		u32 val;
  1420		int ret;
  1421	
  1422		mmc = devm_mmc_alloc_host(&pdev->dev, sizeof(*host));
  1423		if (!mmc)
  1424			return dev_err_probe(&pdev->dev, -ENOMEM,
  1425					     "mmc alloc host failed\n");
  1426		platform_set_drvdata(pdev, mmc);
  1427	
  1428		host = mmc_priv(mmc);
  1429		host->dev = &pdev->dev;
  1430		host->mmc = mmc;
  1431		spin_lock_init(&host->lock);
  1432	
  1433		ret = sunxi_mmc_resource_request(host, pdev);
  1434		if (ret)
  1435			return ret;
  1436	
  1437		host->sg_cpu = dma_alloc_coherent(&pdev->dev, PAGE_SIZE,
  1438						  &host->sg_dma, GFP_KERNEL);
  1439		if (!host->sg_cpu)
  1440			return dev_err_probe(&pdev->dev, -ENOMEM,
  1441					     "Failed to allocate DMA descriptor mem\n");
  1442	
  1443		if (host->cfg->ccu_has_timings_switch) {
  1444			/*
  1445			 * Supports both old and new timing modes.
  1446			 * Try setting the clk to new timing mode.
  1447			 */
  1448			sunxi_ccu_set_mmc_timing_mode(host->clk_mmc, true);
  1449	
  1450			/* And check the result */
  1451			ret = sunxi_ccu_get_mmc_timing_mode(host->clk_mmc);
  1452			if (ret < 0) {
  1453				/*
  1454				 * For whatever reason we were not able to get
  1455				 * the current active mode. Default to old mode.
  1456				 */
  1457				dev_warn(&pdev->dev, "MMC clk timing mode unknown\n");
  1458				host->use_new_timings = false;
  1459			} else {
  1460				host->use_new_timings = !!ret;
  1461			}
  1462		} else if (host->cfg->needs_new_timings) {
  1463			/* Supports new timing mode only */
  1464			host->use_new_timings = true;
  1465		}
  1466	
  1467		mmc->ops		= &sunxi_mmc_ops;
  1468		mmc->max_blk_count	= 8192;
  1469		mmc->max_blk_size	= 4096;
  1470		mmc->max_segs		= PAGE_SIZE / sizeof(struct sunxi_idma_des);
  1471		mmc->max_seg_size	= (1 << host->cfg->idma_des_size_bits);
  1472		mmc->max_req_size	= mmc->max_seg_size * mmc->max_segs;
  1473		/* 400kHz ~ 52MHz */
  1474		mmc->f_min		=   400000;
  1475		mmc->f_max		= 52000000;
  1476		mmc->caps	       |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
  1477					  MMC_CAP_SDIO_IRQ;
  1478	
  1479		/*
  1480		 * Some H5 devices do not have signal traces precise enough to
  1481		 * use HS DDR mode for their eMMC chips.
  1482		 *
  1483		 * We still enable HS DDR modes for all the other controller
  1484		 * variants that support them.
  1485		 */
  1486		if ((host->cfg->clk_delays || host->use_new_timings) &&
  1487		    !of_device_is_compatible(pdev->dev.of_node,
  1488					     "allwinner,sun50i-h5-emmc"))
  1489			mmc->caps      |= MMC_CAP_1_8V_DDR | MMC_CAP_3_3V_DDR;
  1490	
  1491		ret = mmc_of_parse(mmc);
  1492		if (ret)
  1493			goto error_free_dma;
  1494	
  1495		/*
  1496		 * If we don't support delay chains in the SoC, we can't use any
  1497		 * of the higher speed modes. Mask them out in case the device
  1498		 * tree specifies the properties for them, which gets added to
  1499		 * the caps by mmc_of_parse() above.
  1500		 */
  1501		if (!(host->cfg->clk_delays || host->use_new_timings)) {
  1502			mmc->caps &= ~(MMC_CAP_3_3V_DDR | MMC_CAP_1_8V_DDR |
  1503				       MMC_CAP_1_2V_DDR | MMC_CAP_UHS);
  1504			mmc->caps2 &= ~MMC_CAP2_HS200;
  1505		}
  1506	
  1507		/* TODO: This driver doesn't support HS400 mode yet */
  1508		mmc->caps2 &= ~MMC_CAP2_HS400;
  1509	
  1510		ret = sunxi_mmc_init_host(host);
  1511		if (ret)
  1512			goto error_free_dma;
  1513	
  1514		val = mmc_readl(host, REG_VER_SMCV) & SDXC_VER_MASK;
  1515		if (val)
  1516			dev_info(&pdev->dev, "host version: %lu.%lu.%lu\n",
> 1517				FIELD_GET(GENMASK(23, 16), val),
  1518				FIELD_GET(GENMASK(15, 8), val),
  1519				FIELD_GET(GENMASK(7, 0), val));
  1520	
  1521		pm_runtime_set_active(&pdev->dev);
  1522		pm_runtime_set_autosuspend_delay(&pdev->dev, 50);
  1523		pm_runtime_use_autosuspend(&pdev->dev);
  1524		pm_runtime_enable(&pdev->dev);
  1525	
  1526		ret = mmc_add_host(mmc);
  1527		if (ret)
  1528			goto error_free_dma;
  1529	
  1530		dev_info(&pdev->dev, "initialized, max. request size: %u KB%s\n",
  1531			 mmc->max_req_size >> 10,
  1532			 host->use_new_timings ? ", uses new timings mode" : "");
  1533	
  1534		return 0;
  1535	
  1536	error_free_dma:
  1537		dma_free_coherent(&pdev->dev, PAGE_SIZE, host->sg_cpu, host->sg_dma);
  1538		return ret;
  1539	}
  1540	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

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

only message in thread, other threads:[~2026-05-16  3:33 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-16  3:32 [wens:sunxi-wip 21/29] drivers/mmc/host/sunxi-mmc.c:1517:4: error: call to undeclared function 'FIELD_GET'; ISO C99 and later do not support implicit function declarations 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.