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 0000000000..03d890ea16 --- /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); + } + } + |