Re: [PATCH] mmc: core: fix au_size according to sd spec3.0

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi.
On 02/17/2012 07:14 PM, hyeonsu.kim@xxxxxxxxxxx wrote:

> From: Hyeonsu Kim <hyeonsu.kim@xxxxxxxxxxx>
> 
> This "if phrase" is illogical.
> and SD Spec 3.0 supports au_size from 0 to 0xF.
> 
> Signed-off-by: Hyeonsu Kim <hyeonsu.kim@xxxxxxxxxxx>
> ---
>  drivers/mmc/core/sd.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c
> index c63ad03..cf8bf0e 100644
> --- a/drivers/mmc/core/sd.c
> +++ b/drivers/mmc/core/sd.c
> @@ -244,7 +244,7 @@ static int mmc_read_ssr(struct mmc_card *card)
>  	 * bitfield positions accordingly.
>  	 */
>  	au = UNSTUFF_BITS(ssr, 428 - 384, 4);
> -	if (au > 0 || au <= 9) {
> +	if (au >= 0 && au < 16) {

I think "if (au > 0 && au <= 0xf)" is more readable and 
need to check the sd-spec.
Because in SD2.0, didn't define from 0xa to 0xf.

>  		card->ssr.au = 1 << (au + 4);

Is it right???
card->ssr.au = 1 << (au + 4) is something wrong.
If au is 1, card->ssr.au is 32KB. BUt in spec, defined 16KB.
I think the wrong bit operation. this is more problem.

If my point is right, will send the patch.

Best Regards,
Jaehoon Chung

>  		es = UNSTUFF_BITS(ssr, 408 - 384, 16);
>  		et = UNSTUFF_BITS(ssr, 402 - 384, 6);


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


[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux