From: Jaehoon Chung <jh80.chung@samsung.com>
To: Ulf Hansson <ulf.hansson@linaro.org>,
Prabu Thangamuthu <Prabu.T@synopsys.com>
Cc: Seungwon Jeon <tgih.jun@samsung.com>,
"linux-mmc@vger.kernel.org" <linux-mmc@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Manjunath M Bettegowda <Manjunath.MB@synopsys.com>
Subject: Re: [PATCH 1/1] dw_mmc: insmod followed by rmmod will hung for eMMC
Date: Wed, 27 May 2015 10:50:00 +0900 [thread overview]
Message-ID: <556522C8.3000605@samsung.com> (raw)
In-Reply-To: <CAPDyKFrqsTN50V-WqbPWnYTs3QoWEHz=iBiGpxXAwLwsrS4SQQ@mail.gmail.com>
Hi, Pradu.
Sorry for late.
I will wait for your next version than i will check yours.
To Ulf.
Thanks for review!
Best Regards,
Jaehoon Chung
On 05/22/2015 10:21 PM, Ulf Hansson wrote:
> On 18 May 2015 at 16:23, Prabu Thangamuthu <Prabu.T@synopsys.com> wrote:
>> Removing dw_mmc driver immediately after inserting the dw_mmc driver is
>
> I guess it hangs even if you remove it after a couple of days? :-)
>
> Perhaps makes this a bit more clear?
>
>> getting hung for eMMC device. Root cause for this issue is, dw_mci_remove
>> will disable all the interrupts then it will call dw_mci_cleanup_slot.
>> dw_mci_cleanup_slot is issuing CMD6 to disable boot partition access and
>> it's waiting for command complete interrupt. Since INTMASK was already
>> cleared by dw_mci_remove, command complete interrupt is not reaching
>> the system. This leads to process hung.
>
> /s dw_mci_remove / dw_mci_remove()
>
>>
>> Signed-off-by: Prabu Thangamuthu <prabu.t@synopsys.com>
>
> This patch looks good overall, but please send a new version with
> updated changelog. Moreover, please use "mmc: dw_mmc:" as prefix for
> the commit message header.
>
> Kind regards
> Uffe
>
>> ---
>> drivers/mmc/host/dw_mmc.c | 6 +++---
>> 1 files changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
>> index 5f5adaf..f0a0aff 100644
>> --- a/drivers/mmc/host/dw_mmc.c
>> +++ b/drivers/mmc/host/dw_mmc.c
>> @@ -2941,15 +2941,15 @@ void dw_mci_remove(struct dw_mci *host)
>> {
>> int i;
>>
>> - mci_writel(host, RINTSTS, 0xFFFFFFFF);
>> - mci_writel(host, INTMASK, 0); /* disable all mmc interrupt first */
>> -
>> for (i = 0; i < host->num_slots; i++) {
>> dev_dbg(host->dev, "remove slot %d\n", i);
>> if (host->slot[i])
>> dw_mci_cleanup_slot(host->slot[i], i);
>> }
>>
>> + mci_writel(host, RINTSTS, 0xFFFFFFFF);
>> + mci_writel(host, INTMASK, 0); /* disable all mmc interrupt first */
>> +
>> /* disable clock to CIU */
>> mci_writel(host, CLKENA, 0);
>> mci_writel(host, CLKSRC, 0);
>> --
>> 1.7.6.5
>
next prev parent reply other threads:[~2015-05-27 1:50 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-18 14:23 [PATCH 1/1] dw_mmc: insmod followed by rmmod will hung for eMMC Prabu Thangamuthu
2015-05-22 13:21 ` Ulf Hansson
2015-05-27 1:50 ` Jaehoon Chung [this message]
2015-05-27 5:15 ` Prabu Thangamuthu
2015-05-27 5:15 ` Prabu Thangamuthu
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=556522C8.3000605@samsung.com \
--to=jh80.chung@samsung.com \
--cc=Manjunath.MB@synopsys.com \
--cc=Prabu.T@synopsys.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mmc@vger.kernel.org \
--cc=tgih.jun@samsung.com \
--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: link
Be 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.