Message ID | 20201230090401.12627-1-ricky_wu@realtek.com (mailing list archive) |
---|---|
State | New, archived |
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.
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,