gianfar: Add support for skb recycling
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / include / linux / pci-acpi.h
blob042c166f65d5e155d46bacfbd6981268d928d376
1 /*
2 * File pci-acpi.h
4 * Copyright (C) 2004 Intel
5 * Copyright (C) Tom Long Nguyen (tom.l.nguyen@intel.com)
6 */
8 #ifndef _PCI_ACPI_H_
9 #define _PCI_ACPI_H_
11 #include <linux/acpi.h>
13 #define OSC_QUERY_TYPE 0
14 #define OSC_SUPPORT_TYPE 1
15 #define OSC_CONTROL_TYPE 2
16 #define OSC_SUPPORT_MASKS 0x1f
19 * _OSC DW0 Definition
21 #define OSC_QUERY_ENABLE 1
22 #define OSC_REQUEST_ERROR 2
23 #define OSC_INVALID_UUID_ERROR 4
24 #define OSC_INVALID_REVISION_ERROR 8
25 #define OSC_CAPABILITIES_MASK_ERROR 16
28 * _OSC DW1 Definition (OS Support Fields)
30 #define OSC_EXT_PCI_CONFIG_SUPPORT 1
31 #define OSC_ACTIVE_STATE_PWR_SUPPORT 2
32 #define OSC_CLOCK_PWR_CAPABILITY_SUPPORT 4
33 #define OSC_PCI_SEGMENT_GROUPS_SUPPORT 8
34 #define OSC_MSI_SUPPORT 16
37 * _OSC DW1 Definition (OS Control Fields)
39 #define OSC_PCI_EXPRESS_NATIVE_HP_CONTROL 1
40 #define OSC_SHPC_NATIVE_HP_CONTROL 2
41 #define OSC_PCI_EXPRESS_PME_CONTROL 4
42 #define OSC_PCI_EXPRESS_AER_CONTROL 8
43 #define OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL 16
45 #define OSC_CONTROL_MASKS (OSC_PCI_EXPRESS_NATIVE_HP_CONTROL | \
46 OSC_SHPC_NATIVE_HP_CONTROL | \
47 OSC_PCI_EXPRESS_PME_CONTROL | \
48 OSC_PCI_EXPRESS_AER_CONTROL | \
49 OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL)
51 #ifdef CONFIG_ACPI
52 extern acpi_status pci_osc_control_set(acpi_handle handle, u32 flags);
53 int pci_acpi_osc_support(acpi_handle handle, u32 flags);
54 static inline acpi_handle acpi_find_root_bridge_handle(struct pci_dev *pdev)
56 /* Find root host bridge */
57 while (pdev->bus->self)
58 pdev = pdev->bus->self;
60 return acpi_get_pci_rootbridge_handle(pci_domain_nr(pdev->bus),
61 pdev->bus->number);
64 static inline acpi_handle acpi_pci_get_bridge_handle(struct pci_bus *pbus)
66 int seg = pci_domain_nr(pbus), busnr = pbus->number;
67 struct pci_dev *bridge = pbus->self;
68 if (bridge)
69 return DEVICE_ACPI_HANDLE(&(bridge->dev));
70 return acpi_get_pci_rootbridge_handle(seg, busnr);
72 #else
73 #if !defined(AE_ERROR)
74 typedef u32 acpi_status;
75 #define AE_ERROR (acpi_status) (0x0001)
76 #endif
77 static inline acpi_status pci_osc_control_set(acpi_handle handle, u32 flags)
78 {return AE_ERROR;}
79 static inline acpi_handle acpi_find_root_bridge_handle(struct pci_dev *pdev)
80 { return NULL; }
81 #endif
83 #endif /* _PCI_ACPI_H_ */