Lines Matching refs:context

64 static void hotplug_event(u32 type, struct acpiphp_context *context);
75 struct acpiphp_context *context; in acpiphp_init_context() local
77 context = kzalloc(sizeof(*context), GFP_KERNEL); in acpiphp_init_context()
78 if (!context) in acpiphp_init_context()
81 context->refcount = 1; in acpiphp_init_context()
82 context->hp.notify = acpiphp_hotplug_notify; in acpiphp_init_context()
83 context->hp.fixup = acpiphp_post_dock_fixup; in acpiphp_init_context()
84 acpi_set_hp_context(adev, &context->hp); in acpiphp_init_context()
85 return context; in acpiphp_init_context()
96 struct acpiphp_context *context; in acpiphp_get_context() local
101 context = to_acpiphp_context(adev->hp); in acpiphp_get_context()
102 context->refcount++; in acpiphp_get_context()
103 return context; in acpiphp_get_context()
114 static void acpiphp_put_context(struct acpiphp_context *context) in acpiphp_put_context() argument
116 if (--context->refcount) in acpiphp_put_context()
119 WARN_ON(context->bridge); in acpiphp_put_context()
120 context->hp.self->hp = NULL; in acpiphp_put_context()
121 kfree(context); in acpiphp_put_context()
136 struct acpiphp_context *context; in acpiphp_grab_context() local
139 context = acpiphp_get_context(adev); in acpiphp_grab_context()
140 if (!context || context->func.parent->is_going_away) { in acpiphp_grab_context()
144 get_bridge(context->func.parent); in acpiphp_grab_context()
145 acpiphp_put_context(context); in acpiphp_grab_context()
147 return context; in acpiphp_grab_context()
150 static void acpiphp_let_context_go(struct acpiphp_context *context) in acpiphp_let_context_go() argument
152 put_bridge(context->func.parent); in acpiphp_let_context_go()
157 struct acpiphp_context *context; in free_bridge() local
173 context = bridge->context; in free_bridge()
175 if (context) { in free_bridge()
177 put_bridge(context->func.parent); in free_bridge()
178 context->bridge = NULL; in free_bridge()
179 acpiphp_put_context(context); in free_bridge()
197 struct acpiphp_context *context = acpiphp_grab_context(adev); in acpiphp_post_dock_fixup() local
201 if (!context) in acpiphp_post_dock_fixup()
204 bus = context->func.slot->bus; in acpiphp_post_dock_fixup()
222 acpiphp_let_context_go(context); in acpiphp_post_dock_fixup()
265 struct acpiphp_context *context; in acpiphp_add_context() local
290 context = acpiphp_init_context(adev); in acpiphp_add_context()
291 if (!context) { in acpiphp_add_context()
296 newfunc = &context->func; in acpiphp_add_context()
319 acpiphp_put_context(context); in acpiphp_add_context()
750 static void hotplug_event(u32 type, struct acpiphp_context *context) in hotplug_event() argument
752 acpi_handle handle = context->hp.self->handle; in hotplug_event()
753 struct acpiphp_func *func = &context->func; in hotplug_event()
758 bridge = context->bridge; in hotplug_event()
806 struct acpiphp_context *context; in acpiphp_hotplug_notify() local
808 context = acpiphp_grab_context(adev); in acpiphp_hotplug_notify()
809 if (!context) in acpiphp_hotplug_notify()
812 hotplug_event(type, context); in acpiphp_hotplug_notify()
813 acpiphp_let_context_go(context); in acpiphp_hotplug_notify()
868 struct acpiphp_context *context; in acpiphp_enumerate_slots() local
876 context = acpiphp_get_context(adev); in acpiphp_enumerate_slots()
877 if (!context) in acpiphp_enumerate_slots()
880 bridge->context = context; in acpiphp_enumerate_slots()
881 context->bridge = bridge; in acpiphp_enumerate_slots()
883 get_bridge(context->func.parent); in acpiphp_enumerate_slots()