I have not had time to make a formal patch for this but I thought it was
significant enough just to send it out. The problem is on omap systems
that use omap_hsmmc.c to run sd or mmc cards. If the system you are
using has an 8 wire interface, it will only use a one wire interface to
4 wire cards (eg, sd class 4 and sd class 6).
In the file driver/mmc/omap_hsmmc.c in the function omap_hsmmc_probe:
at about line 1739 change:
if (mmc_slot(host).wires >= 8)
mmc->caps |= MMC_CAP_8_BIT_DATA;
else if (mmc_slot(host).wires >= 4)
mmc->caps |= MMC_CAP_4_BIT_DATA;
to:
if (mmc_slot(host).wires >= 8)
mmc->caps |= MMC_CAP_8_BIT_DATA;
if (mmc_slot(host).wires >= 4)
mmc->caps |= w;
just delete the word "else". This sets the MMC_CAP_4_BIT_DATA bit on
interfaces that have 8 wire interfaces.
We have seen a BIG performance improvement on our systems.
Steve Schwarm
begin:vcard
fn:Stephen Schwarm, CSDP
n:Schwarm, CSDP;Stephen
adr;dom:;;30 Hayden Woods;Wrentham;MA;02093
email;internet:schwarm@xxxxxxxx
tel;home:508-384-7697
tel;cell:508-922-9688
x-mozilla-html:FALSE
version:2.1
end:vcard