static const struct slot_table_entry *match_slot_phb_entry(struct phb *phb) { uint32_t chip_id = dt_get_chip_id(phb->dt_node); uint32_t phb_idx = dt_prop_get_u32_def(phb->dt_node, "ibm,phb-index", 0); const struct slot_table_entry *ent; if (!slot_top_table) return NULL; for (ent = slot_top_table; ent->etype != st_end; ent++) { if (ent->etype != st_phb) { prerror("SLOT: Bad DEV entry type in table !\n"); continue; } if (ent->location == ST_LOC_PHB(chip_id, phb_idx)) return ent; } return NULL; }
{ .etype = st_end }, }; static const struct slot_table_entry firestone_phb8_2_slot[] = { { .etype = st_pluggable_slot, .location = ST_LOC_DEVFN(0,0), .name = "Slot1", }, { .etype = st_end }, }; static const struct slot_table_entry firestone_phb_table[] = { { .etype = st_phb, .location = ST_LOC_PHB(0,0), .children = firestone_phb0_0_slot, }, { .etype = st_phb, .location = ST_LOC_PHB(0,1), .children = firestone_phb0_1_slot, }, { .etype = st_phb, .location = ST_LOC_PHB(8,0), .children = firestone_phb8_0_slot, }, { .etype = st_phb, .location = ST_LOC_PHB(8,1),