Re: [PATCH] mmc: rtsx: Add SD Express mode support for RTS5261
From: Ulf Hansson
Date: Thu Sep 24 2020 - 06:01:57 EST
On Thu, 24 Sep 2020 at 11:48, 冯锐 <rui_feng@xxxxxxxxxxxxxx> wrote:
>
> 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?
You need to pick my patch from the patchtracker or the mailing-list
and fold into your submission as part of a series. In this way the
0-build server will build patches stacked on top of each other.
Moreover, if possible, I would suggest to split cardreader changes
from mmc host changes. In this way you would get a series along the
lines of below (not sure what order is best).
PATCH 1/3: mmc core changes.
PATCH 2/3. cardreader changes.
PATCH 3/3. mmc host changes.
Kind regards
Uffe
>
> 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.