Re: Issues with ADATA SD cards on OMAP?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jan 12, 2011 at 9:48 AM, Steve Sakoman <sakoman@xxxxxxxxx> wrote:
> On Tue, Jan 11, 2011 at 10:17 PM, Ghorai, Sukumar <s-ghorai@xxxxxx> wrote:
>
>> [Ghorai]
>> We also experienced the same issue using 32GB SD card for omap3 and omap4.
>> And the problem is seen is that DTO value (in SYSCTL) is not current
>> in following function.
>>
>> So add the following modification and please update the status.
>> And we will submit proper patch towards the same.
>>
>> static void set_data_timeout(..){
>> ...
>>      cycle_ns = 1000000000 / (clk_get_rate(host->fclk) / clkd);
>>        timeout = timeout_ns / cycle_ns;
>>        timeout += timeout_clks;
>> + timeout *=2;
>>      if (timeout) {
>> ...
>> }
>
> I tried this change.  While it seemed to improve things a bit for the
> ADATA card I tested, I was still not able to boot successfully.
>
> I will investigate further.  Forcing a value of 14 makes the card
> work.  I'll add a printk to see what dto value is computed by your
> patch.

The printk showed that dto was being set in the range 11-13 with your patch.

I still was seeing some corruption occurring with the patch -- but at
a much lower level that without the patch.

Since I knew that the card would definitely work if dto were hard
coded to 14, I next tried bumping the value your patch computed by 1:

diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index 9c7c590..09a7e21 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -1372,6 +1372,7 @@ static void set_data_timeout(struct omap_hsmmc_host *host,
 			dto -= 13;
 		else
 			dto = 0;
+		dto++;
 		if (dto > 14)
 			dto = 14;
 	}

I've been running fairly intensive testing for the past 6 hours with out issue.

This chunk of code really should be reviewed by an mmc expert -- I
have a feeling that it could be simplified or at least made a bit
easier to understand!

Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux