Lines Matching refs:context

50 static void hotplug_event(u32 type, struct acpiphp_context *context);
61 struct acpiphp_context *context; in acpiphp_init_context() local
63 context = kzalloc(sizeof(*context), GFP_KERNEL); in acpiphp_init_context()
64 if (!context) in acpiphp_init_context()
67 context->refcount = 1; in acpiphp_init_context()
68 context->hp.notify = acpiphp_hotplug_notify; in acpiphp_init_context()
69 context->hp.fixup = acpiphp_post_dock_fixup; in acpiphp_init_context()
70 acpi_set_hp_context(adev, &context->hp); in acpiphp_init_context()
71 return context; in acpiphp_init_context()
82 struct acpiphp_context *context; in acpiphp_get_context() local
87 context = to_acpiphp_context(adev->hp); in acpiphp_get_context()
88 context->refcount++; in acpiphp_get_context()
89 return context; in acpiphp_get_context()
100 static void acpiphp_put_context(struct acpiphp_context *context) in acpiphp_put_context() argument
102 if (--context->refcount) in acpiphp_put_context()
105 WARN_ON(context->bridge); in acpiphp_put_context()
106 context->hp.self->hp = NULL; in acpiphp_put_context()
107 kfree(context); in acpiphp_put_context()
122 struct acpiphp_context *context; in acpiphp_grab_context() local
125 context = acpiphp_get_context(adev); in acpiphp_grab_context()
126 if (!context || context->func.parent->is_going_away) { in acpiphp_grab_context()
130 get_bridge(context->func.parent); in acpiphp_grab_context()
131 acpiphp_put_context(context); in acpiphp_grab_context()
133 return context; in acpiphp_grab_context()
136 static void acpiphp_let_context_go(struct acpiphp_context *context) in acpiphp_let_context_go() argument
138 put_bridge(context->func.parent); in acpiphp_let_context_go()
143 struct acpiphp_context *context; in free_bridge() local
159 context = bridge->context; in free_bridge()
161 if (context) { in free_bridge()
163 put_bridge(context->func.parent); in free_bridge()
164 context->bridge = NULL; in free_bridge()
165 acpiphp_put_context(context); in free_bridge()
183 struct acpiphp_context *context = acpiphp_grab_context(adev); in acpiphp_post_dock_fixup() local
187 if (!context) in acpiphp_post_dock_fixup()
190 bus = context->func.slot->bus; in acpiphp_post_dock_fixup()
208 acpiphp_let_context_go(context); in acpiphp_post_dock_fixup()
222 struct acpiphp_context *context; in acpiphp_add_context() local
247 context = acpiphp_init_context(adev); in acpiphp_add_context()
248 if (!context) { in acpiphp_add_context()
253 newfunc = &context->func; in acpiphp_add_context()
276 acpiphp_put_context(context); in acpiphp_add_context()
766 static void hotplug_event(u32 type, struct acpiphp_context *context) in hotplug_event() argument
768 acpi_handle handle = context->hp.self->handle; in hotplug_event()
769 struct acpiphp_func *func = &context->func; in hotplug_event()
774 bridge = context->bridge; in hotplug_event()
822 struct acpiphp_context *context; in acpiphp_hotplug_notify() local
824 context = acpiphp_grab_context(adev); in acpiphp_hotplug_notify()
825 if (!context) in acpiphp_hotplug_notify()
828 hotplug_event(type, context); in acpiphp_hotplug_notify()
829 acpiphp_let_context_go(context); in acpiphp_hotplug_notify()
882 struct acpiphp_context *context; in acpiphp_enumerate_slots() local
890 context = acpiphp_get_context(adev); in acpiphp_enumerate_slots()
891 if (!context) in acpiphp_enumerate_slots()
894 bridge->context = context; in acpiphp_enumerate_slots()
895 context->bridge = bridge; in acpiphp_enumerate_slots()
897 get_bridge(context->func.parent); in acpiphp_enumerate_slots()