From: addy ke <addy.ke@rock-chips.com> To: alim.akhtar@gmail.com Cc: jh80.chung@samsung.com, ulf.hansson@linaro.org, olof@lixom.net, a.hajda@samsung.com, dianders@chromium.org, heiko@sntech.de, cf@rock-chips.com, lintao@rock-chips.com, huangtao@rock-chips.com, linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org Subject: Re: [PATCH v4 1/3] mmc: dw_mmc: update clock after host reach a stable voltage Date: Thu, 19 Feb 2015 18:30:35 +0800 [thread overview] Message-ID: <54E5BB4B.8090405@rock-chips.com> (raw) In-Reply-To: <CAGOxZ53ndi_hYDGBGhY-7q8aOrFid1=D=_5KEbUvzTsnybJQ3Q@mail.gmail.com> Hi, Alim Sorry for late reply. On 2015/2/16 07:28, Alim Akhtar wrote: > Hi Addy, > > On Sat, Feb 14, 2015 at 11:47 AM, Addy Ke <addy.ke@rock-chips.com> wrote: >> As show in mmc_power_up(), in MMC_POWER_UP state, the voltage isn't >> stable and we may get 'data busy' which can't be cleaned by resetting >> all blocks. So we should not send command to update clock in this state. >> >> Signed-off-by: Addy Ke <addy.ke@rock-chips.com> >> --- >> drivers/mmc/host/dw_mmc.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c >> index 4d2e3c2..3472f9b 100644 >> --- a/drivers/mmc/host/dw_mmc.c >> +++ b/drivers/mmc/host/dw_mmc.c >> @@ -1102,7 +1102,8 @@ static void dw_mci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) >> drv_data->set_ios(slot->host, ios); >> >> /* Slot specific timing and width adjustment */ >> - dw_mci_setup_bus(slot, false); >> + if (ios->power_mode != MMC_POWER_UP) >> + dw_mci_setup_bus(slot, false); >> > This looks a HACK to me. > If stabilizing host voltage regulator is the problem, can you try out > below patch, and see if this resolve your issue? I have test by: cd /sys/bus/platform/drivers/dwmmc_rockchip for i in $(seq 1 10000); do echo "========================" $i echo ff0c0000.dwmmc > unbind sleep .5 echo ff0c0000.dwmmc > bind sleep 2 done There is no error. I think this patch can resolve my issue, thank you. Do you send this patch upstream, or can I put it in my patch list? > > =========== > [PATCH] mmc: dw_mmc: Wait for host voltage regulator to be stable > > Signed-off-by: Alim Akhtar <alim.akhtar@samsung.com> > --- > drivers/mmc/host/dw_mmc.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c > index 4d2e3c2..dc10fbb 100644 > --- a/drivers/mmc/host/dw_mmc.c > +++ b/drivers/mmc/host/dw_mmc.c > @@ -1202,6 +1202,9 @@ static int dw_mci_switch_voltage(struct mmc_host > *mmc, struct mmc_ios *ios) > } > mci_writel(host, UHS_REG, uhs); > > + /* wait for 5ms so that host voltage regulator is stable */ > + usleep_range(5000, 5500); > + > return 0; > } > > =============== > >> if (slot->host->state == STATE_WAITING_CMD11_DONE && ios->clock != 0) >> slot->host->state = STATE_IDLE; >> -- >> 1.8.3.2 >> >> > > >
WARNING: multiple messages have this Message-ID (diff)
From: addy.ke@rock-chips.com (addy ke) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v4 1/3] mmc: dw_mmc: update clock after host reach a stable voltage Date: Thu, 19 Feb 2015 18:30:35 +0800 [thread overview] Message-ID: <54E5BB4B.8090405@rock-chips.com> (raw) In-Reply-To: <CAGOxZ53ndi_hYDGBGhY-7q8aOrFid1=D=_5KEbUvzTsnybJQ3Q@mail.gmail.com> Hi, Alim Sorry for late reply. On 2015/2/16 07:28, Alim Akhtar wrote: > Hi Addy, > > On Sat, Feb 14, 2015 at 11:47 AM, Addy Ke <addy.ke@rock-chips.com> wrote: >> As show in mmc_power_up(), in MMC_POWER_UP state, the voltage isn't >> stable and we may get 'data busy' which can't be cleaned by resetting >> all blocks. So we should not send command to update clock in this state. >> >> Signed-off-by: Addy Ke <addy.ke@rock-chips.com> >> --- >> drivers/mmc/host/dw_mmc.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c >> index 4d2e3c2..3472f9b 100644 >> --- a/drivers/mmc/host/dw_mmc.c >> +++ b/drivers/mmc/host/dw_mmc.c >> @@ -1102,7 +1102,8 @@ static void dw_mci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) >> drv_data->set_ios(slot->host, ios); >> >> /* Slot specific timing and width adjustment */ >> - dw_mci_setup_bus(slot, false); >> + if (ios->power_mode != MMC_POWER_UP) >> + dw_mci_setup_bus(slot, false); >> > This looks a HACK to me. > If stabilizing host voltage regulator is the problem, can you try out > below patch, and see if this resolve your issue? I have test by: cd /sys/bus/platform/drivers/dwmmc_rockchip for i in $(seq 1 10000); do echo "========================" $i echo ff0c0000.dwmmc > unbind sleep .5 echo ff0c0000.dwmmc > bind sleep 2 done There is no error. I think this patch can resolve my issue, thank you. Do you send this patch upstream, or can I put it in my patch list? > > =========== > [PATCH] mmc: dw_mmc: Wait for host voltage regulator to be stable > > Signed-off-by: Alim Akhtar <alim.akhtar@samsung.com> > --- > drivers/mmc/host/dw_mmc.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c > index 4d2e3c2..dc10fbb 100644 > --- a/drivers/mmc/host/dw_mmc.c > +++ b/drivers/mmc/host/dw_mmc.c > @@ -1202,6 +1202,9 @@ static int dw_mci_switch_voltage(struct mmc_host > *mmc, struct mmc_ios *ios) > } > mci_writel(host, UHS_REG, uhs); > > + /* wait for 5ms so that host voltage regulator is stable */ > + usleep_range(5000, 5500); > + > return 0; > } > > =============== > >> if (slot->host->state == STATE_WAITING_CMD11_DONE && ios->clock != 0) >> slot->host->state = STATE_IDLE; >> -- >> 1.8.3.2 >> >> > > >
next prev parent reply other threads:[~2015-02-19 10:30 UTC|newest] Thread overview: 93+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-02-05 11:13 [PATCH] mmc: dw_mmc: fix bug that cause 'Timeout sending command' Addy Ke 2015-02-05 11:13 ` Addy Ke 2015-02-09 4:48 ` Ulf Hansson 2015-02-09 4:51 ` Ulf Hansson 2015-02-09 4:51 ` Ulf Hansson 2015-02-09 4:51 ` Ulf Hansson 2015-02-09 6:56 ` Addy 2015-02-09 6:56 ` Addy 2015-02-09 6:56 ` Addy 2015-02-09 7:04 ` Jaehoon Chung 2015-02-09 7:04 ` Jaehoon Chung 2015-02-09 7:04 ` Jaehoon Chung 2015-02-09 9:17 ` addy ke 2015-02-09 9:17 ` addy ke 2015-02-09 9:17 ` addy ke 2015-02-09 7:25 ` [PATCH v2 0/2] about data busy Addy Ke 2015-02-09 7:25 ` Addy Ke 2015-02-09 7:25 ` Addy Ke 2015-02-09 7:25 ` [PATCH v2 1/2] mmc: dw_mmc: fix bug that cause 'Timeout sending command' Addy Ke 2015-02-09 7:25 ` Addy Ke 2015-02-09 10:01 ` Jaehoon Chung 2015-02-09 10:01 ` Jaehoon Chung 2015-02-11 3:07 ` Addy 2015-02-11 3:07 ` Addy 2015-02-10 15:22 ` Alim Akhtar 2015-02-10 15:22 ` Alim Akhtar 2015-02-10 15:22 ` Alim Akhtar 2015-02-11 2:57 ` Addy 2015-02-11 2:57 ` Addy 2015-02-11 2:57 ` Addy 2015-02-11 3:25 ` Ulf Hansson 2015-02-11 3:46 ` Jaehoon Chung 2015-02-11 3:52 ` Ulf Hansson 2015-02-11 11:58 ` Andrzej Hajda 2015-02-11 23:20 ` Alim Akhtar 2015-02-11 23:20 ` Alim Akhtar 2015-02-12 2:28 ` addy ke 2015-02-12 11:10 ` Andrzej Hajda 2015-02-12 13:59 ` Alim Akhtar 2015-02-12 13:59 ` Alim Akhtar 2015-02-13 8:15 ` addy ke 2015-02-12 11:13 ` Andrzej Hajda 2015-02-12 11:13 ` Andrzej Hajda 2015-02-12 13:53 ` Alim Akhtar 2015-02-12 13:53 ` Alim Akhtar 2015-02-09 7:25 ` [PATCH v2 2/2] mmc: dw_mmc: Don't start command while data busy Addy Ke 2015-02-09 7:25 ` Addy Ke 2015-02-13 11:52 ` [PATCH v3 0/3] about " Addy Ke 2015-02-13 11:52 ` Addy Ke 2015-02-13 11:52 ` [PATCH v3 1/3] mmc: dw_mmc: update clock after host reach a stable voltage Addy Ke 2015-02-13 11:52 ` Addy Ke 2015-02-13 11:52 ` [PATCH v3 2/3] mmc: dw_mmc: fix bug that cause 'Timeout sending command' Addy Ke 2015-02-13 11:52 ` Addy Ke 2015-02-13 11:52 ` [PATCH v3 3/3] mmc: dw_mmc: Don't start command while data busy Addy Ke 2015-02-13 11:52 ` Addy Ke 2015-02-14 6:17 ` [PATCH v4 0/3] about " Addy Ke 2015-02-14 6:17 ` Addy Ke 2015-02-14 6:17 ` [PATCH v4 1/3] mmc: dw_mmc: update clock after host reach a stable voltage Addy Ke 2015-02-14 6:17 ` Addy Ke 2015-02-15 23:28 ` Alim Akhtar 2015-02-15 23:28 ` Alim Akhtar 2015-02-19 10:30 ` addy ke [this message] 2015-02-19 10:30 ` addy ke 2015-02-19 23:49 ` Doug Anderson 2015-02-19 23:49 ` Doug Anderson 2015-02-20 0:02 ` Russell King - ARM Linux 2015-02-20 0:02 ` Russell King - ARM Linux 2015-02-20 1:04 ` Doug Anderson 2015-02-20 1:04 ` Doug Anderson 2015-02-20 19:05 ` Doug Anderson 2015-02-20 19:05 ` Doug Anderson 2015-02-25 7:52 ` Alim Akhtar 2015-02-25 7:52 ` Alim Akhtar 2015-02-25 9:56 ` Jaehoon Chung 2015-02-25 9:56 ` Jaehoon Chung 2015-02-25 21:05 ` Doug Anderson 2015-02-25 21:05 ` Doug Anderson 2015-02-14 6:17 ` [PATCH v4 2/3] mmc: dw_mmc: fix bug that cause 'Timeout sending command' Addy Ke 2015-02-14 6:17 ` Addy Ke 2015-02-14 6:17 ` [PATCH v4 3/3] mmc: dw_mmc: Don't start command while data busy Addy Ke 2015-02-14 6:17 ` Addy Ke 2015-02-20 0:21 ` Doug Anderson 2015-02-20 0:21 ` Doug Anderson 2015-02-15 11:41 ` [PATCH v4 0/3] about " Javier Martinez Canillas 2015-02-15 11:41 ` Javier Martinez Canillas 2015-02-16 5:48 ` Jaehoon Chung 2015-02-16 5:48 ` Jaehoon Chung 2015-02-16 11:09 ` Javier Martinez Canillas 2015-02-16 11:09 ` Javier Martinez Canillas 2015-02-19 10:55 ` addy ke 2015-02-19 10:55 ` addy ke 2015-02-20 19:03 ` Doug Anderson 2015-02-20 19:03 ` Doug Anderson
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=54E5BB4B.8090405@rock-chips.com \ --to=addy.ke@rock-chips.com \ --cc=a.hajda@samsung.com \ --cc=alim.akhtar@gmail.com \ --cc=cf@rock-chips.com \ --cc=dianders@chromium.org \ --cc=heiko@sntech.de \ --cc=huangtao@rock-chips.com \ --cc=jh80.chung@samsung.com \ --cc=lintao@rock-chips.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mmc@vger.kernel.org \ --cc=linux-rockchip@lists.infradead.org \ --cc=olof@lixom.net \ --cc=ulf.hansson@linaro.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.