pci-acpi.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /*
  2. * File pci-acpi.h
  3. *
  4. * Copyright (C) 2004 Intel
  5. * Copyright (C) Tom Long Nguyen (tom.l.nguyen@intel.com)
  6. */
  7. #ifndef _PCI_ACPI_H_
  8. #define _PCI_ACPI_H_
  9. #include <linux/acpi.h>
  10. #ifdef CONFIG_ACPI
  11. extern acpi_status pci_acpi_add_bus_pm_notifier(struct acpi_device *dev,
  12. struct pci_bus *pci_bus);
  13. extern acpi_status pci_acpi_remove_bus_pm_notifier(struct acpi_device *dev);
  14. extern acpi_status pci_acpi_add_pm_notifier(struct acpi_device *dev,
  15. struct pci_dev *pci_dev);
  16. extern acpi_status pci_acpi_remove_pm_notifier(struct acpi_device *dev);
  17. static inline acpi_handle acpi_find_root_bridge_handle(struct pci_dev *pdev)
  18. {
  19. struct pci_bus *pbus = pdev->bus;
  20. /* Find a PCI root bus */
  21. while (!pci_is_root_bus(pbus))
  22. pbus = pbus->parent;
  23. return acpi_get_pci_rootbridge_handle(pci_domain_nr(pbus),
  24. pbus->number);
  25. }
  26. static inline acpi_handle acpi_pci_get_bridge_handle(struct pci_bus *pbus)
  27. {
  28. if (!pci_is_root_bus(pbus))
  29. return DEVICE_ACPI_HANDLE(&(pbus->self->dev));
  30. return acpi_get_pci_rootbridge_handle(pci_domain_nr(pbus),
  31. pbus->number);
  32. }
  33. #endif
  34. #ifdef CONFIG_ACPI_APEI
  35. extern bool aer_acpi_firmware_first(void);
  36. #else
  37. static inline bool aer_acpi_firmware_first(void) { return false; }
  38. #endif
  39. #endif /* _PCI_ACPI_H_ */