Am 21.11.2010 13:39, schrieb Uwe Hermann:
-#if CONFIG_HT_CHAIN_END_UNITID_BASE >= CONFIG_HT_CHAIN_UNITID_BASE
m->bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
m->bus_isa++;
-// printk(BIOS_DEBUG, "bus_isa=%d\n",bus_isa); -#endif
Is this handled properly by the new code? It doesn't check for this CONFIG_HT_CHAIN_END_UNITID_BASE >= CONFIG_HT_CHAIN_UNITID_BASE condition anymore, right?
That distinction seems merely about which of the 8111/8131 chips have higher bus numbers, and then gives bus_isa the highest bus id + 1.
The generic code just picks the highest available pci bus id in the device tree and adds 1, so things should be fine.
One example where the code above would fail is when you plug in a riser card (which exposes its own bus, incl. id) - this will break all assumptions the various bus id collectors (like the one above) have. We specifically cover that case (riser card) in the kontron/986lcd-m code, which was the main motivation for me to start to clean this up.
Patrick