source: trunk/target/linux/brcm47xx/patches-3.2/230-bcma-find-name-for-non-brcm.patch @ 30875

Last change on this file since 30875 was 30875, checked in by hauke, 4 years ago

brcm47xx: BCMA - Find names of non BCM cores

Signed-off-by: Nathan Hintz <nlhintz@…>

File size: 3.3 KB
  • drivers/bcma/scan.c

    a b struct bcma_device_id_name { 
    1919        u16 id; 
    2020        const char *name; 
    2121}; 
    22 struct bcma_device_id_name bcma_device_names[] = { 
     22 
     23static const struct bcma_device_id_name bcma_arm_device_names[] = { 
     24        { BCMA_CORE_ARM_1176, "ARM 1176" }, 
     25        { BCMA_CORE_ARM_7TDMI, "ARM 7TDMI" }, 
     26        { BCMA_CORE_ARM_CM3, "ARM CM3" }, 
     27}; 
     28 
     29static const struct bcma_device_id_name bcma_bcm_device_names[] = { 
    2330        { BCMA_CORE_OOB_ROUTER, "OOB Router" }, 
    2431        { BCMA_CORE_INVALID, "Invalid" }, 
    2532        { BCMA_CORE_CHIPCOMMON, "ChipCommon" }, 
    struct bcma_device_id_name bcma_device_n 
    2734        { BCMA_CORE_SRAM, "SRAM" }, 
    2835        { BCMA_CORE_SDRAM, "SDRAM" }, 
    2936        { BCMA_CORE_PCI, "PCI" }, 
    30         { BCMA_CORE_MIPS, "MIPS" }, 
    3137        { BCMA_CORE_ETHERNET, "Fast Ethernet" }, 
    3238        { BCMA_CORE_V90, "V90" }, 
    3339        { BCMA_CORE_USB11_HOSTDEV, "USB 1.1 Hostdev" }, 
    struct bcma_device_id_name bcma_device_n 
    4450        { BCMA_CORE_PHY_A, "PHY A" }, 
    4551        { BCMA_CORE_PHY_B, "PHY B" }, 
    4652        { BCMA_CORE_PHY_G, "PHY G" }, 
    47         { BCMA_CORE_MIPS_3302, "MIPS 3302" }, 
    4853        { BCMA_CORE_USB11_HOST, "USB 1.1 Host" }, 
    4954        { BCMA_CORE_USB11_DEV, "USB 1.1 Device" }, 
    5055        { BCMA_CORE_USB20_HOST, "USB 2.0 Host" }, 
    struct bcma_device_id_name bcma_device_n 
    5863        { BCMA_CORE_PHY_N, "PHY N" }, 
    5964        { BCMA_CORE_SRAM_CTL, "SRAM Controller" }, 
    6065        { BCMA_CORE_MINI_MACPHY, "Mini MACPHY" }, 
    61         { BCMA_CORE_ARM_1176, "ARM 1176" }, 
    62         { BCMA_CORE_ARM_7TDMI, "ARM 7TDMI" }, 
    6366        { BCMA_CORE_PHY_LP, "PHY LP" }, 
    6467        { BCMA_CORE_PMU, "PMU" }, 
    6568        { BCMA_CORE_PHY_SSN, "PHY SSN" }, 
    6669        { BCMA_CORE_SDIO_DEV, "SDIO Device" }, 
    67         { BCMA_CORE_ARM_CM3, "ARM CM3" }, 
    6870        { BCMA_CORE_PHY_HT, "PHY HT" }, 
    69         { BCMA_CORE_MIPS_74K, "MIPS 74K" }, 
    7071        { BCMA_CORE_MAC_GBIT, "GBit MAC" }, 
    7172        { BCMA_CORE_DDR12_MEM_CTL, "DDR1/DDR2 Memory Controller" }, 
    7273        { BCMA_CORE_PCIE_RC, "PCIe Root Complex" }, 
    struct bcma_device_id_name bcma_device_n 
    7980        { BCMA_CORE_SHIM, "SHIM" }, 
    8081        { BCMA_CORE_DEFAULT, "Default" }, 
    8182}; 
    82 const char *bcma_device_name(struct bcma_device_id *id) 
     83 
     84static const struct bcma_device_id_name bcma_mips_device_names[] = { 
     85        { BCMA_CORE_MIPS, "MIPS" }, 
     86        { BCMA_CORE_MIPS_3302, "MIPS 3302" }, 
     87        { BCMA_CORE_MIPS_74K, "MIPS 74K" }, 
     88}; 
     89 
     90static const char *bcma_scan_device_names(const struct bcma_device_id *id, 
     91                                   const struct bcma_device_id_name *device_names, 
     92                                   int array_size) 
    8393{ 
    8494        int i; 
    8595 
    86         if (id->manuf == BCMA_MANUF_BCM) { 
    87                 for (i = 0; i < ARRAY_SIZE(bcma_device_names); i++) { 
    88                         if (bcma_device_names[i].id == id->id) 
    89                                 return bcma_device_names[i].name; 
    90                 } 
     96        for (i = 0; i < array_size; i++) { 
     97                if (device_names[i].id == id->id) 
     98                        return device_names[i].name; 
    9199        } 
     100        return NULL; 
     101} 
     102 
     103static const char *bcma_device_name(const struct bcma_device_id *id) 
     104{ 
     105        const char *name; 
     106        const struct bcma_device_id_name *names; 
     107        int size; 
     108 
     109        /* search manufacturer specific names */ 
     110        switch (id->manuf) { 
     111        case BCMA_MANUF_ARM: 
     112                names = bcma_arm_device_names; 
     113                size = ARRAY_SIZE(bcma_arm_device_names); 
     114                break; 
     115        case BCMA_MANUF_BCM: 
     116                names = bcma_bcm_device_names; 
     117                size = ARRAY_SIZE(bcma_bcm_device_names); 
     118                break; 
     119        case BCMA_MANUF_MIPS: 
     120                names = bcma_mips_device_names; 
     121                size = ARRAY_SIZE(bcma_mips_device_names); 
     122                break; 
     123        default: 
     124                names = NULL; 
     125                break; 
     126        } 
     127 
     128        if (names) { 
     129                name = bcma_scan_device_names(id, names, size); 
     130                if (name) 
     131                        return name; 
     132        } 
     133 
    92134        return "UNKNOWN"; 
    93135} 
    94136 
Note: See TracBrowser for help on using the repository browser.