Skip to contentSkip to conversation

How working MMC_BUS_WIDTH_TEST??

RFC Jaehoon Chung 2 participants 5 messages Jun 28, 2011 – Jun 30, 2011 MMC, SD and SDIO

lore
Share & tools
lore
#0 lore raw

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..

Thanks,
Jaehoon Chung

#1 lore raw
Quoted 20 lines · Jaehoon Chung

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;
Quoted 7 lines

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

Quoted 3 lines

Thanks,
Jaehoon Chung

#2 lore raw
Quoted 30 lines · Philip Rakity
Quoted 20 lines · Jaehoon Chung

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;
Quoted 7 lines

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..

Quoted 8 lines

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.

When card is probing, i think that need to test bus-width. If card is non-removable, unnecessary bus_width test during resuming. Because already know that support n-bit bus-width..how about this?

Quoted 13 lines

regards,

Philip

Quoted 2 lines

Thanks,
Jaehoon Chung

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

#3 lore raw
Quoted 36 lines · Jaehoon Chung
Quoted 35 lines · Philip Rakity
Quoted 20 lines · Jaehoon Chung

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;
Quoted 7 lines

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.

Quoted 6 lines
Quoted 3 lines

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.

When card is probing, i think that need to test bus-width. If card is non-removable, unnecessary bus_width test during resuming.

agree not necessary but does not explain error.

Quoted 16 lines

Because already know that support n-bit bus-width..how about this?

Quoted 13 lines

regards,

Philip

Quoted 2 lines

Thanks,
Jaehoon Chung

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

#4 lore raw

Hi Philip..

If i didn't set MMC_CAP_BUS_WIDTH_TEST,
entered mmc_compare_ext_csds(). right?

i understand that mmc_compare_ext_csds() compared with previously ext_csd. But in source code, always previously ext_csd is NULL.

I didn't find where assigned ext_csd..

I think that need to assign ext_csd..

If my point is right, i will send the patch..

Thanks
Jaehoon Chung

Quoted 65 lines · Philip Rakity
Quoted 35 lines · Jaehoon Chung
Quoted 34 lines · Philip Rakity
Quoted 20 lines · Jaehoon Chung

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;
Quoted 7 lines

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.

Quoted 5 lines
Quoted 3 lines

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.

When card is probing, i think that need to test bus-width. If card is non-removable, unnecessary bus_width test during resuming.

agree not necessary but does not explain error.

Quoted 13 lines

Because already know that support n-bit bus-width..how about this?

Quoted 11 lines

regards,

Philip

Quoted 2 lines

Thanks,
Jaehoon Chung

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

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