答复: [PATCH] mmc: rtsx: Add SD Express mode support for RTS5261
From: 冯锐
Date: Thu Sep 24 2020 - 05:48:22 EST
Hi Hansson,
This patch is based on your patch "mmc: core: Initial support for SD express card/host",
If this patch is compiled alone, there must be errors.
What should I do in this situation?
Thanks
>
> Thank you for the patch! Yet something to improve:
>
> [auto build test ERROR on char-misc/char-misc-testing] [also build test ERROR
> on soc/for-next linus/master v5.9-rc6 next-20200923] [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]
>
> url:
> https://github.com/0day-ci/linux/commits/rui_feng-realsil-com-cn/mmc-rtsx-A
> dd-SD-Express-mode-support-for-RTS5261/20200924-154122
> base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
> 26ed5146bd17cbcd0fb84e358902ac244728a3f3
> config: arc-allyesconfig (attached as .config)
> compiler: arceb-elf-gcc (GCC) 9.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
> # save the attached .config to linux build tree
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0
> make.cross ARCH=arc
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
>
> All errors (new ones prefixed by >>):
>
> drivers/mmc/host/rtsx_pci_sdmmc.c: In function 'sd_power_on':
> >> drivers/mmc/host/rtsx_pci_sdmmc.c:931:20: error: 'MMC_CAP2_SD_EXP'
> undeclared (first use in this function); did you mean 'MMC_CAP2_NO_SD'?
> 931 | mmc->caps2 &= ~(MMC_CAP2_SD_EXP |
> MMC_CAP2_SD_EXP_1_2V);
> | ^~~~~~~~~~~~~~~
> | MMC_CAP2_NO_SD
> drivers/mmc/host/rtsx_pci_sdmmc.c:931:20: note: each undeclared
> identifier is reported only once for each function it appears in
> >> drivers/mmc/host/rtsx_pci_sdmmc.c:931:38: error:
> 'MMC_CAP2_SD_EXP_1_2V' undeclared (first use in this function); did you
> mean 'MMC_CAP2_HS400_1_2V'?
> 931 | mmc->caps2 &= ~(MMC_CAP2_SD_EXP |
> MMC_CAP2_SD_EXP_1_2V);
> |
> ^~~~~~~~~~~~~~~~~~~~
> |
> MMC_CAP2_HS400_1_2V
> drivers/mmc/host/rtsx_pci_sdmmc.c: In function 'sdmmc_get_cd':
> drivers/mmc/host/rtsx_pci_sdmmc.c:1141:17: error: 'MMC_CAP2_SD_EXP'
> undeclared (first use in this function); did you mean 'MMC_CAP2_NO_SD'?
> 1141 | mmc->caps2 |= MMC_CAP2_SD_EXP |
> MMC_CAP2_SD_EXP_1_2V;
> | ^~~~~~~~~~~~~~~
> | MMC_CAP2_NO_SD
> drivers/mmc/host/rtsx_pci_sdmmc.c:1141:35: error:
> 'MMC_CAP2_SD_EXP_1_2V' undeclared (first use in this function); did you
> mean 'MMC_CAP2_HS400_1_2V'?
> 1141 | mmc->caps2 |= MMC_CAP2_SD_EXP |
> MMC_CAP2_SD_EXP_1_2V;
> |
> ^~~~~~~~~~~~~~~~~~~~
> |
> MMC_CAP2_HS400_1_2V
> drivers/mmc/host/rtsx_pci_sdmmc.c: At top level:
> >> drivers/mmc/host/rtsx_pci_sdmmc.c:1376:3: error: 'const struct
> mmc_host_ops' has no member named 'init_sd_express'
> 1376 | .init_sd_express = sdmmc_init_sd_express,
> | ^~~~~~~~~~~~~~~
> drivers/mmc/host/rtsx_pci_sdmmc.c: In function 'init_extra_caps':
> drivers/mmc/host/rtsx_pci_sdmmc.c:1399:17: error: 'MMC_CAP2_SD_EXP'
> undeclared (first use in this function); did you mean 'MMC_CAP2_NO_SD'?
> 1399 | mmc->caps2 |= MMC_CAP2_SD_EXP |
> MMC_CAP2_SD_EXP_1_2V;
> | ^~~~~~~~~~~~~~~
> | MMC_CAP2_NO_SD
> drivers/mmc/host/rtsx_pci_sdmmc.c:1399:35: error:
> 'MMC_CAP2_SD_EXP_1_2V' undeclared (first use in this function); did you
> mean 'MMC_CAP2_HS400_1_2V'?
> 1399 | mmc->caps2 |= MMC_CAP2_SD_EXP |
> MMC_CAP2_SD_EXP_1_2V;
> |
> ^~~~~~~~~~~~~~~~~~~~
> |
> MMC_CAP2_HS400_1_2V
>
> #
> https://github.com/0day-ci/linux/commit/37daa224f78ef228349cee981d690b7
> 35fb9bb2b
> git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags
> linux-review
> rui_feng-realsil-com-cn/mmc-rtsx-Add-SD-Express-mode-support-for-RTS5261/
> 20200924-154122
> git checkout 37daa224f78ef228349cee981d690b735fb9bb2b
> vim +931 drivers/mmc/host/rtsx_pci_sdmmc.c
>
> 894
> 895 static int sd_power_on(struct realtek_pci_sdmmc *host)
> 896 {
> 897 struct rtsx_pcr *pcr = host->pcr;
> 898 struct mmc_host *mmc = host->mmc;
> 899 int err;
> 900 u32 val;
> 901
> 902 if (host->power_state == SDMMC_POWER_ON)
> 903 return 0;
> 904
> 905 rtsx_pci_init_cmd(pcr);
> 906 rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, CARD_SELECT, 0x07,
> SD_MOD_SEL);
> 907 rtsx_pci_add_cmd(pcr, WRITE_REG_CMD,
> CARD_SHARE_MODE,
> 908 CARD_SHARE_MASK, CARD_SHARE_48_SD);
> 909 rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, CARD_CLK_EN,
> 910 SD_CLK_EN, SD_CLK_EN);
> 911 err = rtsx_pci_send_cmd(pcr, 100);
> 912 if (err < 0)
> 913 return err;
> 914
> 915 err = rtsx_pci_card_pull_ctl_enable(pcr, RTSX_SD_CARD);
> 916 if (err < 0)
> 917 return err;
> 918
> 919 err = rtsx_pci_card_power_on(pcr, RTSX_SD_CARD);
> 920 if (err < 0)
> 921 return err;
> 922
> 923 err = rtsx_pci_write_register(pcr, CARD_OE, SD_OUTPUT_EN,
> SD_OUTPUT_EN);
> 924 if (err < 0)
> 925 return err;
> 926
> 927 if (PCI_PID(pcr) == PID_5261) {
> 928 val = rtsx_pci_readl(pcr, RTSX_BIPR);
> 929 if (val & SD_WRITE_PROTECT) {
> 930 pcr->extra_caps &= ~EXTRA_CAPS_SD_EXPRESS;
> > 931 mmc->caps2 &= ~(MMC_CAP2_SD_EXP |
> MMC_CAP2_SD_EXP_1_2V);
> 932 }
> 933 }
> 934
> 935 host->power_state = SDMMC_POWER_ON;
> 936 return 0;
> 937 }
> 938
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
>
> ------Please consider the environment before printing this e-mail.