On Jun 28, 2011, at 3:54 AM, Jaehoon Chung wrote:

> Hi..
> 
> I found the MMC_CAP_BUS_WIDTH_TEST...
> In mailing, I read the related patches..
> but i didn't fully understand...
> 
> /*
> * If controller can't handle bus width test,
> * compare ext_csd previously read in 1 bit mode
> * against ext_csd at new bus width
> */
> if (!(host->caps & MMC_CAP_BUS_WIDTH_TEST))
>       err = mmc_compare_ext_csds(card,
>               ext_csd,
>               bus_width);
> else
>       err = mmc_bus_test(card, bus_width);
> if (!err)
>       break;
> 
> And i tested suspend/resume..it's failed..
> If i didn't set MMC_CAP_BUS_WIDTH_TEST, always return -EINVAL..
> (using SDHCI controller, card is eMMC4.41)
> 
> Didn't compare ext_csd's value..
> 
> So i want to know how use MMC_CAP_BUS_WIDTH_TEST..

I am using eMMC and code works fine so  maybe there is issue in no ext_csd.  
You will need to
add debug code to the compare_ext_csd and see what is not right and we can 
adjust the code.
I am surprised that resume fails -- code will default to 1 bit data and it is 
NOT possible for this to
be wrong.  At the moment -- clueless to explain with more information.

TheCMD14/ CMD19 is in JEDEC spec for bus width testing.  Sends a pattern to the 
card and
based on the returned values detects the bus width.  Some controllers do NOT 
support this command.
The just do not work.  You need to figure this out by enabling the quirk.  No 
other way to know.

regards,

Philip

> 
> Thanks,
> Jaehoon Chung

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

Reply via email to