Re: [PATCH 3/4] mmc: host: sdhci-esdhc-imx: save tuning value for the SDIO card as wakeup source
From: kernel test robot
Date: Mon Oct 14 2024 - 22:09:40 EST
Hi,
kernel test robot noticed the following build warnings:
[auto build test WARNING on shawnguo/for-next]
[also build test WARNING on linus/master v6.12-rc3 next-20241014]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/haibo-chen-nxp-com/mmc-sdhci-export-APIs-for-sdhci-irq-wakeup/20241014-140300
base: https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git for-next
patch link: https://lore.kernel.org/r/20241014060130.1162629-4-haibo.chen%40nxp.com
patch subject: [PATCH 3/4] mmc: host: sdhci-esdhc-imx: save tuning value for the SDIO card as wakeup source
config: alpha-allyesconfig (https://download.01.org/0day-ci/archive/20241015/202410150906.OEI0jyKN-lkp@xxxxxxxxx/config)
compiler: alpha-linux-gcc (GCC) 13.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241015/202410150906.OEI0jyKN-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410150906.OEI0jyKN-lkp@xxxxxxxxx/
All warnings (new ones prefixed by >>):
>> drivers/mmc/host/sdhci-esdhc-imx.c:1592:13: warning: 'sdhc_esdhc_tuning_restore' defined but not used [-Wunused-function]
1592 | static void sdhc_esdhc_tuning_restore(struct sdhci_host *host)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/mmc/host/sdhci-esdhc-imx.c:1569:13: warning: 'sdhc_esdhc_tuning_save' defined but not used [-Wunused-function]
1569 | static void sdhc_esdhc_tuning_save(struct sdhci_host *host)
| ^~~~~~~~~~~~~~~~~~~~~~
vim +/sdhc_esdhc_tuning_restore +1592 drivers/mmc/host/sdhci-esdhc-imx.c
1568
> 1569 static void sdhc_esdhc_tuning_save(struct sdhci_host *host)
1570 {
1571 struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
1572 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
1573 u32 reg;
1574
1575 /*
1576 * SD/eMMC do not need this tuning save because it will re-init
1577 * after system resume back.
1578 * Here save the tuning delay value for SDIO device since it may
1579 * keep power during system PM. And for usdhc, only SDR50 and
1580 * SDR104 mode for SDIO devide need to do tuning, and need to
1581 * save/restore.
1582 */
1583 if ((host->timing == MMC_TIMING_UHS_SDR50) |
1584 (host->timing == MMC_TIMING_UHS_SDR104)) {
1585 reg = readl(host->ioaddr + ESDHC_TUNE_CTRL_STATUS);
1586 reg = (reg & ESDHC_TUNE_CTRL_STATUS_TAP_SEL_PRE_MASK) >>
1587 ESDHC_TUNE_CTRL_STATUS_TAP_SEL_PRE_SHIFT;
1588 imx_data->boarddata.saved_tuning_delay_cell = reg;
1589 }
1590 }
1591
> 1592 static void sdhc_esdhc_tuning_restore(struct sdhci_host *host)
1593 {
1594 struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
1595 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
1596 u32 reg;
1597
1598 if ((host->timing == MMC_TIMING_UHS_SDR50) |
1599 (host->timing == MMC_TIMING_UHS_SDR104)) {
1600 /*
1601 * restore the tuning delay value actually is a
1602 * manual tuning method, so clear the standard
1603 * tuning enable bit here. Will set back this
1604 * ESDHC_STD_TUNING_EN in esdhc_reset_tuning()
1605 * when trigger re-tuning.
1606 */
1607 reg = readl(host->ioaddr + ESDHC_TUNING_CTRL);
1608 reg &= ~ESDHC_STD_TUNING_EN;
1609 writel(reg, host->ioaddr + ESDHC_TUNING_CTRL);
1610
1611 reg = readl(host->ioaddr + ESDHC_MIX_CTRL);
1612 reg |= ESDHC_MIX_CTRL_SMPCLK_SEL | ESDHC_MIX_CTRL_FBCLK_SEL;
1613 writel(reg, host->ioaddr + ESDHC_MIX_CTRL);
1614
1615 writel(imx_data->boarddata.saved_tuning_delay_cell <<
1616 ESDHC_TUNE_CTRL_STATUS_DLY_CELL_SET_PRE_SHIFT,
1617 host->ioaddr + ESDHC_TUNE_CTRL_STATUS);
1618 }
1619 }
1620
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki