aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/acpi/pci_root.c6
-rw-r--r--drivers/pci/hotplug/acpi_pcihp.c5
-rw-r--r--drivers/pci/pcie/aer/aerdrv_acpi.c2
-rw-r--r--include/linux/acpi.h34
-rw-r--r--include/linux/pci-acpi.h45
5 files changed, 40 insertions, 52 deletions
diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
index 979eccc82c5b..196f97d00956 100644
--- a/drivers/acpi/pci_root.c
+++ b/drivers/acpi/pci_root.c
@@ -306,13 +306,13 @@ static struct acpi_pci_root *acpi_pci_find_root(acpi_handle handle)
306} 306}
307 307
308/** 308/**
309 * pci_osc_control_set - commit requested control to Firmware 309 * acpi_pci_osc_control_set - commit requested control to Firmware
310 * @handle: acpi_handle for the target ACPI object 310 * @handle: acpi_handle for the target ACPI object
311 * @flags: driver's requested control bits 311 * @flags: driver's requested control bits
312 * 312 *
313 * Attempt to take control from Firmware on requested control bits. 313 * Attempt to take control from Firmware on requested control bits.
314 **/ 314 **/
315acpi_status pci_osc_control_set(acpi_handle handle, u32 flags) 315acpi_status acpi_pci_osc_control_set(acpi_handle handle, u32 flags)
316{ 316{
317 acpi_status status; 317 acpi_status status;
318 u32 control_req, result, capbuf[3]; 318 u32 control_req, result, capbuf[3];
@@ -359,7 +359,7 @@ out:
359 mutex_unlock(&osc_lock); 359 mutex_unlock(&osc_lock);
360 return status; 360 return status;
361} 361}
362EXPORT_SYMBOL(pci_osc_control_set); 362EXPORT_SYMBOL(acpi_pci_osc_control_set);
363 363
364static int __devinit acpi_pci_root_add(struct acpi_device *device) 364static int __devinit acpi_pci_root_add(struct acpi_device *device)
365{ 365{
diff --git a/drivers/pci/hotplug/acpi_pcihp.c b/drivers/pci/hotplug/acpi_pcihp.c
index 1c1141801060..f47bc74be567 100644
--- a/drivers/pci/hotplug/acpi_pcihp.c
+++ b/drivers/pci/hotplug/acpi_pcihp.c
@@ -30,9 +30,8 @@
30#include <linux/types.h> 30#include <linux/types.h>
31#include <linux/pci.h> 31#include <linux/pci.h>
32#include <linux/pci_hotplug.h> 32#include <linux/pci_hotplug.h>
33#include <linux/acpi.h>
33#include <linux/pci-acpi.h> 34#include <linux/pci-acpi.h>
34#include <acpi/acpi.h>
35#include <acpi/acpi_bus.h>
36 35
37#define MY_NAME "acpi_pcihp" 36#define MY_NAME "acpi_pcihp"
38 37
@@ -408,7 +407,7 @@ int acpi_get_hp_hw_control_from_firmware(struct pci_dev *dev, u32 flags)
408 acpi_get_name(handle, ACPI_FULL_PATHNAME, &string); 407 acpi_get_name(handle, ACPI_FULL_PATHNAME, &string);
409 dbg("Trying to get hotplug control for %s\n", 408 dbg("Trying to get hotplug control for %s\n",
410 (char *)string.pointer); 409 (char *)string.pointer);
411 status = pci_osc_control_set(handle, flags); 410 status = acpi_pci_osc_control_set(handle, flags);
412 if (ACPI_SUCCESS(status)) 411 if (ACPI_SUCCESS(status))
413 goto got_one; 412 goto got_one;
414 kfree(string.pointer); 413 kfree(string.pointer);
diff --git a/drivers/pci/pcie/aer/aerdrv_acpi.c b/drivers/pci/pcie/aer/aerdrv_acpi.c
index ebce26c37049..8edb2f300e8f 100644
--- a/drivers/pci/pcie/aer/aerdrv_acpi.c
+++ b/drivers/pci/pcie/aer/aerdrv_acpi.c
@@ -38,7 +38,7 @@ int aer_osc_setup(struct pcie_device *pciedev)
38 38
39 handle = acpi_find_root_bridge_handle(pdev); 39 handle = acpi_find_root_bridge_handle(pdev);
40 if (handle) { 40 if (handle) {
41 status = pci_osc_control_set(handle, 41 status = acpi_pci_osc_control_set(handle,
42 OSC_PCI_EXPRESS_AER_CONTROL | 42 OSC_PCI_EXPRESS_AER_CONTROL |
43 OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL); 43 OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL);
44 } 44 }
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 6fce2fc2d124..2a3b189e3e26 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -256,6 +256,40 @@ void __init acpi_no_s4_hw_signature(void);
256void __init acpi_old_suspend_ordering(void); 256void __init acpi_old_suspend_ordering(void);
257void __init acpi_s4_no_nvs(void); 257void __init acpi_s4_no_nvs(void);
258#endif /* CONFIG_PM_SLEEP */ 258#endif /* CONFIG_PM_SLEEP */
259
260#define OSC_QUERY_TYPE 0
261#define OSC_SUPPORT_TYPE 1
262#define OSC_CONTROL_TYPE 2
263#define OSC_SUPPORT_MASKS 0x1f
264
265/* _OSC DW0 Definition */
266#define OSC_QUERY_ENABLE 1
267#define OSC_REQUEST_ERROR 2
268#define OSC_INVALID_UUID_ERROR 4
269#define OSC_INVALID_REVISION_ERROR 8
270#define OSC_CAPABILITIES_MASK_ERROR 16
271
272/* _OSC DW1 Definition (OS Support Fields) */
273#define OSC_EXT_PCI_CONFIG_SUPPORT 1
274#define OSC_ACTIVE_STATE_PWR_SUPPORT 2
275#define OSC_CLOCK_PWR_CAPABILITY_SUPPORT 4
276#define OSC_PCI_SEGMENT_GROUPS_SUPPORT 8
277#define OSC_MSI_SUPPORT 16
278
279/* _OSC DW1 Definition (OS Control Fields) */
280#define OSC_PCI_EXPRESS_NATIVE_HP_CONTROL 1
281#define OSC_SHPC_NATIVE_HP_CONTROL 2
282#define OSC_PCI_EXPRESS_PME_CONTROL 4
283#define OSC_PCI_EXPRESS_AER_CONTROL 8
284#define OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL 16
285
286#define OSC_CONTROL_MASKS (OSC_PCI_EXPRESS_NATIVE_HP_CONTROL | \
287 OSC_SHPC_NATIVE_HP_CONTROL | \
288 OSC_PCI_EXPRESS_PME_CONTROL | \
289 OSC_PCI_EXPRESS_AER_CONTROL | \
290 OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL)
291
292extern acpi_status acpi_pci_osc_control_set(acpi_handle handle, u32 flags);
259#else /* CONFIG_ACPI */ 293#else /* CONFIG_ACPI */
260 294
261static inline int early_acpi_boot_init(void) 295static inline int early_acpi_boot_init(void)
diff --git a/include/linux/pci-acpi.h b/include/linux/pci-acpi.h
index 65cb103b21db..20480b9f10c8 100644
--- a/include/linux/pci-acpi.h
+++ b/include/linux/pci-acpi.h
@@ -10,46 +10,7 @@
10 10
11#include <linux/acpi.h> 11#include <linux/acpi.h>
12 12
13#define OSC_QUERY_TYPE 0
14#define OSC_SUPPORT_TYPE 1
15#define OSC_CONTROL_TYPE 2
16#define OSC_SUPPORT_MASKS 0x1f
17
18/*
19 * _OSC DW0 Definition
20 */
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
26
27/*
28 * _OSC DW1 Definition (OS Support Fields)
29 */
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
35
36/*
37 * _OSC DW1 Definition (OS Control Fields)
38 */
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
44
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)
50
51#ifdef CONFIG_ACPI 13#ifdef CONFIG_ACPI
52extern acpi_status pci_osc_control_set(acpi_handle handle, u32 flags);
53static inline acpi_handle acpi_find_root_bridge_handle(struct pci_dev *pdev) 14static inline acpi_handle acpi_find_root_bridge_handle(struct pci_dev *pdev)
54{ 15{
55 /* Find root host bridge */ 16 /* Find root host bridge */
@@ -69,12 +30,6 @@ static inline acpi_handle acpi_pci_get_bridge_handle(struct pci_bus *pbus)
69 return acpi_get_pci_rootbridge_handle(seg, busnr); 30 return acpi_get_pci_rootbridge_handle(seg, busnr);
70} 31}
71#else 32#else
72#if !defined(AE_ERROR)
73typedef u32 acpi_status;
74#define AE_ERROR (acpi_status) (0x0001)
75#endif
76static inline acpi_status pci_osc_control_set(acpi_handle handle, u32 flags)
77{return AE_ERROR;}
78static inline acpi_handle acpi_find_root_bridge_handle(struct pci_dev *pdev) 33static inline acpi_handle acpi_find_root_bridge_handle(struct pci_dev *pdev)
79{ return NULL; } 34{ return NULL; }
80#endif 35#endif