mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-04 06:54:27 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			39 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
Index: linux-2.6.23-rc6/drivers/mtd/chips/cfi_cmdset_0002.c
 | 
						|
===================================================================
 | 
						|
--- linux-2.6.23-rc6.orig/drivers/mtd/chips/cfi_cmdset_0002.c	2007-09-21 16:23:54.000000000 +0800
 | 
						|
+++ linux-2.6.23-rc6/drivers/mtd/chips/cfi_cmdset_0002.c	2007-09-21 16:23:57.000000000 +0800
 | 
						|
@@ -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 */
 |