pci-acpi.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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. #else
  34. static inline acpi_handle acpi_find_root_bridge_handle(struct pci_dev *pdev)
  35. { return NULL; }
  36. #endif
  37. #endif /* _PCI_ACPI_H_ */