38 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
diff -urN linux-2.6.21.1.old/drivers/mtd/chips/cfi_cmdset_0002.c linux-2.6.21.1.dev/drivers/mtd/chips/cfi_cmdset_0002.c
 | 
						|
--- linux-2.6.21.1.old/drivers/mtd/chips/cfi_cmdset_0002.c	2007-04-27 23:49:26.000000000 +0200
 | 
						|
+++ linux-2.6.21.1.dev/drivers/mtd/chips/cfi_cmdset_0002.c	2007-05-26 19:30:01.049193968 +0200
 | 
						|
@@ -51,6 +51,7 @@
 | 
						|
 #define SST49LF040B	        0x0050
 | 
						|
 #define SST49LF008A		0x005a
 | 
						|
 #define AT49BV6416		0x00d6
 | 
						|
+#define MANUFACTURER_SAMSUNG	0x00ec
 | 
						|
 
 | 
						|
 static int cfi_amdstd_read (struct mtd_info *, loff_t, size_t, size_t *, u_char *);
 | 
						|
 static int cfi_amdstd_write_words(struct mtd_info *, loff_t, size_t, size_t *, const u_char *);
 | 
						|
@@ -294,12 +295,19 @@
 | 
						|
 
 | 
						|
 		if (extp->MajorVersion != '1' ||
 | 
						|
 		    (extp->MinorVersion < '0' || extp->MinorVersion > '4')) {
 | 
						|
-			printk(KERN_ERR "  Unknown Amd/Fujitsu Extended Query "
 | 
						|
-			       "version %c.%c.\n",  extp->MajorVersion,
 | 
						|
-			       extp->MinorVersion);
 | 
						|
-			kfree(extp);
 | 
						|
-			kfree(mtd);
 | 
						|
-			return NULL;
 | 
						|
+		        if (cfi->mfr == MANUFACTURER_SAMSUNG &&
 | 
						|
+			    (extp->MajorVersion == '3' && extp->MinorVersion == '3')) {
 | 
						|
+			    printk(KERN_NOTICE "  Newer Samsung flash detected, "
 | 
						|
+			           "should be compatibile with Amd/Fujitsu.\n");
 | 
						|
+		        }
 | 
						|
+		        else {
 | 
						|
+			    printk(KERN_ERR "  Unknown Amd/Fujitsu Extended Query "
 | 
						|
+			           "version %c.%c.\n",  extp->MajorVersion,
 | 
						|
+			           extp->MinorVersion);
 | 
						|
+			    kfree(extp);
 | 
						|
+			    kfree(mtd);
 | 
						|
+			    return NULL;
 | 
						|
+		        }
 | 
						|
 		}
 | 
						|
 
 | 
						|
 		/* Install our own private info structure */
 |