Lines Matching refs:b
20 find_bus(struct bridge *b, unsigned int domain, unsigned int n) in find_bus() argument
24 for (bus=b->first_bus; bus; bus=bus->sibling) in find_bus()
44 new_bus(struct bridge *b, unsigned int domain, unsigned int n) in new_bus() argument
52 bus->parent_bridge = b; in new_bus()
53 if (b->last_bus) in new_bus()
54 b->last_bus->sibling = bus; in new_bus()
55 b->last_bus = bus; in new_bus()
56 if (!b->first_bus) in new_bus()
57 b->first_bus = bus; in new_bus()
62 insert_dev(struct device *d, struct bridge *b) in insert_dev() argument
78 if (!bus && b == &host_bridge) in insert_dev()
80 for (b=b->child; b; b=b->prev) in insert_dev()
81 if (b->domain == (unsigned)p->domain) in insert_dev()
83 if (!b) in insert_dev()
84 b = &host_bridge; in insert_dev()
87 if (!bus && ! (bus = find_bus(b, p->domain, p->bus))) in insert_dev()
90 for (c=b->child; c; c=c->prev) in insert_dev()
96 bus = new_bus(b, p->domain, p->bus); in insert_dev()
112 struct bridge **last_br, *b; in grow_tree() local
120 for (b=host_bridge.chain; b; b=b->chain) in grow_tree()
121 if (b->domain == (unsigned)d->dev->domain) in grow_tree()
123 if (b) in grow_tree()
125 b = xmalloc(sizeof(struct bridge)); in grow_tree()
126 b->domain = d->dev->domain; in grow_tree()
127 b->primary = ~0; in grow_tree()
128 b->secondary = 0; in grow_tree()
129 b->subordinate = ~0; in grow_tree()
130 *last_br = b; in grow_tree()
131 last_br = &b->chain; in grow_tree()
132 b->prev = b->next = b->child = NULL; in grow_tree()
133 b->first_bus = NULL; in grow_tree()
134 b->last_bus = NULL; in grow_tree()
135 b->br_dev = NULL; in grow_tree()
136 b->chain = NULL; in grow_tree()
137 pacc->debug("Tree: domain %04x\n", b->domain); in grow_tree()
150 b = xmalloc(sizeof(struct bridge)); in grow_tree()
151 b->domain = dd->domain; in grow_tree()
152 b->primary = dd->bus; in grow_tree()
155 b->secondary = get_conf_byte(d, PCI_SECONDARY_BUS); in grow_tree()
156 b->subordinate = get_conf_byte(d, PCI_SUBORDINATE_BUS); in grow_tree()
160 b->secondary = get_conf_byte(d, PCI_CB_CARD_BUS); in grow_tree()
161 b->subordinate = get_conf_byte(d, PCI_CB_SUBORDINATE_BUS); in grow_tree()
163 *last_br = b; in grow_tree()
164 last_br = &b->chain; in grow_tree()
165 b->prev = b->next = b->child = NULL; in grow_tree()
166 b->first_bus = NULL; in grow_tree()
167 b->last_bus = NULL; in grow_tree()
168 b->br_dev = d; in grow_tree()
169 d->bridge = b; in grow_tree()
172 b->primary, b->secondary, b->subordinate); in grow_tree()
185 b = xmalloc(sizeof(struct bridge)); in grow_tree()
186 b->domain = parent->dev->domain; in grow_tree()
187 b->primary = parent->dev->bus; in grow_tree()
188 b->secondary = d->dev->bus; in grow_tree()
190 b->subordinate = b->secondary; in grow_tree()
191 *last_br = b; in grow_tree()
192 last_br = &b->chain; in grow_tree()
193 b->prev = b->next = b->child = NULL; in grow_tree()
194 b->first_bus = NULL; in grow_tree()
195 b->last_bus = NULL; in grow_tree()
196 b->br_dev = parent; in grow_tree()
197 parent->bridge = b; in grow_tree()
198 pacc->debug("Tree: bridge %04x:%02x:%02x.%d\n", b->domain, in grow_tree()
205 for (b=host_bridge.chain; b; b=b->chain) in grow_tree()
207 struct device *br_dev = b->br_dev; in grow_tree()
217 if (c != b && (c == &host_bridge || b->domain == c->domain) && in grow_tree()
218 b->primary >= c->secondary && b->primary <= c->subordinate && in grow_tree()
223 b->prev = best->child; in grow_tree()
224 best->child = b; in grow_tree()
230 for (b=host_bridge.chain; b; b=b->chain) in grow_tree()
231 if (b->br_dev && !find_bus(b, b->domain, b->secondary)) in grow_tree()
232 new_bus(b, b->domain, b->secondary); in grow_tree()
293 struct bridge *b; in show_tree_dev() local
297 for (b=host_bridge.chain; b; b=b->chain) in show_tree_dev()
298 if (b->br_dev == d) in show_tree_dev()
300 if (b->secondary == 0) in show_tree_dev()
302 else if (b->secondary == b->subordinate) in show_tree_dev()
303 p = tree_printf(line, p, "-[%02x]-", b->secondary); in show_tree_dev()
305 p = tree_printf(line, p, "-[%02x-%02x]-", b->secondary, b->subordinate); in show_tree_dev()
306 show_tree_bridge(filter, b, line, p); in show_tree_dev()
330 check_bus_filter(struct pci_filter *filter, struct bus *b);
336 struct bus *b; in check_dev_filter() local
347 for (b = br->first_bus; b; b = b->sibling) in check_dev_filter()
348 if (check_bus_filter(filter, b)) in check_dev_filter()
357 check_bus_filter(struct pci_filter *filter, struct bus *b) in check_bus_filter() argument
364 for (d = b->first_dev; d; d = d->bus_next) in check_bus_filter()
372 show_tree_bus(struct pci_filter *filter, struct bus *b, char *line, char *p) in show_tree_bus() argument
374 if (!b->first_dev) in show_tree_bus()
376 else if (!b->first_dev->bus_next) in show_tree_bus()
378 if (check_dev_filter(filter, b->first_dev)) in show_tree_bus()
381 show_tree_dev(get_filter_for_child(filter, b->first_dev), b->first_dev, line, p); in show_tree_bus()
389 struct device *d = b->first_dev; in show_tree_bus()
399 for (i = 0, d = b->first_dev; d; d = d->bus_next) in show_tree_bus()
414 show_tree_bridge(struct pci_filter *filter, struct bridge *b, char *line, char *p) in show_tree_bridge() argument
417 if (!b->first_bus->sibling) in show_tree_bridge()
419 if (check_bus_filter(filter, b->first_bus)) in show_tree_bridge()
421 if (!b->br_dev) in show_tree_bridge()
422 p = tree_printf(line, p, "[%04x:%02x]-", b->first_bus->domain, b->first_bus->number); in show_tree_bridge()
423 show_tree_bus(filter, b->first_bus, line, p); in show_tree_bridge()
431 struct bus *u = b->first_bus; in show_tree_bridge()
442 for (i = 0, u = b->first_bus; u; u = u->sibling) in show_tree_bridge()
460 struct bridge *b; in show_forest() local
463 for (b=host_bridge.child; b->prev; b=b->prev) in show_forest()
464 b->prev->next = b; in show_forest()
465 for (; b; b=b->next) in show_forest()
466 show_tree_bridge(filter, b, line, line); in show_forest()