diff mbox

mtd : print out the page size and oob size after parsing out the nand

Message ID 1333942897-7392-1-git-send-email-b32955@freescale.com
State New, archived
Headers show

Commit Message

Huang Shijie April 9, 2012, 3:41 a.m. UTC
Some not-supported nand chips may pass the current parsing code,
and get the wrong page size and oob size. Sometimes, it's hard to notice
that you get the wrong values, because there is no warning or error.

So it's useful to print out the page size and oob size in the end of
the parsing function. We can check these values with the datasheet of the nand
chip as soon as possible.

Signed-off-by: Huang Shijie <b32955@freescale.com>
---
 drivers/mtd/nand/nand_base.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

Comments

Florian Fainelli April 10, 2012, 10:28 a.m. UTC | #1
Hi Huang,

Le 04/09/12 05:41, Huang Shijie a écrit :
> Some not-supported nand chips may pass the current parsing code,
> and get the wrong page size and oob size. Sometimes, it's hard to notice
> that you get the wrong values, because there is no warning or error.
>
> So it's useful to print out the page size and oob size in the end of
> the parsing function. We can check these values with the datasheet of the nand
> chip as soon as possible.

Relying on the kernel to print something to assert the correctness of 
the NAND detection is really weak, you'd better query these properties 
in userland. Also, I am afraid everyone adds a new NAND property print-out.

>
> Signed-off-by: Huang Shijie<b32955@freescale.com>
> ---
>   drivers/mtd/nand/nand_base.c |    7 ++++---
>   1 files changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
> index 47b19c0..6315b94 100644
> --- a/drivers/mtd/nand/nand_base.c
> +++ b/drivers/mtd/nand/nand_base.c
> @@ -3155,9 +3155,10 @@ ident_done:
>   		chip->cmdfunc = nand_command_lp;
>
>   	pr_info("NAND device: Manufacturer ID:"
> -		" 0x%02x, Chip ID: 0x%02x (%s %s)\n", *maf_id, *dev_id,
> -		nand_manuf_ids[maf_idx].name,
> -		chip->onfi_version ? chip->onfi_params.model : type->name);
> +		" 0x%02x, Chip ID: 0x%02x (%s %s), pagesize: %d, oobsize: %d\n",
> +		*maf_id, *dev_id, nand_manuf_ids[maf_idx].name,
> +		chip->onfi_version ? chip->onfi_params.model : type->name,
> +		mtd->writesize, mtd->oobsize);
>
>   	return type;
>   }
Huang Shijie April 11, 2012, 2:01 a.m. UTC | #2
Hi,
> Relying on the kernel to print something to assert the correctness of 
> the NAND detection is really weak, you'd better query these properties 
> in userland. Also, I am afraid everyone adds a new NAND property 
> print-out.
thanks.

If no one like this patch, just ignore it.

Huang Shijie
Artem Bityutskiy April 21, 2012, 2:21 p.m. UTC | #3
On Wed, 2012-04-11 at 10:01 +0800, Huang Shijie wrote:
> Hi,
> > Relying on the kernel to print something to assert the correctness of 
> > the NAND detection is really weak, you'd better query these properties 
> > in userland. Also, I am afraid everyone adds a new NAND property 
> > print-out.
> thanks.
> 
> If no one like this patch, just ignore it.

Yeah, relying on printks is not reliable, but printing the basic
geometry information very useful, I think.
Artem Bityutskiy April 22, 2012, 5:15 a.m. UTC | #4
On Mon, 2012-04-09 at 11:41 +0800, Huang Shijie wrote:
>  	pr_info("NAND device: Manufacturer ID:"
> -		" 0x%02x, Chip ID: 0x%02x (%s %s)\n", *maf_id, *dev_id,
> -		nand_manuf_ids[maf_idx].name,
> -		chip->onfi_version ? chip->onfi_params.model : type->name);
> +		" 0x%02x, Chip ID: 0x%02x (%s %s), pagesize: %d, oobsize: %d\n",
> +		*maf_id, *dev_id, nand_manuf_ids[maf_idx].name,
> +		chip->onfi_version ? chip->onfi_params.model : type->name,
> +		mtd->writesize, mtd->oobsize);

I've amended this to print "page size" and "OOB size" instead, because
this is a bit more user-friendly, and pushed to l2-mtd.git, thanks.
diff mbox

Patch

diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index 47b19c0..6315b94 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -3155,9 +3155,10 @@  ident_done:
 		chip->cmdfunc = nand_command_lp;
 
 	pr_info("NAND device: Manufacturer ID:"
-		" 0x%02x, Chip ID: 0x%02x (%s %s)\n", *maf_id, *dev_id,
-		nand_manuf_ids[maf_idx].name,
-		chip->onfi_version ? chip->onfi_params.model : type->name);
+		" 0x%02x, Chip ID: 0x%02x (%s %s), pagesize: %d, oobsize: %d\n",
+		*maf_id, *dev_id, nand_manuf_ids[maf_idx].name,
+		chip->onfi_version ? chip->onfi_params.model : type->name,
+		mtd->writesize, mtd->oobsize);
 
 	return type;
 }