On Monday 06 June 2011 23:38:50 Hauke Mehrtens wrote: > Accessing chip common should be possible without scanning the hole bus > as it is at the first position and initializing most things just needs > chip common. For initializing the interrupts scanning is needed as we do > not know where the mips core is located. > > As we can not use kalloc on early boot we could use a function which > uses kalloc under normal conditions and when on early boot the > architecture code which starts the bcma code should also provide a > function which returns a pointer to some memory in its text segment to > use. We need space for 16 cores in the architecture code. > > In addition bcma_bus_register(struct bcma_bus *bus) has to be divided > into two parts. The first part will scan the bus and initialize chip > common and mips core. The second part will initialize pci core and > register the devices in the system. When using this under normal > conditions they will be called directly after each other. Just split out the minimal low-level function from the bcma_bus_scan then, to locate a single device based on some identifier. The bcma_bus_scan() function can then repeatedly allocate one device and pass it to the low-level function when doing the proper scan, while the arch code calls the low-level function directly with static data. Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html