Regression of mtd/chips/jedec_probe.c in 2.6.0-test7

Thayne Harbaugh tharbaugh at lnxi.com
Wed Oct 22 18:51:08 EDT 2003


On Wed, 2003-10-22 at 16:33, Christopher Hoover wrote:
> > If you can narrow the problem down to just a few lines that 
> > are obviously incorrect then the patch should have a fighting 
> > chance.
> 
> Here's what I tried:
> 
> --- linux-2.6.0-test8-rmk1/drivers/mtd/chips/jedec_probe.c	2003-10-20
> 22:19:24.000000000 -0700
> +++ linux-2.6.0-test8-rmk1-ceiva1/drivers/mtd/chips/jedec_probe.c
> 2003-10-22 15:24:55.000000000 -0700
> @@ -1481,7 +1481,7 @@
>  	DEBUG( MTD_DEBUG_LEVEL3,
>  	       "MTD %s(): Check fit 0x%.8x + 0x%.8x = 0x%.8x\n",
>  	       __func__, base, 1 << finfo->DevSize, base + (1 <<
> finfo->DevSize) );
> -	if ( base + ( 1 << finfo->DevSize ) > map->size ) {
> +	if ( base + cfi->interleave * ( 1 << finfo->DevSize ) > map->size )
> {
>  		DEBUG( MTD_DEBUG_LEVEL3,
>  		       "MTD %s(): 0x%.4x 0x%.4x %dKiB doesn't fit\n",
>  		       __func__, finfo->mfr_id, finfo->dev_id,

This is needed.

> @@ -1539,10 +1539,10 @@
>  	 */
>  	DEBUG( MTD_DEBUG_LEVEL3, "MTD %s(): return to ID mode\n", __func__
> );
>  	if(cfi->addr_unlock1) {
> -		cfi_send_gen_cmd(0xaa, cfi->addr_unlock1, base, map, cfi,
> CFI_DEVICETYPE_X8, NULL);
> -		cfi_send_gen_cmd(0x55, cfi->addr_unlock2, base, map, cfi,
> CFI_DEVICETYPE_X8, NULL);
> +		cfi_send_gen_cmd(0xaa, cfi->addr_unlock1, base, map, cfi,
> cfi->device_type, NULL);
> +		cfi_send_gen_cmd(0x55, cfi->addr_unlock2, base, map, cfi,
> cfi->device_type, NULL);
>  	}
> -	cfi_send_gen_cmd(0x90, cfi->addr_unlock1, base, map, cfi,
> CFI_DEVICETYPE_X8, NULL);
> +	cfi_send_gen_cmd(0x90, cfi->addr_unlock1, base, map, cfi,
> cfi->device_type, NULL);
>  	/* FIXME - should have a delay before continuing */
>  
>   match_done:	

There's one more fragment where cfi->device_type should revert back to
CFI_DEVICETYPE_X8

@@ -1674,10 +1674,10 @@
 
 	/* Autoselect Mode */
 	if(cfi->addr_unlock1) {
-		cfi_send_gen_cmd(0xaa, cfi->addr_unlock1, base, map, cfi,
cfi->device_type, NULL);
-		cfi_send_gen_cmd(0x55, cfi->addr_unlock2, base, map, cfi,
cfi->device_type, NULL);
+		cfi_send_gen_cmd(0xaa, cfi->addr_unlock1, base, map, cfi,
CFI_DEVICETYPE_X8, NULL);
+		cfi_send_gen_cmd(0x55, cfi->addr_unlock2, base, map, cfi,
CFI_DEVICETYPE_X8, NULL);
 	}
-	cfi_send_gen_cmd(0x90, cfi->addr_unlock1, base, map, cfi,
cfi->device_type, NULL);
+	cfi_send_gen_cmd(0x90, cfi->addr_unlock1, base, map, cfi,
CFI_DEVICETYPE_X8, NULL);
 	/* FIXME - should have a delay before continuing */
 
 	if (!cfi->numchips) {


Let me know if this fixes it.

-- 
Thayne Harbaugh
Linux Networx
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://lists.infradead.org/pipermail/linux-mtd/attachments/20031022/c7758da9/attachment.bin 


More information about the linux-mtd mailing list