Message ID | 20201230090401.12627-1-ricky_wu@realtek.com |
---|---|
State | Superseded |
Headers | show |
Series | [1/2] mmc: rtsx: add delay before power on | expand |
On Wed, 30 Dec 2020 at 10:04, <ricky_wu@realtek.com> wrote: > > From: Ricky Wu <ricky_wu@realtek.com> > > Make sure voltage below 0.5V before power on > when do power cycle > > Signed-off-by: Ricky Wu <ricky_wu@realtek.com> > --- > drivers/mmc/host/rtsx_pci_sdmmc.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/mmc/host/rtsx_pci_sdmmc.c b/drivers/mmc/host/rtsx_pci_sdmmc.c > index e6f5bbce5685..d21b99962b36 100644 > --- a/drivers/mmc/host/rtsx_pci_sdmmc.c > +++ b/drivers/mmc/host/rtsx_pci_sdmmc.c > @@ -906,6 +906,8 @@ static int sd_power_on(struct realtek_pci_sdmmc *host) > if (host->power_state == SDMMC_POWER_ON) > return 0; > > + mdelay(100); > + Why exactly 100 ms? Can you at least add a comment about why in the code? Moreover, I think you should convert to use msleep() rather than mdelay. > rtsx_pci_init_cmd(pcr); > rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, CARD_SELECT, 0x07, SD_MOD_SEL); > rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, CARD_SHARE_MODE, > -- > 2.17.1 > Kind regards Uffe
> On Wed, 30 Dec 2020 at 10:04, <ricky_wu@realtek.com> wrote: > > > > From: Ricky Wu <ricky_wu@realtek.com> > > > > Make sure voltage below 0.5V before power on when do power cycle > > > > Signed-off-by: Ricky Wu <ricky_wu@realtek.com> > > --- > > drivers/mmc/host/rtsx_pci_sdmmc.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/drivers/mmc/host/rtsx_pci_sdmmc.c > > b/drivers/mmc/host/rtsx_pci_sdmmc.c > > index e6f5bbce5685..d21b99962b36 100644 > > --- a/drivers/mmc/host/rtsx_pci_sdmmc.c > > +++ b/drivers/mmc/host/rtsx_pci_sdmmc.c > > @@ -906,6 +906,8 @@ static int sd_power_on(struct realtek_pci_sdmmc > *host) > > if (host->power_state == SDMMC_POWER_ON) > > return 0; > > > > + mdelay(100); > > + > > Why exactly 100 ms? Can you at least add a comment about why in the code? > > Moreover, I think you should convert to use msleep() rather than mdelay. > Because we need to make sure voltage below 0.5V before power on mmc-core will do quickly power cycle at recognition card phase, we need at least 100ms to make our device voltage below 0.5V I will change mdelay() to msleep() > > rtsx_pci_init_cmd(pcr); > > rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, CARD_SELECT, 0x07, > SD_MOD_SEL); > > rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, CARD_SHARE_MODE, > > -- > > 2.17.1 > > > > Kind regards > Uffe > > ------Please consider the environment before printing this e-mail.
On Wed, 30 Dec 2020 at 10:04, <ricky_wu@realtek.com> wrote: > > From: Ricky Wu <ricky_wu@realtek.com> > > Added flag MMC_CAP2_NO_SDIO to mmc->caps2 > Card Reader not support SDIO > > Signed-off-by: Ricky Wu <ricky_wu@realtek.com> Applied for next, thanks! Kind regards Uffe > --- > drivers/mmc/host/rtsx_pci_sdmmc.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/mmc/host/rtsx_pci_sdmmc.c b/drivers/mmc/host/rtsx_pci_sdmmc.c > index d21b99962b36..6a8b0282f272 100644 > --- a/drivers/mmc/host/rtsx_pci_sdmmc.c > +++ b/drivers/mmc/host/rtsx_pci_sdmmc.c > @@ -1427,7 +1427,8 @@ static void realtek_init_host(struct realtek_pci_sdmmc *host) > MMC_CAP_UHS_SDR12 | MMC_CAP_UHS_SDR25; > if (pcr->rtd3_en) > mmc->caps = mmc->caps | MMC_CAP_AGGRESSIVE_PM; > - mmc->caps2 = MMC_CAP2_NO_PRESCAN_POWERUP | MMC_CAP2_FULL_PWR_CYCLE; > + mmc->caps2 = MMC_CAP2_NO_PRESCAN_POWERUP | MMC_CAP2_FULL_PWR_CYCLE | > + MMC_CAP2_NO_SDIO; > mmc->max_current_330 = 400; > mmc->max_current_180 = 800; > mmc->ops = &realtek_pci_sdmmc_ops; > -- > 2.17.1 >
diff --git a/drivers/mmc/host/rtsx_pci_sdmmc.c b/drivers/mmc/host/rtsx_pci_sdmmc.c index e6f5bbce5685..d21b99962b36 100644 --- a/drivers/mmc/host/rtsx_pci_sdmmc.c +++ b/drivers/mmc/host/rtsx_pci_sdmmc.c @@ -906,6 +906,8 @@ static int sd_power_on(struct realtek_pci_sdmmc *host) if (host->power_state == SDMMC_POWER_ON) return 0; + mdelay(100); + rtsx_pci_init_cmd(pcr); rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, CARD_SELECT, 0x07, SD_MOD_SEL); rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, CARD_SHARE_MODE,