[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <BD70BE74-9C18-4497-A2EE-DB6DCC13CBEA@marvell.com>
Date: Sun, 13 Mar 2011 11:35:19 -0700
From: Philip Rakity <prakity@...vell.com>
To: Jaehoon Chung <jh80.chung@...sung.com>
CC: Chuanxiao Dong <chuanxiao.dong@...el.com>,
"linux-mmc@...r.kernel.org" <linux-mmc@...r.kernel.org>,
"cjb@...top.org" <cjb@...top.org>,
Kyungmin Park <kyungmin.park@...sung.com>,
"w.sang@...gutronix.de" <w.sang@...gutronix.de>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH]mmc: set timeout for SDHCI host before sending busy cmds
On Mar 9, 2011, at 6:29 PM, Jaehoon Chung wrote:
> Chuanxiao Dong wrote:
>> Hi all,
>> From the previous discussion, I do not think we have got a clear conclusion
>> about using maximum timeout value. At least we know from Jae hoon Chung
>> using 0xE for every case is not a good. So I want to suggest only use 0xE for
>> busy command. I personally preferred below implementation, which is similar
>> with a RFC patch submitted by Jae hoon Chung, but only without adding a new
>> quirk.
>
> thanks for remind.
> Yes, i tested without quirks, i think that is not problem.
> (Just sent RFC patch with quirks, because i want to ask how think about adding quirks or not).
Sorry I am confused.
Setting 0x0E all the time does not solve the problem and has side effects ?
What are the side effects ?
Using BUSY patch for 0x0e (below) works ?
>
>>
>> I think sdhci_calc_timeout should be left for data transfer since at least we
>> can get a warning if 0xE is not enough for host to use. And if the host
>> controller and the card have no bugs, then the calculated timeout should be
>> safe. Left the old implementation unchanged is also compatible with all
>> existed host controllers and cards.
>>
>> But for busy command, we are not clear about how long is safe enough for
>> waiting and there is also no function to do the calculation for them. So
>> preferred just using 0xE. Below the patch and comment:
>>
>> Set the timeout control register for SDHCI host when send some commands which
>> need busy signal. Use the maximum timeout value 0xE will be safe.
>>
>> Signed-off-by: Chuanxiao Dong <chuanxiao.dong@...el.com>
>> ---
>> drivers/mmc/host/sdhci.c | 9 ++++++++-
>> 1 files changed, 8 insertions(+), 1 deletions(-)
>>
>> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
>> index 99c372e..8306323 100644
>> --- a/drivers/mmc/host/sdhci.c
>> +++ b/drivers/mmc/host/sdhci.c
>> @@ -659,8 +659,15 @@ static void sdhci_prepare_data(struct sdhci_host *host, struct mmc_data *data)
>>
>> WARN_ON(host->data);
>>
>> - if (data == NULL)
>> + if (data == NULL) {
>> + /*
>> + * set the timeout to be maximum value for commands those with
>> + * busy signal
>> + */
>> + if (host->cmd->flags & MMC_RSP_BUSY)
>> + sdhci_writeb(host, 0xE, SDHCI_TIMEOUT_CONTROL);
>> return;
>> + }
>>
>> /* Sanity checks */
>> BUG_ON(data->blksz * data->blocks > 524288);
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists