git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
drivers
/
pci
/
pci-acpi.c
diff --git
a/drivers/pci/pci-acpi.c
b/drivers/pci/pci-acpi.c
index
c2ecae5
..
a064f36
100644
(file)
--- a/
drivers/pci/pci-acpi.c
+++ b/
drivers/pci/pci-acpi.c
@@
-36,6
+36,7
@@
acpi_query_osc (
struct acpi_buffer output = {ACPI_ALLOCATE_BUFFER, NULL};
union acpi_object *out_obj;
u32 osc_dw0;
struct acpi_buffer output = {ACPI_ALLOCATE_BUFFER, NULL};
union acpi_object *out_obj;
u32 osc_dw0;
+ acpi_status *ret_status = (acpi_status *)retval;
/* Setting up input parameters */
/* Setting up input parameters */
@@
-56,6
+57,7
@@
acpi_query_osc (
if (ACPI_FAILURE (status)) {
printk(KERN_DEBUG
"Evaluate _OSC Set fails. Status = 0x%04x\n", status);
if (ACPI_FAILURE (status)) {
printk(KERN_DEBUG
"Evaluate _OSC Set fails. Status = 0x%04x\n", status);
+ *ret_status = status;
return status;
}
out_obj = output.pointer;
return status;
}
out_obj = output.pointer;
@@
-90,6
+92,7
@@
acpi_query_osc (
query_osc_out:
kfree(output.pointer);
query_osc_out:
kfree(output.pointer);
+ *ret_status = status;
return status;
}
return status;
}
@@
-166,6
+169,7
@@
run_osc_out:
acpi_status pci_osc_support_set(u32 flags)
{
u32 temp;
acpi_status pci_osc_support_set(u32 flags)
{
u32 temp;
+ acpi_status retval;
if (!(flags & OSC_SUPPORT_MASKS)) {
return AE_TYPE;
if (!(flags & OSC_SUPPORT_MASKS)) {
return AE_TYPE;
@@
-179,9
+183,13
@@
acpi_status pci_osc_support_set(u32 flags)
acpi_get_devices ( PCI_ROOT_HID_STRING,
acpi_query_osc,
ctrlset_buf,
acpi_get_devices ( PCI_ROOT_HID_STRING,
acpi_query_osc,
ctrlset_buf,
-
NULL
);
+
(void **) &retval
);
ctrlset_buf[OSC_QUERY_TYPE] = !OSC_QUERY_ENABLE;
ctrlset_buf[OSC_CONTROL_TYPE] = temp;
ctrlset_buf[OSC_QUERY_TYPE] = !OSC_QUERY_ENABLE;
ctrlset_buf[OSC_CONTROL_TYPE] = temp;
+ if (ACPI_FAILURE(retval)) {
+ /* no osc support at all */
+ ctrlset_buf[OSC_SUPPORT_TYPE] = 0;
+ }
return AE_OK;
}
EXPORT_SYMBOL(pci_osc_support_set);
return AE_OK;
}
EXPORT_SYMBOL(pci_osc_support_set);
@@
-267,7
+275,7
@@
static int acpi_pci_set_power_state(struct pci_dev *dev, pci_power_t state)
/* ACPI bus type */
/* ACPI bus type */
-static int
pci_acp
i_find_device(struct device *dev, acpi_handle *handle)
+static int
acpi_pc
i_find_device(struct device *dev, acpi_handle *handle)
{
struct pci_dev * pci_dev;
acpi_integer addr;
{
struct pci_dev * pci_dev;
acpi_integer addr;
@@
-281,7
+289,7
@@
static int pci_acpi_find_device(struct device *dev, acpi_handle *handle)
return 0;
}
return 0;
}
-static int
pci_acp
i_find_root_bridge(struct device *dev, acpi_handle *handle)
+static int
acpi_pc
i_find_root_bridge(struct device *dev, acpi_handle *handle)
{
int num;
unsigned int seg, bus;
{
int num;
unsigned int seg, bus;
@@
-299,21
+307,21
@@
static int pci_acpi_find_root_bridge(struct device *dev, acpi_handle *handle)
return 0;
}
return 0;
}
-static struct acpi_bus_type
pci_acp
i_bus = {
+static struct acpi_bus_type
acpi_pc
i_bus = {
.bus = &pci_bus_type,
.bus = &pci_bus_type,
- .find_device =
pci_acp
i_find_device,
- .find_bridge =
pci_acp
i_find_root_bridge,
+ .find_device =
acpi_pc
i_find_device,
+ .find_bridge =
acpi_pc
i_find_root_bridge,
};
};
-static int __init
pci_acp
i_init(void)
+static int __init
acpi_pc
i_init(void)
{
int ret;
{
int ret;
- ret = register_acpi_bus_type(&
pci_acp
i_bus);
+ ret = register_acpi_bus_type(&
acpi_pc
i_bus);
if (ret)
return 0;
platform_pci_choose_state = acpi_pci_choose_state;
platform_pci_set_power_state = acpi_pci_set_power_state;
return 0;
}
if (ret)
return 0;
platform_pci_choose_state = acpi_pci_choose_state;
platform_pci_set_power_state = acpi_pci_set_power_state;
return 0;
}
-arch_initcall(
pci_acp
i_init);
+arch_initcall(
acpi_pc
i_init);