• Home
  • Raw
  • Download

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()
117 if (!gpe_block->previous && !gpe_block->next) { in acpi_ev_delete_gpe_block()
121 status = acpi_ev_delete_gpe_xrupt(gpe_block->xrupt_block); in acpi_ev_delete_gpe_block()
129 if (gpe_block->previous) { in acpi_ev_delete_gpe_block()
130 gpe_block->previous->next = gpe_block->next; in acpi_ev_delete_gpe_block()
132 gpe_block->xrupt_block->gpe_block_list_head = in acpi_ev_delete_gpe_block()
133 gpe_block->next; in acpi_ev_delete_gpe_block()
136 if (gpe_block->next) { in acpi_ev_delete_gpe_block()
137 gpe_block->next->previous = gpe_block->previous; in acpi_ev_delete_gpe_block()
143 acpi_current_gpe_count -= gpe_block->gpe_count; in acpi_ev_delete_gpe_block()
147 ACPI_FREE(gpe_block->register_info); in acpi_ev_delete_gpe_block()
148 ACPI_FREE(gpe_block->event_info); in acpi_ev_delete_gpe_block()
149 ACPI_FREE(gpe_block); in acpi_ev_delete_gpe_block()
169 acpi_ev_create_gpe_info_blocks(struct acpi_gpe_block_info *gpe_block) in acpi_ev_create_gpe_info_blocks() argument
183 gpe_register_info = ACPI_ALLOCATE_ZEROED((acpi_size)gpe_block-> in acpi_ev_create_gpe_info_blocks()
197 gpe_event_info = ACPI_ALLOCATE_ZEROED((acpi_size)gpe_block->gpe_count * in acpi_ev_create_gpe_info_blocks()
209 gpe_block->register_info = gpe_register_info; in acpi_ev_create_gpe_info_blocks()
210 gpe_block->event_info = gpe_event_info; in acpi_ev_create_gpe_info_blocks()
221 for (i = 0; i < gpe_block->register_count; i++) { in acpi_ev_create_gpe_info_blocks()
226 (gpe_block->block_base_number + in acpi_ev_create_gpe_info_blocks()
229 this_register->status_address.address = gpe_block->address + i; in acpi_ev_create_gpe_info_blocks()
232 gpe_block->address + i + gpe_block->register_count; in acpi_ev_create_gpe_info_blocks()
234 this_register->status_address.space_id = gpe_block->space_id; in acpi_ev_create_gpe_info_blocks()
235 this_register->enable_address.space_id = gpe_block->space_id; in acpi_ev_create_gpe_info_blocks()
305 struct acpi_gpe_block_info *gpe_block; in acpi_ev_create_gpe_block() local
333 gpe_block = ACPI_ALLOCATE_ZEROED(sizeof(struct acpi_gpe_block_info)); in acpi_ev_create_gpe_block()
334 if (!gpe_block) { in acpi_ev_create_gpe_block()
340 gpe_block->address = address; in acpi_ev_create_gpe_block()
341 gpe_block->space_id = space_id; in acpi_ev_create_gpe_block()
342 gpe_block->node = gpe_device; in acpi_ev_create_gpe_block()
343 gpe_block->gpe_count = (u16)(register_count * ACPI_GPE_REGISTER_WIDTH); in acpi_ev_create_gpe_block()
344 gpe_block->initialized = FALSE; in acpi_ev_create_gpe_block()
345 gpe_block->register_count = register_count; in acpi_ev_create_gpe_block()
346 gpe_block->block_base_number = gpe_block_base_number; in acpi_ev_create_gpe_block()
352 status = acpi_ev_create_gpe_info_blocks(gpe_block); in acpi_ev_create_gpe_block()
354 ACPI_FREE(gpe_block); in acpi_ev_create_gpe_block()
360 status = acpi_ev_install_gpe_block(gpe_block, interrupt_number); in acpi_ev_create_gpe_block()
362 ACPI_FREE(gpe_block->register_info); in acpi_ev_create_gpe_block()
363 ACPI_FREE(gpe_block->event_info); in acpi_ev_create_gpe_block()
364 ACPI_FREE(gpe_block); in acpi_ev_create_gpe_block()
372 walk_info.gpe_block = gpe_block; in acpi_ev_create_gpe_block()
384 (*return_gpe_block) = gpe_block; in acpi_ev_create_gpe_block()
389 (u32)gpe_block->block_base_number, in acpi_ev_create_gpe_block()
390 (u32)(gpe_block->block_base_number + in acpi_ev_create_gpe_block()
391 (gpe_block->gpe_count - 1)), in acpi_ev_create_gpe_block()
392 gpe_device->name.ascii, gpe_block->register_count, in acpi_ev_create_gpe_block()
399 acpi_current_gpe_count += gpe_block->gpe_count; in acpi_ev_create_gpe_block()
419 struct acpi_gpe_block_info *gpe_block, in acpi_ev_initialize_gpe_block() argument
437 if (!gpe_block || gpe_block->initialized) { in acpi_ev_initialize_gpe_block()
448 for (i = 0; i < gpe_block->register_count; i++) { in acpi_ev_initialize_gpe_block()
454 gpe_event_info = &gpe_block->event_info[gpe_index]; in acpi_ev_initialize_gpe_block()
456 gpe_block->block_base_number + in acpi_ev_initialize_gpe_block()
491 gpe_enabled_count, (u32)gpe_block->block_base_number, in acpi_ev_initialize_gpe_block()
492 (u32)(gpe_block->block_base_number + in acpi_ev_initialize_gpe_block()
493 (gpe_block->gpe_count - 1)))); in acpi_ev_initialize_gpe_block()
496 gpe_block->initialized = TRUE; in acpi_ev_initialize_gpe_block()