All of lore.kernel.org
 help / color / mirror / Atom feed
From: Adrian Hunter <adrian.hunter@nokia.com>
To: Kyungmin Park <kmpark@infradead.org>
Cc: "linux-mmc@vger.kernel.org" <linux-mmc@vger.kernel.org>,
	"akpm@linux-foundation.org" <akpm@linux-foundation.org>
Subject: Re: [PATCH] Recognize CSD structure version 3
Date: Tue, 01 Jun 2010 12:51:30 +0300	[thread overview]
Message-ID: <4C04D822.5040208@nokia.com> (raw)
In-Reply-To: <20100531064035.GA25269@july>

Kyungmin Park wrote:
> The eMMC spec 4.4 and 4.3 + additional feature chips has CSD structure version 3

That is not exactly correct.  There is no CSD structure version 1.3.  Instead
there are two fields for CSD structure version.  One in CSD and one in Extended CSD.

In CSD there is:

CSD_STRUCTURE [127:126]
Describes the version of the CSD structure.
Table 44 — CSD register structure
CSD_STRUCTURE    CSD Structure Version    Valid for System Specification Version
0                CSD version No.          1.0 Allocated by MMCA
1                CSD version No.          1.1 Allocated by MMCA
2                CSD version No.          1.2 Version 4.1–4.2–4.3
3                Version is coded in the CSD_STRUCTURE byte in the EXT_CSD register

So the 3 does not mean version 1.3 it just means look at Extended CSD instead.
But the Extended CSD field does not define CSD structure version 3 at all.

CSD_STRUCTURE [194]
This field is a continuation of the CSD_STRUCTURE field in the CSD register
Table 78 — CSD register structure
CSD_STRUCTURE    CSD structure version    Valid for System Specification Version
0                CSD version No. 1.0      Allocated by MMCA
1                CSD version No. 1.1      Allocated by MMCA
2                CSD version No. 1.2      Version 4.1–4.2–4.3-4.4
3–255            Reserved for future use

> To probe these chip properly and make it simple.
> it doesn't check CSD structure.
> 
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> ---
> diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
> index 89f7a25..9e42bc6 100644
> --- a/drivers/mmc/core/mmc.c
> +++ b/drivers/mmc/core/mmc.c
> @@ -118,15 +118,12 @@ static int mmc_decode_csd(struct mmc_card *card)
>  	u32 *resp = card->raw_csd;
>  
>  	/*
> -	 * We only understand CSD structure v1.1 and v1.2.
> +	 * We understand all CSD structure v1.1, v1.2 and v1.3.

This comment is not correct. v1.3 does not exist.

>  	 * v1.2 has extra information in bits 15, 11 and 10.
>  	 */
>  	csd_struct = UNSTUFF_BITS(resp, 126, 2);
> -	if (csd_struct != 1 && csd_struct != 2) {
> -		printk(KERN_ERR "%s: unrecognised CSD structure version %d\n",

I don't agree with removing this validation without a reason.  Instead
extend it to 3.

To support the '3' value properly, the Extended CSD CSD_STRUCTURE
field needs to be validated also i.e. in mmc_read_ext_csd() do
something like:


	u32 *resp = card->raw_csd;

	if (UNSTUFF_BITS(resp, 126, 2) == 3) {
		check ext_csd[194]
	}




> +	printk(KERN_DEBUG "%s: recognised CSD structure version %d\n",
>  			mmc_hostname(card->host), csd_struct);
> -		return -EINVAL;
> -	}
>  
>  	csd->mmca_vsn	 = UNSTUFF_BITS(resp, 122, 4);
>  	m = UNSTUFF_BITS(resp, 115, 4);
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


  parent reply	other threads:[~2010-06-01  9:52 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-31  6:40 [PATCH] Recognize CSD structure version 3 Kyungmin Park
2010-05-31  7:06 ` Ben Dooks
2010-05-31  7:35   ` Kyungmin Park
2010-06-01  9:51 ` Adrian Hunter [this message]
2010-06-02  8:12   ` Kyungmin Park
2010-06-02 19:31     ` Adrian Hunter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4C04D822.5040208@nokia.com \
    --to=adrian.hunter@nokia.com \
    --cc=akpm@linux-foundation.org \
    --cc=kmpark@infradead.org \
    --cc=linux-mmc@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.