H A D | scan.c | 154 static u32 bcma_erom_get_ent(struct bcma_bus *bus, u32 __iomem **eromptr) bcma_erom_get_ent() argument 156 u32 ent = readl(*eromptr); bcma_erom_get_ent() 157 (*eromptr)++; bcma_erom_get_ent() 161 static void bcma_erom_push_ent(u32 __iomem **eromptr) bcma_erom_push_ent() argument 163 (*eromptr)--; bcma_erom_push_ent() 166 static s32 bcma_erom_get_ci(struct bcma_bus *bus, u32 __iomem **eromptr) bcma_erom_get_ci() argument 168 u32 ent = bcma_erom_get_ent(bus, eromptr); bcma_erom_get_ci() 176 static bool bcma_erom_is_end(struct bcma_bus *bus, u32 __iomem **eromptr) bcma_erom_is_end() argument 178 u32 ent = bcma_erom_get_ent(bus, eromptr); bcma_erom_is_end() 179 bcma_erom_push_ent(eromptr); bcma_erom_is_end() 183 static bool bcma_erom_is_bridge(struct bcma_bus *bus, u32 __iomem **eromptr) bcma_erom_is_bridge() argument 185 u32 ent = bcma_erom_get_ent(bus, eromptr); bcma_erom_is_bridge() 186 bcma_erom_push_ent(eromptr); bcma_erom_is_bridge() 192 static void bcma_erom_skip_component(struct bcma_bus *bus, u32 __iomem **eromptr) bcma_erom_skip_component() argument 196 ent = bcma_erom_get_ent(bus, eromptr); bcma_erom_skip_component() 203 bcma_erom_push_ent(eromptr); bcma_erom_skip_component() 206 static s32 bcma_erom_get_mst_port(struct bcma_bus *bus, u32 __iomem **eromptr) bcma_erom_get_mst_port() argument 208 u32 ent = bcma_erom_get_ent(bus, eromptr); bcma_erom_get_mst_port() 216 static u32 bcma_erom_get_addr_desc(struct bcma_bus *bus, u32 __iomem **eromptr, bcma_erom_get_addr_desc() argument 222 u32 ent = bcma_erom_get_ent(bus, eromptr); bcma_erom_get_addr_desc() 227 bcma_erom_push_ent(eromptr); bcma_erom_get_addr_desc() 233 addrh = bcma_erom_get_ent(bus, eromptr); bcma_erom_get_addr_desc() 238 size = bcma_erom_get_ent(bus, eromptr); bcma_erom_get_addr_desc() 241 sizeh = bcma_erom_get_ent(bus, eromptr); bcma_erom_get_addr_desc() 274 static int bcma_get_next_core(struct bcma_bus *bus, u32 __iomem **eromptr, bcma_get_next_core() argument 284 cia = bcma_erom_get_ci(bus, eromptr); bcma_get_next_core() 286 bcma_erom_push_ent(eromptr); bcma_get_next_core() 287 if (bcma_erom_is_end(bus, eromptr)) bcma_get_next_core() 291 cib = bcma_erom_get_ci(bus, eromptr); bcma_get_next_core() 308 bcma_erom_skip_component(bus, eromptr); bcma_get_next_core() 321 bcma_erom_skip_component(bus, eromptr); bcma_get_next_core() 326 if (bcma_erom_is_bridge(bus, eromptr)) { bcma_get_next_core() 327 bcma_erom_skip_component(bus, eromptr); bcma_get_next_core() 332 bcma_erom_skip_component(bus, eromptr); bcma_get_next_core() 342 bcma_erom_skip_component(bus, eromptr); bcma_get_next_core() 348 s32 mst_port_d = bcma_erom_get_mst_port(bus, eromptr); bcma_get_next_core() 356 tmp = bcma_erom_get_addr_desc(bus, eromptr, SCAN_ADDR_TYPE_SLAVE, 0); bcma_get_next_core() 359 tmp = bcma_erom_get_addr_desc(bus, eromptr, bcma_get_next_core() 374 tmp = bcma_erom_get_addr_desc(bus, eromptr, bcma_get_next_core() 391 tmp = bcma_erom_get_addr_desc(bus, eromptr, bcma_get_next_core() 409 tmp = bcma_erom_get_addr_desc(bus, eromptr, bcma_get_next_core() 460 u32 __iomem *eromptr, *eromend; bcma_bus_scan() local 470 eromptr = ioremap_nocache(erombase, BCMA_CORE_SIZE); bcma_bus_scan() 471 if (!eromptr) bcma_bus_scan() 474 eromptr = bus->mmio; bcma_bus_scan() 477 eromend = eromptr + BCMA_CORE_SIZE / sizeof(u32); bcma_bus_scan() 481 while (eromptr < eromend) { bcma_bus_scan() 491 err = bcma_get_next_core(bus, &eromptr, NULL, core_num, core); bcma_bus_scan() 522 iounmap(eromptr); bcma_bus_scan()
|