static void apollo_setup_phb(struct phb *phb, unsigned int index) { struct dt_node *ioc_node; /* Grab the device-tree node of the IOC */ ioc_node = phb->dt_node->parent; if (!ioc_node) return; /* * Process the pcie slot entries from the lx vpd lid * * FIXME: We currently assume chip 1 always, this will have to be * fixed once we understand the right way to get the BRxy/BRxy "x" * "x" value. (this actually seems to work...) */ lxvpd_process_slot_entries(phb, ioc_node, 1, index); }
void apollo_pci_setup_phb(struct phb *phb, unsigned int index) { struct dt_node *ioc_node; /* Grab the device-tree node of the IOC */ ioc_node = phb->dt_node->parent; if (!ioc_node) { APOLLO_PCI_DBG("No IOC devnode for PHB%04x\n", phb->opal_id); return; } /* * Process the pcie slot entries from the lx vpd lid * * FIXME: We currently assume chip 1 always, this will have to be * fixed once we understand the right way to get the BRxy/BRxy "x" * "x" value. It's not working well. I found 2 different root ports * on Firebird-L has been assigned to same slot label. */ lxvpd_process_slot_entries(phb, ioc_node, 1, index, sizeof(struct lxvpd_pci_slot)); }