Lines Matching refs:bridge

119 	WARN_ON(context->bridge);  in acpiphp_put_context()
124 static inline void get_bridge(struct acpiphp_bridge *bridge) in get_bridge() argument
126 kref_get(&bridge->ref); in get_bridge()
129 static inline void put_bridge(struct acpiphp_bridge *bridge) in put_bridge() argument
131 kref_put(&bridge->ref, free_bridge); in put_bridge()
158 struct acpiphp_bridge *bridge; in free_bridge() local
164 bridge = container_of(kref, struct acpiphp_bridge, ref); in free_bridge()
166 list_for_each_entry_safe(slot, next, &bridge->slots, node) { in free_bridge()
173 context = bridge->context; in free_bridge()
178 context->bridge = NULL; in free_bridge()
182 put_device(&bridge->pci_bus->dev); in free_bridge()
183 pci_dev_put(bridge->pci_dev); in free_bridge()
184 kfree(bridge); in free_bridge()
264 struct acpiphp_bridge *bridge = data; in acpiphp_add_context() local
272 struct pci_bus *pbus = bridge->pci_bus; in acpiphp_add_context()
273 struct pci_dev *pdev = bridge->pci_dev; in acpiphp_add_context()
298 newfunc->parent = bridge; in acpiphp_add_context()
312 list_for_each_entry(slot, &bridge->slots, node) in acpiphp_add_context()
324 slot->bus = bridge->pci_bus; in acpiphp_add_context()
328 list_add_tail(&slot->node, &bridge->slots); in acpiphp_add_context()
341 bridge->nr_slots++; in acpiphp_add_context()
344 sun = bridge->nr_slots; in acpiphp_add_context()
352 bridge->nr_slots--; in acpiphp_add_context()
372 static void cleanup_bridge(struct acpiphp_bridge *bridge) in cleanup_bridge() argument
377 list_for_each_entry(slot, &bridge->slots, node) { in cleanup_bridge()
392 list_del(&bridge->list); in cleanup_bridge()
396 bridge->is_going_away = true; in cleanup_bridge()
671 static void acpiphp_check_bridge(struct acpiphp_bridge *bridge) in acpiphp_check_bridge() argument
676 if (bridge->is_going_away) in acpiphp_check_bridge()
679 list_for_each_entry(slot, &bridge->slots, node) { in acpiphp_check_bridge()
730 struct acpiphp_bridge *bridge = NULL; in acpiphp_check_host_bridge() local
734 bridge = to_acpiphp_root_context(adev->hp)->root_bridge; in acpiphp_check_host_bridge()
735 if (bridge) in acpiphp_check_host_bridge()
736 get_bridge(bridge); in acpiphp_check_host_bridge()
739 if (bridge) { in acpiphp_check_host_bridge()
742 acpiphp_check_bridge(bridge); in acpiphp_check_host_bridge()
745 put_bridge(bridge); in acpiphp_check_host_bridge()
756 struct acpiphp_bridge *bridge; in hotplug_event() local
759 bridge = context->bridge; in hotplug_event()
760 if (bridge) in hotplug_event()
761 get_bridge(bridge); in hotplug_event()
771 if (bridge) in hotplug_event()
772 acpiphp_check_bridge(bridge); in hotplug_event()
781 if (bridge) { in hotplug_event()
782 acpiphp_check_bridge(bridge); in hotplug_event()
801 if (bridge) in hotplug_event()
802 put_bridge(bridge); in hotplug_event()
827 struct acpiphp_bridge *bridge; in acpiphp_enumerate_slots() local
835 adev = ACPI_COMPANION(bus->bridge); in acpiphp_enumerate_slots()
840 bridge = kzalloc(sizeof(struct acpiphp_bridge), GFP_KERNEL); in acpiphp_enumerate_slots()
841 if (!bridge) { in acpiphp_enumerate_slots()
846 INIT_LIST_HEAD(&bridge->slots); in acpiphp_enumerate_slots()
847 kref_init(&bridge->ref); in acpiphp_enumerate_slots()
848 bridge->pci_dev = pci_dev_get(bus->self); in acpiphp_enumerate_slots()
849 bridge->pci_bus = bus; in acpiphp_enumerate_slots()
859 if (pci_is_root_bus(bridge->pci_bus)) { in acpiphp_enumerate_slots()
866 root_context->root_bridge = bridge; in acpiphp_enumerate_slots()
881 bridge->context = context; in acpiphp_enumerate_slots()
882 context->bridge = bridge; in acpiphp_enumerate_slots()
890 list_add(&bridge->list, &bridge_list); in acpiphp_enumerate_slots()
895 acpiphp_add_context, NULL, bridge, NULL); in acpiphp_enumerate_slots()
898 cleanup_bridge(bridge); in acpiphp_enumerate_slots()
899 put_bridge(bridge); in acpiphp_enumerate_slots()
906 pci_dev_put(bridge->pci_dev); in acpiphp_enumerate_slots()
907 kfree(bridge); in acpiphp_enumerate_slots()
910 static void acpiphp_drop_bridge(struct acpiphp_bridge *bridge) in acpiphp_drop_bridge() argument
912 if (pci_is_root_bus(bridge->pci_bus)) { in acpiphp_drop_bridge()
917 adev = ACPI_COMPANION(bridge->pci_bus->bridge); in acpiphp_drop_bridge()
923 cleanup_bridge(bridge); in acpiphp_drop_bridge()
924 put_bridge(bridge); in acpiphp_drop_bridge()
933 struct acpiphp_bridge *bridge; in acpiphp_remove_slots() local
939 list_for_each_entry(bridge, &bridge_list, list) in acpiphp_remove_slots()
940 if (bridge->pci_bus == bus) { in acpiphp_remove_slots()
942 acpiphp_drop_bridge(bridge); in acpiphp_remove_slots()