diff options
Diffstat (limited to 'target/linux/generic/patches-2.6.37/089-mtd-samsung-flash.patch')
| -rw-r--r-- | target/linux/generic/patches-2.6.37/089-mtd-samsung-flash.patch | 43 | 
1 files changed, 43 insertions, 0 deletions
| diff --git a/target/linux/generic/patches-2.6.37/089-mtd-samsung-flash.patch b/target/linux/generic/patches-2.6.37/089-mtd-samsung-flash.patch new file mode 100644 index 000000000..03d890ea1 --- /dev/null +++ b/target/linux/generic/patches-2.6.37/089-mtd-samsung-flash.patch @@ -0,0 +1,43 @@ +--- a/drivers/mtd/chips/cfi_cmdset_0002.c ++++ b/drivers/mtd/chips/cfi_cmdset_0002.c +@@ -394,15 +394,31 @@ static void cfi_fixup_major_minor(struct + { + 	// manufacturers defined in include/linux/mtd/cfi.h +  +-	if (cfi->mfr == CFI_MFR_SAMSUNG && cfi->id == 0x257e && +-	    extp->MajorVersion == '0') +-		extp->MajorVersion = '1'; +-	/* +-	 * SST 38VF640x chips report major=0xFF / minor=0xFF. +-	 */ +-	if (cfi->mfr == CFI_MFR_SST && (cfi->id >> 4) == 0x0536) { +-		extp->MajorVersion = '1'; +-		extp->MinorVersion = '0'; ++	if (cfi->mfr == CFI_MFR_SAMSUNG && ++		extp->MajorVersion == '0') { ++			printk("  Fixed Samsung's Amd/Fujitsu Extended Query version from %c.%c", ++				extp->MajorVersion, extp->MinorVersion); ++ ++			extp->MajorVersion = '1'; ++			extp->MinorVersion = '0'; ++ ++			printk(" to %c.%c.\n", ++				extp->MajorVersion, extp->MinorVersion); ++	} ++ ++	if (cfi->mfr == CFI_MFR_SAMSUNG && ++		extp->MajorVersion == '3' && extp->MinorVersion == '3') { ++			printk(KERN_NOTICE "  Newer Samsung flash detected, " ++				"should be compatibile with Amd/Fujitsu.\n"); ++ ++			printk("  Fixed Samsung's Amd/Fujitsu Extended Query version from %c.%c", ++				extp->MajorVersion, extp->MinorVersion); ++ ++			extp->MajorVersion = '1';       // set to 1.3 (last defined version) ++			extp->MinorVersion = '3'; ++ ++			printk(" to %c.%c.\n", ++				extp->MajorVersion, extp->MinorVersion); + 	} + } +  | 
