mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-04 06:54:27 -05:00 
			
		
		
		
	brcm47xx: BCMA - Find names of non BCM cores
Signed-off-by: Nathan Hintz <nlhintz@hotmail.com> SVN-Revision: 30875
This commit is contained in:
		
							parent
							
								
									d6d40b2d60
								
							
						
					
					
						commit
						7dcdf69388
					
				@ -0,0 +1,114 @@
 | 
			
		||||
--- a/drivers/bcma/scan.c
 | 
			
		||||
+++ b/drivers/bcma/scan.c
 | 
			
		||||
@@ -19,7 +19,14 @@ struct bcma_device_id_name {
 | 
			
		||||
 	u16 id;
 | 
			
		||||
 	const char *name;
 | 
			
		||||
 };
 | 
			
		||||
-struct bcma_device_id_name bcma_device_names[] = {
 | 
			
		||||
+
 | 
			
		||||
+static const struct bcma_device_id_name bcma_arm_device_names[] = {
 | 
			
		||||
+	{ BCMA_CORE_ARM_1176, "ARM 1176" },
 | 
			
		||||
+	{ BCMA_CORE_ARM_7TDMI, "ARM 7TDMI" },
 | 
			
		||||
+	{ BCMA_CORE_ARM_CM3, "ARM CM3" },
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+static const struct bcma_device_id_name bcma_bcm_device_names[] = {
 | 
			
		||||
 	{ BCMA_CORE_OOB_ROUTER, "OOB Router" },
 | 
			
		||||
 	{ BCMA_CORE_INVALID, "Invalid" },
 | 
			
		||||
 	{ BCMA_CORE_CHIPCOMMON, "ChipCommon" },
 | 
			
		||||
@@ -27,7 +34,6 @@ struct bcma_device_id_name bcma_device_n
 | 
			
		||||
 	{ BCMA_CORE_SRAM, "SRAM" },
 | 
			
		||||
 	{ BCMA_CORE_SDRAM, "SDRAM" },
 | 
			
		||||
 	{ BCMA_CORE_PCI, "PCI" },
 | 
			
		||||
-	{ BCMA_CORE_MIPS, "MIPS" },
 | 
			
		||||
 	{ BCMA_CORE_ETHERNET, "Fast Ethernet" },
 | 
			
		||||
 	{ BCMA_CORE_V90, "V90" },
 | 
			
		||||
 	{ BCMA_CORE_USB11_HOSTDEV, "USB 1.1 Hostdev" },
 | 
			
		||||
@@ -44,7 +50,6 @@ struct bcma_device_id_name bcma_device_n
 | 
			
		||||
 	{ BCMA_CORE_PHY_A, "PHY A" },
 | 
			
		||||
 	{ BCMA_CORE_PHY_B, "PHY B" },
 | 
			
		||||
 	{ BCMA_CORE_PHY_G, "PHY G" },
 | 
			
		||||
-	{ BCMA_CORE_MIPS_3302, "MIPS 3302" },
 | 
			
		||||
 	{ BCMA_CORE_USB11_HOST, "USB 1.1 Host" },
 | 
			
		||||
 	{ BCMA_CORE_USB11_DEV, "USB 1.1 Device" },
 | 
			
		||||
 	{ BCMA_CORE_USB20_HOST, "USB 2.0 Host" },
 | 
			
		||||
@@ -58,15 +63,11 @@ struct bcma_device_id_name bcma_device_n
 | 
			
		||||
 	{ BCMA_CORE_PHY_N, "PHY N" },
 | 
			
		||||
 	{ BCMA_CORE_SRAM_CTL, "SRAM Controller" },
 | 
			
		||||
 	{ BCMA_CORE_MINI_MACPHY, "Mini MACPHY" },
 | 
			
		||||
-	{ BCMA_CORE_ARM_1176, "ARM 1176" },
 | 
			
		||||
-	{ BCMA_CORE_ARM_7TDMI, "ARM 7TDMI" },
 | 
			
		||||
 	{ BCMA_CORE_PHY_LP, "PHY LP" },
 | 
			
		||||
 	{ BCMA_CORE_PMU, "PMU" },
 | 
			
		||||
 	{ BCMA_CORE_PHY_SSN, "PHY SSN" },
 | 
			
		||||
 	{ BCMA_CORE_SDIO_DEV, "SDIO Device" },
 | 
			
		||||
-	{ BCMA_CORE_ARM_CM3, "ARM CM3" },
 | 
			
		||||
 	{ BCMA_CORE_PHY_HT, "PHY HT" },
 | 
			
		||||
-	{ BCMA_CORE_MIPS_74K, "MIPS 74K" },
 | 
			
		||||
 	{ BCMA_CORE_MAC_GBIT, "GBit MAC" },
 | 
			
		||||
 	{ BCMA_CORE_DDR12_MEM_CTL, "DDR1/DDR2 Memory Controller" },
 | 
			
		||||
 	{ BCMA_CORE_PCIE_RC, "PCIe Root Complex" },
 | 
			
		||||
@@ -79,16 +80,57 @@ struct bcma_device_id_name bcma_device_n
 | 
			
		||||
 	{ BCMA_CORE_SHIM, "SHIM" },
 | 
			
		||||
 	{ BCMA_CORE_DEFAULT, "Default" },
 | 
			
		||||
 };
 | 
			
		||||
-const char *bcma_device_name(struct bcma_device_id *id)
 | 
			
		||||
+
 | 
			
		||||
+static const struct bcma_device_id_name bcma_mips_device_names[] = {
 | 
			
		||||
+	{ BCMA_CORE_MIPS, "MIPS" },
 | 
			
		||||
+	{ BCMA_CORE_MIPS_3302, "MIPS 3302" },
 | 
			
		||||
+	{ BCMA_CORE_MIPS_74K, "MIPS 74K" },
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+static const char *bcma_scan_device_names(const struct bcma_device_id *id,
 | 
			
		||||
+				   const struct bcma_device_id_name *device_names,
 | 
			
		||||
+				   int array_size)
 | 
			
		||||
 {
 | 
			
		||||
 	int i;
 | 
			
		||||
 
 | 
			
		||||
-	if (id->manuf == BCMA_MANUF_BCM) {
 | 
			
		||||
-		for (i = 0; i < ARRAY_SIZE(bcma_device_names); i++) {
 | 
			
		||||
-			if (bcma_device_names[i].id == id->id)
 | 
			
		||||
-				return bcma_device_names[i].name;
 | 
			
		||||
-		}
 | 
			
		||||
+	for (i = 0; i < array_size; i++) {
 | 
			
		||||
+		if (device_names[i].id == id->id)
 | 
			
		||||
+			return device_names[i].name;
 | 
			
		||||
 	}
 | 
			
		||||
+	return NULL;
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
+static const char *bcma_device_name(const struct bcma_device_id *id)
 | 
			
		||||
+{
 | 
			
		||||
+	const char *name;
 | 
			
		||||
+	const struct bcma_device_id_name *names;
 | 
			
		||||
+	int size;
 | 
			
		||||
+
 | 
			
		||||
+	/* search manufacturer specific names */
 | 
			
		||||
+	switch (id->manuf) {
 | 
			
		||||
+	case BCMA_MANUF_ARM:
 | 
			
		||||
+		names = bcma_arm_device_names;
 | 
			
		||||
+		size = ARRAY_SIZE(bcma_arm_device_names);
 | 
			
		||||
+		break;
 | 
			
		||||
+	case BCMA_MANUF_BCM:
 | 
			
		||||
+		names = bcma_bcm_device_names;
 | 
			
		||||
+		size = ARRAY_SIZE(bcma_bcm_device_names);
 | 
			
		||||
+		break;
 | 
			
		||||
+	case BCMA_MANUF_MIPS:
 | 
			
		||||
+		names = bcma_mips_device_names;
 | 
			
		||||
+		size = ARRAY_SIZE(bcma_mips_device_names);
 | 
			
		||||
+		break;
 | 
			
		||||
+	default:
 | 
			
		||||
+		names = NULL;
 | 
			
		||||
+		break;
 | 
			
		||||
+	}
 | 
			
		||||
+
 | 
			
		||||
+	if (names) {
 | 
			
		||||
+		name = bcma_scan_device_names(id, names, size);
 | 
			
		||||
+		if (name)
 | 
			
		||||
+			return name;
 | 
			
		||||
+	}
 | 
			
		||||
+
 | 
			
		||||
 	return "UNKNOWN";
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user