| 
														
															@@ -8,7 +8,7 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  #include <linux/platform_device.h> 
														 | 
														
														 | 
														
															  #include <linux/platform_device.h> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  #include <linux/spi/spi.h> 
														 | 
														
														 | 
														
															  #include <linux/spi/spi.h> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  #include <linux/spi/spi_gpio.h> 
														 | 
														
														 | 
														
															  #include <linux/spi/spi_gpio.h> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-@@ -3006,6 +3007,492 @@ static struct board_info __initdata boar 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+@@ -3006,6 +3007,495 @@ static struct board_info __initdata boar 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  	}, 
														 | 
														
														 | 
														
															  	}, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  }; 
														 | 
														
														 | 
														
															  }; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   
														 | 
														
														 | 
														
															   
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -104,6 +104,7 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 +}; 
														 | 
														
														 | 
														
															 +}; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 +static struct board_info __initdata board_HW556_A = { 
														 | 
														
														 | 
														
															 +static struct board_info __initdata board_HW556_A = { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 +	.name					= "HW556_A", 
														 | 
														
														 | 
														
															 +	.name					= "HW556_A", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															++	.of_board_id				= "huawei,hg556a-a", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 +	.expected_cpu_id			= 0x6358, 
														 | 
														
														 | 
														
															 +	.expected_cpu_id			= 0x6358, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 + 
														 | 
														
														 | 
														
															 + 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 +	.has_uart0				= 1, 
														 | 
														
														 | 
														
															 +	.has_uart0				= 1, 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -231,6 +232,7 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 +}; 
														 | 
														
														 | 
														
															 +}; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 +static struct board_info __initdata board_HW556_B = { 
														 | 
														
														 | 
														
															 +static struct board_info __initdata board_HW556_B = { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 +	.name					= "HW556_B", 
														 | 
														
														 | 
														
															 +	.name					= "HW556_B", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															++	.of_board_id				= "huawei,hg556a-b", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 +	.expected_cpu_id			= 0x6358, 
														 | 
														
														 | 
														
															 +	.expected_cpu_id			= 0x6358, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 + 
														 | 
														
														 | 
														
															 + 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 +	.has_uart0				= 1, 
														 | 
														
														 | 
														
															 +	.has_uart0				= 1, 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -365,6 +367,7 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 +}; 
														 | 
														
														 | 
														
															 +}; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 +static struct board_info __initdata board_HW556_C = { 
														 | 
														
														 | 
														
															 +static struct board_info __initdata board_HW556_C = { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 +	.name					= "HW556_C", 
														 | 
														
														 | 
														
															 +	.name					= "HW556_C", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															++	.of_board_id				= "huawei,hg556a-c", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 +	.expected_cpu_id			= 0x6358, 
														 | 
														
														 | 
														
															 +	.expected_cpu_id			= 0x6358, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 + 
														 | 
														
														 | 
														
															 + 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 +	.has_uart0				= 1, 
														 | 
														
														 | 
														
															 +	.has_uart0				= 1, 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -501,7 +504,7 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   /* T-Home Speedport W 303V Typ B */ 
														 | 
														
														 | 
														
															   /* T-Home Speedport W 303V Typ B */ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  static struct board_info __initdata board_spw303v = { 
														 | 
														
														 | 
														
															  static struct board_info __initdata board_spw303v = { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  	.name			= "96358-502V", 
														 | 
														
														 | 
														
															  	.name			= "96358-502V", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-@@ -3446,6 +3933,10 @@ static const struct board_info __initcon 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+@@ -3446,6 +3936,10 @@ static const struct board_info __initcon 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  	&board_nb4_fxc_r2, 
														 | 
														
														 | 
														
															  	&board_nb4_fxc_r2, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  	&board_ct6373_1, 
														 | 
														
														 | 
														
															  	&board_ct6373_1, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  	&board_HW553, 
														 | 
														
														 | 
														
															  	&board_HW553, 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -512,51 +515,6 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  	&board_spw303v, 
														 | 
														
														 | 
														
															  	&board_spw303v, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  	&board_DVAG3810BN, 
														 | 
														
														 | 
														
															  	&board_DVAG3810BN, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  #endif 
														 | 
														
														 | 
														
															  #endif 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-@@ -3465,13 +3956,37 @@ static void __init boardid_fixup(u8 *boo 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 	struct bcm_tag *tag = (struct bcm_tag *)(boot_addr + CFE_OFFSET_64K); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 	char *board_name = (char *)bcm63xx_nvram_get_name(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															--	if (BCMCPU_IS_6358() && (!strcmp(board_name, "96358VW"))) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															--		u8 *p = boot_addr + NB4_PID_OFFSET; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															--		/* Extract nb4 PID */ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															--		if (!memcmp(p, "NB4-", 4)) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															--			memcpy(board_name, p, sizeof("NB4-XXX-rX")); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															--			return; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+	if (BCMCPU_IS_6358()) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+		if (!strcmp(board_name, "96358VW")) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+			u8 *p = boot_addr + NB4_PID_OFFSET; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+			/* Extract nb4 PID */ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+			if (!memcmp(p, "NB4-", 4)) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+				memcpy(board_name, p, sizeof("NB4-XXX-rX")); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+				return; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+			} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+		} else if (!strcmp(board_name, "HW556")) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+			/* 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+			 * HW556 has different wlan caldatas depending on 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+			 * hardware version. 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+			 * Detect hardware version and change board id 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+			 */ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+			u8 cal_data_ath9k[4] = { 0xa5, 0x5a, 0, 0 }; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+			u8 cal_data_rt3062[4] = { 0x62, 0x30, 1, 0 }; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+			if (!memcmp(boot_addr + 0xeffe00, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+				    &cal_data_rt3062, 4)) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+				/* Ralink 0xeffe00 */ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+				memcpy(board_name, "HW556_A", 7); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+			} else if (!memcmp(boot_addr + 0xf7e000, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+					   &cal_data_ath9k, 4)) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+				/* Atheros 0xf7e000 */ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+				memcpy(board_name, "HW556_B", 7); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+			} else if (!memcmp(boot_addr + 0xefe000, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+					   &cal_data_ath9k, 4)) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+				/* Atheros 0xefe000 */ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+				memcpy(board_name, "HW556_C", 7); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-+			} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 		} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 	} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 --- a/drivers/mtd/bcm63xxpart.c 
														 | 
														
														 | 
														
															 --- a/drivers/mtd/bcm63xxpart.c 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 +++ b/drivers/mtd/bcm63xxpart.c 
														 | 
														
														 | 
														
															 +++ b/drivers/mtd/bcm63xxpart.c 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 @@ -224,6 +224,11 @@ static int bcm63xx_parse_cfe_partitions( 
														 | 
														
														 | 
														
															 @@ -224,6 +224,11 @@ static int bcm63xx_parse_cfe_partitions( 
														 |