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);
30 * PARAMETERS: gpe_block - New GPE block
41 acpi_ev_install_gpe_block(struct acpi_gpe_block_info *gpe_block,
71 next_gpe_block->next = gpe_block;
72 gpe_block->previous = next_gpe_block;
74 gpe_xrupt_block->gpe_block_list_head = gpe_block;
77 gpe_block->xrupt_block = gpe_xrupt_block;
89 * PARAMETERS: gpe_block - Existing GPE block
97 acpi_status acpi_ev_delete_gpe_block(struct acpi_gpe_block_info *gpe_block)
112 acpi_hw_disable_gpe_block(gpe_block->xrupt_block, gpe_block, NULL);
117 if (!gpe_block->previous && !gpe_block->next) {
119 /* This is the last gpe_block on this interrupt */
121 status = acpi_ev_delete_gpe_xrupt(gpe_block->xrupt_block);
129 if (gpe_block->previous) {
130 gpe_block->previous->next = gpe_block->next;
132 gpe_block->xrupt_block->gpe_block_list_head =
133 gpe_block->next;
136 if (gpe_block->next) {
137 gpe_block->next->previous = gpe_block->previous;
143 acpi_current_gpe_count -= gpe_block->gpe_count;
145 /* Free the gpe_block */
147 ACPI_FREE(gpe_block->register_info);
148 ACPI_FREE(gpe_block->event_info);
149 ACPI_FREE(gpe_block);
160 * PARAMETERS: gpe_block - New GPE block
169 acpi_ev_create_gpe_info_blocks(struct acpi_gpe_block_info *gpe_block)
183 gpe_register_info = ACPI_ALLOCATE_ZEROED((acpi_size)gpe_block->
197 gpe_event_info = ACPI_ALLOCATE_ZEROED((acpi_size)gpe_block->gpe_count *
209 gpe_block->register_info = gpe_register_info;
210 gpe_block->event_info = gpe_event_info;
221 for (i = 0; i < gpe_block->register_count; i++) {
226 (gpe_block->block_base_number +
229 this_register->status_address.address = gpe_block->address + i;
232 gpe_block->address + i + gpe_block->register_count;
234 this_register->status_address.space_id = gpe_block->space_id;
235 this_register->enable_address.space_id = gpe_block->space_id;
305 struct acpi_gpe_block_info *gpe_block;
333 gpe_block = ACPI_ALLOCATE_ZEROED(sizeof(struct acpi_gpe_block_info));
334 if (!gpe_block) {
340 gpe_block->address = address;
341 gpe_block->space_id = space_id;
342 gpe_block->node = gpe_device;
343 gpe_block->gpe_count = (u16)(register_count * ACPI_GPE_REGISTER_WIDTH);
344 gpe_block->initialized = FALSE;
345 gpe_block->register_count = register_count;
346 gpe_block->block_base_number = gpe_block_base_number;
352 status = acpi_ev_create_gpe_info_blocks(gpe_block);
354 ACPI_FREE(gpe_block);
360 status = acpi_ev_install_gpe_block(gpe_block, interrupt_number);
362 ACPI_FREE(gpe_block->register_info);
363 ACPI_FREE(gpe_block->event_info);
364 ACPI_FREE(gpe_block);
372 walk_info.gpe_block = gpe_block;
384 (*return_gpe_block) = gpe_block;
389 (u32)gpe_block->block_base_number,
390 (u32)(gpe_block->block_base_number +
391 (gpe_block->gpe_count - 1)),
392 gpe_device->name.ascii, gpe_block->register_count,
399 acpi_current_gpe_count += gpe_block->gpe_count;
419 struct acpi_gpe_block_info *gpe_block,
437 if (!gpe_block || gpe_block->initialized) {
448 for (i = 0; i < gpe_block->register_count; i++) {
454 gpe_event_info = &gpe_block->event_info[gpe_index];
456 gpe_block->block_base_number +
491 gpe_enabled_count, (u32)gpe_block->block_base_number,
492 (u32)(gpe_block->block_base_number +
493 (gpe_block->gpe_count - 1))));
496 gpe_block->initialized = TRUE;