tree:
https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git
queue-4.19
head: 49ada0390dee8e4db4da2ebcbc0b63e2d177c169
commit: 26f4543a0787b718464c1ae26baffd6cec590342 [6/35] mmc: sdhci-omap: Fix busy
detection by enabling MMC_CAP_NEED_RSP_BUSY
config: parisc-allyesconfig (attached as .config)
compiler: hppa-linux-gcc (GCC) 9.2.0
reproduce:
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 26f4543a0787b718464c1ae26baffd6cec590342
# save the attached .config to linux build tree
GCC_VERSION=9.2.0 make.cross ARCH=parisc
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp(a)intel.com>
Note: the sashal-linux-stable/queue-4.19 HEAD 49ada0390dee8e4db4da2ebcbc0b63e2d177c169
builds fine.
It only hurts bisectibility.
All errors (new ones prefixed by >>):
drivers/mmc/host/sdhci-omap.c: In function 'sdhci_omap_probe':
> drivers/mmc/host/sdhci-omap.c:1113:15: error:
'MMC_CAP_NEED_RSP_BUSY' undeclared (first use in this function); did you mean
'MMC_CAP_NEEDS_POLL'?
1113 | mmc->caps |= MMC_CAP_NEED_RSP_BUSY;
| ^~~~~~~~~~~~~~~~~~~~~
| MMC_CAP_NEEDS_POLL
drivers/mmc/host/sdhci-omap.c:1113:15: note: each undeclared identifier is reported
only once for each function it appears in
vim +1113 drivers/mmc/host/sdhci-omap.c
1004
1005 static int sdhci_omap_probe(struct platform_device *pdev)
1006 {
1007 int ret;
1008 u32 offset;
1009 struct device *dev = &pdev->dev;
1010 struct sdhci_host *host;
1011 struct sdhci_pltfm_host *pltfm_host;
1012 struct sdhci_omap_host *omap_host;
1013 struct mmc_host *mmc;
1014 const struct of_device_id *match;
1015 struct sdhci_omap_data *data;
1016 const struct soc_device_attribute *soc;
1017
1018 match = of_match_device(omap_sdhci_match, dev);
1019 if (!match)
1020 return -EINVAL;
1021
1022 data = (struct sdhci_omap_data *)match->data;
1023 if (!data) {
1024 dev_err(dev, "no sdhci omap data\n");
1025 return -EINVAL;
1026 }
1027 offset = data->offset;
1028
1029 host = sdhci_pltfm_init(pdev, &sdhci_omap_pdata,
1030 sizeof(*omap_host));
1031 if (IS_ERR(host)) {
1032 dev_err(dev, "Failed sdhci_pltfm_init\n");
1033 return PTR_ERR(host);
1034 }
1035
1036 pltfm_host = sdhci_priv(host);
1037 omap_host = sdhci_pltfm_priv(pltfm_host);
1038 omap_host->host = host;
1039 omap_host->base = host->ioaddr;
1040 omap_host->dev = dev;
1041 omap_host->power_mode = MMC_POWER_UNDEFINED;
1042 omap_host->timing = MMC_TIMING_LEGACY;
1043 omap_host->flags = data->flags;
1044 host->ioaddr += offset;
1045
1046 mmc = host->mmc;
1047 sdhci_get_of_property(pdev);
1048 ret = mmc_of_parse(mmc);
1049 if (ret)
1050 goto err_pltfm_free;
1051
1052 soc = soc_device_match(sdhci_omap_soc_devices);
1053 if (soc) {
1054 omap_host->version = "rev11";
1055 if (!strcmp(dev_name(dev), "4809c000.mmc"))
1056 mmc->f_max = 96000000;
1057 if (!strcmp(dev_name(dev), "480b4000.mmc"))
1058 mmc->f_max = 48000000;
1059 if (!strcmp(dev_name(dev), "480ad000.mmc"))
1060 mmc->f_max = 48000000;
1061 }
1062
1063 pltfm_host->clk = devm_clk_get(dev, "fck");
1064 if (IS_ERR(pltfm_host->clk)) {
1065 ret = PTR_ERR(pltfm_host->clk);
1066 goto err_pltfm_free;
1067 }
1068
1069 ret = clk_set_rate(pltfm_host->clk, mmc->f_max);
1070 if (ret) {
1071 dev_err(dev, "failed to set clock to %d\n", mmc->f_max);
1072 goto err_pltfm_free;
1073 }
1074
1075 omap_host->pbias = devm_regulator_get_optional(dev, "pbias");
1076 if (IS_ERR(omap_host->pbias)) {
1077 ret = PTR_ERR(omap_host->pbias);
1078 if (ret != -ENODEV)
1079 goto err_pltfm_free;
1080 dev_dbg(dev, "unable to get pbias regulator %d\n", ret);
1081 }
1082 omap_host->pbias_enabled = false;
1083
1084 /*
1085 * omap_device_pm_domain has callbacks to enable the main
1086 * functional clock, interface clock and also configure the
1087 * SYSCONFIG register of omap devices. The callback will be invoked
1088 * as part of pm_runtime_get_sync.
1089 */
1090 pm_runtime_enable(dev);
1091 ret = pm_runtime_get_sync(dev);
1092 if (ret < 0) {
1093 dev_err(dev, "pm_runtime_get_sync failed\n");
1094 pm_runtime_put_noidle(dev);
1095 goto err_rpm_disable;
1096 }
1097
1098 ret = sdhci_omap_set_capabilities(omap_host);
1099 if (ret) {
1100 dev_err(dev, "failed to set system capabilities\n");
1101 goto err_put_sync;
1102 }
1103
1104 host->mmc_host_ops.get_ro = mmc_gpio_get_ro;
1105 host->mmc_host_ops.start_signal_voltage_switch =
1106 sdhci_omap_start_signal_voltage_switch;
1107 host->mmc_host_ops.set_ios = sdhci_omap_set_ios;
1108 host->mmc_host_ops.card_busy = sdhci_omap_card_busy;
1109 host->mmc_host_ops.execute_tuning = sdhci_omap_execute_tuning;
1110 host->mmc_host_ops.enable_sdio_irq = sdhci_omap_enable_sdio_irq;
1111
1112 /* R1B responses is required to properly manage HW busy detection. */
1113 mmc->caps |= MMC_CAP_NEED_RSP_BUSY;
1114
1115 ret = sdhci_setup_host(host);
1116 if (ret)
1117 goto err_put_sync;
1118
1119 ret = sdhci_omap_config_iodelay_pinctrl_state(omap_host);
1120 if (ret)
1121 goto err_cleanup_host;
1122
1123 ret = __sdhci_add_host(host);
1124 if (ret)
1125 goto err_cleanup_host;
1126
1127 return 0;
1128
1129 err_cleanup_host:
1130 sdhci_cleanup_host(host);
1131
1132 err_put_sync:
1133 pm_runtime_put_sync(dev);
1134
1135 err_rpm_disable:
1136 pm_runtime_disable(dev);
1137
1138 err_pltfm_free:
1139 sdhci_pltfm_free(pdev);
1140 return ret;
1141 }
1142
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org