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


<<attachment: w3eve.vcf>>

Reply via email to