aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/acpi.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/acpi.h')
-rw-r--r--include/linux/acpi.h30
1 files changed, 21 insertions, 9 deletions
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index b123cc08773d..b46a5205ee7b 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -206,7 +206,10 @@ struct acpi_table_plat_int_src {
206 u8 eid; 206 u8 eid;
207 u8 iosapic_vector; 207 u8 iosapic_vector;
208 u32 global_irq; 208 u32 global_irq;
209 u32 reserved; 209 struct {
210 u32 cpei_override_flag:1;
211 u32 reserved:31;
212 } plint_flags;
210} __attribute__ ((packed)); 213} __attribute__ ((packed));
211 214
212enum acpi_interrupt_id { 215enum acpi_interrupt_id {
@@ -342,11 +345,19 @@ struct acpi_table_ecdt {
342 345
343/* PCI MMCONFIG */ 346/* PCI MMCONFIG */
344 347
348/* Defined in PCI Firmware Specification 3.0 */
349struct acpi_table_mcfg_config {
350 u32 base_address;
351 u32 base_reserved;
352 u16 pci_segment_group_number;
353 u8 start_bus_number;
354 u8 end_bus_number;
355 u8 reserved[4];
356} __attribute__ ((packed));
345struct acpi_table_mcfg { 357struct acpi_table_mcfg {
346 struct acpi_table_header header; 358 struct acpi_table_header header;
347 u8 reserved[8]; 359 u8 reserved[8];
348 u32 base_address; 360 struct acpi_table_mcfg_config config[0];
349 u32 base_reserved;
350} __attribute__ ((packed)); 361} __attribute__ ((packed));
351 362
352/* Table Handlers */ 363/* Table Handlers */
@@ -391,6 +402,7 @@ int acpi_table_parse (enum acpi_table_id id, acpi_table_handler handler);
391int acpi_get_table_header_early (enum acpi_table_id id, struct acpi_table_header **header); 402int acpi_get_table_header_early (enum acpi_table_id id, struct acpi_table_header **header);
392int acpi_table_parse_madt (enum acpi_madt_entry_id id, acpi_madt_entry_handler handler, unsigned int max_entries); 403int acpi_table_parse_madt (enum acpi_madt_entry_id id, acpi_madt_entry_handler handler, unsigned int max_entries);
393int acpi_table_parse_srat (enum acpi_srat_entry_id id, acpi_madt_entry_handler handler, unsigned int max_entries); 404int acpi_table_parse_srat (enum acpi_srat_entry_id id, acpi_madt_entry_handler handler, unsigned int max_entries);
405int acpi_parse_mcfg (unsigned long phys_addr, unsigned long size);
394void acpi_table_print (struct acpi_table_header *header, unsigned long phys_addr); 406void acpi_table_print (struct acpi_table_header *header, unsigned long phys_addr);
395void acpi_table_print_madt_entry (acpi_table_entry_header *madt); 407void acpi_table_print_madt_entry (acpi_table_entry_header *madt);
396void acpi_table_print_srat_entry (acpi_table_entry_header *srat); 408void acpi_table_print_srat_entry (acpi_table_entry_header *srat);
@@ -407,9 +419,13 @@ int acpi_map_lsapic(acpi_handle handle, int *pcpu);
407int acpi_unmap_lsapic(int cpu); 419int acpi_unmap_lsapic(int cpu);
408#endif /* CONFIG_ACPI_HOTPLUG_CPU */ 420#endif /* CONFIG_ACPI_HOTPLUG_CPU */
409 421
422int acpi_register_ioapic(acpi_handle handle, u64 phys_addr, u32 gsi_base);
423int acpi_unregister_ioapic(acpi_handle handle, u32 gsi_base);
424
410extern int acpi_mp_config; 425extern int acpi_mp_config;
411 426
412extern u32 pci_mmcfg_base_addr; 427extern struct acpi_table_mcfg_config *pci_mmcfg_config;
428extern int pci_mmcfg_config_num;
413 429
414extern int sbf_port ; 430extern int sbf_port ;
415 431
@@ -437,9 +453,7 @@ int acpi_gsi_to_irq (u32 gsi, unsigned int *irq);
437 * If this matches the last registration, any IRQ resources for gsi 453 * If this matches the last registration, any IRQ resources for gsi
438 * are freed. 454 * are freed.
439 */ 455 */
440#ifdef CONFIG_ACPI_DEALLOCATE_IRQ
441void acpi_unregister_gsi (u32 gsi); 456void acpi_unregister_gsi (u32 gsi);
442#endif
443 457
444#ifdef CONFIG_ACPI_PCI 458#ifdef CONFIG_ACPI_PCI
445 459
@@ -462,11 +476,9 @@ struct acpi_prt_list {
462struct pci_dev; 476struct pci_dev;
463 477
464int acpi_pci_irq_enable (struct pci_dev *dev); 478int acpi_pci_irq_enable (struct pci_dev *dev);
465void acpi_penalize_isa_irq(int irq); 479void acpi_penalize_isa_irq(int irq, int active);
466 480
467#ifdef CONFIG_ACPI_DEALLOCATE_IRQ
468void acpi_pci_irq_disable (struct pci_dev *dev); 481void acpi_pci_irq_disable (struct pci_dev *dev);
469#endif
470 482
471struct acpi_pci_driver { 483struct acpi_pci_driver {
472 struct acpi_pci_driver *next; 484 struct acpi_pci_driver *next;