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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html