Lines Matching refs:gpe_block

20 acpi_ev_install_gpe_block(struct acpi_gpe_block_info *gpe_block,
24 acpi_ev_create_gpe_info_blocks(struct acpi_gpe_block_info *gpe_block);
41 acpi_ev_install_gpe_block(struct acpi_gpe_block_info *gpe_block, in acpi_ev_install_gpe_block() argument
71 next_gpe_block->next = gpe_block; in acpi_ev_install_gpe_block()
72 gpe_block->previous = next_gpe_block; in acpi_ev_install_gpe_block()
74 gpe_xrupt_block->gpe_block_list_head = gpe_block; in acpi_ev_install_gpe_block()
77 gpe_block->xrupt_block = gpe_xrupt_block; in acpi_ev_install_gpe_block()
97 acpi_status acpi_ev_delete_gpe_block(struct acpi_gpe_block_info *gpe_block) in acpi_ev_delete_gpe_block() argument
112 acpi_hw_disable_gpe_block(gpe_block->xrupt_block, gpe_block, NULL); in acpi_ev_delete_gpe_block()
114 if (!gpe_block->previous && !gpe_block->next) { in acpi_ev_delete_gpe_block()
118 status = acpi_ev_delete_gpe_xrupt(gpe_block->xrupt_block); in acpi_ev_delete_gpe_block()
126 if (gpe_block->previous) { in acpi_ev_delete_gpe_block()
127 gpe_block->previous->next = gpe_block->next; in acpi_ev_delete_gpe_block()
129 gpe_block->xrupt_block->gpe_block_list_head = in acpi_ev_delete_gpe_block()
130 gpe_block->next; in acpi_ev_delete_gpe_block()
133 if (gpe_block->next) { in acpi_ev_delete_gpe_block()
134 gpe_block->next->previous = gpe_block->previous; in acpi_ev_delete_gpe_block()
140 acpi_current_gpe_count -= gpe_block->gpe_count; in acpi_ev_delete_gpe_block()
144 ACPI_FREE(gpe_block->register_info); in acpi_ev_delete_gpe_block()
145 ACPI_FREE(gpe_block->event_info); in acpi_ev_delete_gpe_block()
146 ACPI_FREE(gpe_block); in acpi_ev_delete_gpe_block()
166 acpi_ev_create_gpe_info_blocks(struct acpi_gpe_block_info *gpe_block) in acpi_ev_create_gpe_info_blocks() argument
180 gpe_register_info = ACPI_ALLOCATE_ZEROED((acpi_size)gpe_block-> in acpi_ev_create_gpe_info_blocks()
194 gpe_event_info = ACPI_ALLOCATE_ZEROED((acpi_size)gpe_block->gpe_count * in acpi_ev_create_gpe_info_blocks()
206 gpe_block->register_info = gpe_register_info; in acpi_ev_create_gpe_info_blocks()
207 gpe_block->event_info = gpe_event_info; in acpi_ev_create_gpe_info_blocks()
218 for (i = 0; i < gpe_block->register_count; i++) { in acpi_ev_create_gpe_info_blocks()
223 (gpe_block->block_base_number + in acpi_ev_create_gpe_info_blocks()
226 this_register->status_address.address = gpe_block->address + i; in acpi_ev_create_gpe_info_blocks()
229 gpe_block->address + i + gpe_block->register_count; in acpi_ev_create_gpe_info_blocks()
231 this_register->status_address.space_id = gpe_block->space_id; in acpi_ev_create_gpe_info_blocks()
232 this_register->enable_address.space_id = gpe_block->space_id; in acpi_ev_create_gpe_info_blocks()
308 struct acpi_gpe_block_info *gpe_block; in acpi_ev_create_gpe_block() local
319 gpe_block = ACPI_ALLOCATE_ZEROED(sizeof(struct acpi_gpe_block_info)); in acpi_ev_create_gpe_block()
320 if (!gpe_block) { in acpi_ev_create_gpe_block()
326 gpe_block->address = address; in acpi_ev_create_gpe_block()
327 gpe_block->space_id = space_id; in acpi_ev_create_gpe_block()
328 gpe_block->node = gpe_device; in acpi_ev_create_gpe_block()
329 gpe_block->gpe_count = (u16)(register_count * ACPI_GPE_REGISTER_WIDTH); in acpi_ev_create_gpe_block()
330 gpe_block->initialized = FALSE; in acpi_ev_create_gpe_block()
331 gpe_block->register_count = register_count; in acpi_ev_create_gpe_block()
332 gpe_block->block_base_number = gpe_block_base_number; in acpi_ev_create_gpe_block()
338 status = acpi_ev_create_gpe_info_blocks(gpe_block); in acpi_ev_create_gpe_block()
340 ACPI_FREE(gpe_block); in acpi_ev_create_gpe_block()
346 status = acpi_ev_install_gpe_block(gpe_block, interrupt_number); in acpi_ev_create_gpe_block()
348 ACPI_FREE(gpe_block->register_info); in acpi_ev_create_gpe_block()
349 ACPI_FREE(gpe_block->event_info); in acpi_ev_create_gpe_block()
350 ACPI_FREE(gpe_block); in acpi_ev_create_gpe_block()
358 walk_info.gpe_block = gpe_block; in acpi_ev_create_gpe_block()
370 (*return_gpe_block) = gpe_block; in acpi_ev_create_gpe_block()
375 (u32)gpe_block->block_base_number, in acpi_ev_create_gpe_block()
376 (u32)(gpe_block->block_base_number + in acpi_ev_create_gpe_block()
377 (gpe_block->gpe_count - 1)), in acpi_ev_create_gpe_block()
378 gpe_device->name.ascii, gpe_block->register_count, in acpi_ev_create_gpe_block()
385 acpi_current_gpe_count += gpe_block->gpe_count; in acpi_ev_create_gpe_block()
405 struct acpi_gpe_block_info *gpe_block, in acpi_ev_initialize_gpe_block() argument
423 if (!gpe_block || gpe_block->initialized) { in acpi_ev_initialize_gpe_block()
434 for (i = 0; i < gpe_block->register_count; i++) { in acpi_ev_initialize_gpe_block()
440 gpe_event_info = &gpe_block->event_info[gpe_index]; in acpi_ev_initialize_gpe_block()
442 gpe_block->block_base_number + in acpi_ev_initialize_gpe_block()
477 gpe_enabled_count, (u32)gpe_block->block_base_number, in acpi_ev_initialize_gpe_block()
478 (u32)(gpe_block->block_base_number + in acpi_ev_initialize_gpe_block()
479 (gpe_block->gpe_count - 1)))); in acpi_ev_initialize_gpe_block()
482 gpe_block->initialized = TRUE; in acpi_ev_initialize_gpe_block()