git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394...
[pandora-kernel.git]
/
drivers
/
acpi
/
pci_link.c
diff --git
a/drivers/acpi/pci_link.c
b/drivers/acpi/pci_link.c
index
1badce2
..
0f683c8
100644
(file)
--- a/
drivers/acpi/pci_link.c
+++ b/
drivers/acpi/pci_link.c
@@
-83,7
+83,6
@@
struct acpi_pci_link_irq {
struct acpi_pci_link {
struct list_head node;
struct acpi_device *device;
struct acpi_pci_link {
struct list_head node;
struct acpi_device *device;
- acpi_handle handle;
struct acpi_pci_link_irq irq;
int refcnt;
};
struct acpi_pci_link_irq irq;
int refcnt;
};
@@
-104,7
+103,7
@@
DEFINE_MUTEX(acpi_link_lock);
static acpi_status
acpi_pci_link_check_possible(struct acpi_resource *resource, void *context)
{
static acpi_status
acpi_pci_link_check_possible(struct acpi_resource *resource, void *context)
{
- struct acpi_pci_link *link =
(struct acpi_pci_link *)
context;
+ struct acpi_pci_link *link = context;
u32 i = 0;
u32 i = 0;
@@
-175,7
+174,7
@@
static int acpi_pci_link_get_possible(struct acpi_pci_link *link)
if (!link)
return -EINVAL;
if (!link)
return -EINVAL;
- status = acpi_walk_resources(link->handle, METHOD_NAME__PRS,
+ status = acpi_walk_resources(link->
device->
handle, METHOD_NAME__PRS,
acpi_pci_link_check_possible, link);
if (ACPI_FAILURE(status)) {
ACPI_EXCEPTION((AE_INFO, status, "Evaluating _PRS"));
acpi_pci_link_check_possible, link);
if (ACPI_FAILURE(status)) {
ACPI_EXCEPTION((AE_INFO, status, "Evaluating _PRS"));
@@
-249,8
+248,7
@@
static int acpi_pci_link_get_current(struct acpi_pci_link *link)
acpi_status status = AE_OK;
int irq = 0;
acpi_status status = AE_OK;
int irq = 0;
-
- if (!link || !link->handle)
+ if (!link)
return -EINVAL;
link->irq.active = 0;
return -EINVAL;
link->irq.active = 0;
@@
-274,7
+272,7
@@
static int acpi_pci_link_get_current(struct acpi_pci_link *link)
* Query and parse _CRS to get the current IRQ assignment.
*/
* Query and parse _CRS to get the current IRQ assignment.
*/
- status = acpi_walk_resources(link->handle, METHOD_NAME__CRS,
+ status = acpi_walk_resources(link->
device->
handle, METHOD_NAME__CRS,
acpi_pci_link_check_current, &irq);
if (ACPI_FAILURE(status)) {
ACPI_EXCEPTION((AE_INFO, status, "Evaluating _CRS"));
acpi_pci_link_check_current, &irq);
if (ACPI_FAILURE(status)) {
ACPI_EXCEPTION((AE_INFO, status, "Evaluating _CRS"));
@@
-309,11
+307,10
@@
static int acpi_pci_link_set(struct acpi_pci_link *link, int irq)
if (!link || !irq)
return -EINVAL;
if (!link || !irq)
return -EINVAL;
- resource = k
malloc(sizeof(*resource) + 1, GFP_ATOMIC
);
+ resource = k
zalloc(sizeof(*resource) + 1, irqs_disabled() ? GFP_ATOMIC: GFP_KERNEL
);
if (!resource)
return -ENOMEM;
if (!resource)
return -ENOMEM;
- memset(resource, 0, sizeof(*resource) + 1);
buffer.length = sizeof(*resource) + 1;
buffer.pointer = resource;
buffer.length = sizeof(*resource) + 1;
buffer.pointer = resource;
@@
-360,7
+357,7
@@
static int acpi_pci_link_set(struct acpi_pci_link *link, int irq)
resource->end.type = ACPI_RESOURCE_TYPE_END_TAG;
/* Attempt to set the resource */
resource->end.type = ACPI_RESOURCE_TYPE_END_TAG;
/* Attempt to set the resource */
- status = acpi_set_current_resources(link->handle, &buffer);
+ status = acpi_set_current_resources(link->
device->
handle, &buffer);
/* check for total failure */
if (ACPI_FAILURE(status)) {
/* check for total failure */
if (ACPI_FAILURE(status)) {
@@
-516,7
+513,7
@@
int __init acpi_irq_penalty_init(void)
}
}
/* Add a penalty for the SCI */
}
}
/* Add a penalty for the SCI */
- acpi_irq_penalty[acpi_
fadt.sci_in
t] += PIRQ_PENALTY_PCI_USING;
+ acpi_irq_penalty[acpi_
gbl_FADT.sci_interrup
t] += PIRQ_PENALTY_PCI_USING;
return 0;
}
return 0;
}
@@
-615,7
+612,7
@@
acpi_pci_link_allocate_irq(acpi_handle handle,
return -1;
}
return -1;
}
- link =
(struct acpi_pci_link *)
acpi_driver_data(device);
+ link = acpi_driver_data(device);
if (!link) {
printk(KERN_ERR PREFIX "Invalid link context\n");
return -1;
if (!link) {
printk(KERN_ERR PREFIX "Invalid link context\n");
return -1;
@@
-670,7
+667,7
@@
int acpi_pci_link_free_irq(acpi_handle handle)
return -1;
}
return -1;
}
- link =
(struct acpi_pci_link *)
acpi_driver_data(device);
+ link = acpi_driver_data(device);
if (!link) {
printk(KERN_ERR PREFIX "Invalid link context\n");
return -1;
if (!link) {
printk(KERN_ERR PREFIX "Invalid link context\n");
return -1;
@@
-699,7
+696,7
@@
int acpi_pci_link_free_irq(acpi_handle handle)
acpi_device_bid(link->device)));
if (link->refcnt == 0) {
acpi_device_bid(link->device)));
if (link->refcnt == 0) {
- acpi_ut_evaluate_object(link->handle, "_DIS", 0, NULL);
+ acpi_ut_evaluate_object(link->
device->
handle, "_DIS", 0, NULL);
}
mutex_unlock(&acpi_link_lock);
return (link->irq.active);
}
mutex_unlock(&acpi_link_lock);
return (link->irq.active);
@@
-720,13
+717,11
@@
static int acpi_pci_link_add(struct acpi_device *device)
if (!device)
return -EINVAL;
if (!device)
return -EINVAL;
- link = k
m
alloc(sizeof(struct acpi_pci_link), GFP_KERNEL);
+ link = k
z
alloc(sizeof(struct acpi_pci_link), GFP_KERNEL);
if (!link)
return -ENOMEM;
if (!link)
return -ENOMEM;
- memset(link, 0, sizeof(struct acpi_pci_link));
link->device = device;
link->device = device;
- link->handle = device->handle;
strcpy(acpi_device_name(device), ACPI_PCI_LINK_DEVICE_NAME);
strcpy(acpi_device_class(device), ACPI_PCI_LINK_CLASS);
acpi_driver_data(device) = link;
strcpy(acpi_device_name(device), ACPI_PCI_LINK_DEVICE_NAME);
strcpy(acpi_device_class(device), ACPI_PCI_LINK_CLASS);
acpi_driver_data(device) = link;
@@
-765,7
+760,7
@@
static int acpi_pci_link_add(struct acpi_device *device)
end:
/* disable all links -- to be activated on use */
end:
/* disable all links -- to be activated on use */
- acpi_ut_evaluate_object(
link
->handle, "_DIS", 0, NULL);
+ acpi_ut_evaluate_object(
device
->handle, "_DIS", 0, NULL);
mutex_unlock(&acpi_link_lock);
if (result)
mutex_unlock(&acpi_link_lock);
if (result)
@@
-783,11
+778,6
@@
static int acpi_pci_link_resume(struct acpi_pci_link *link)
return 0;
}
return 0;
}
-/*
- * FIXME: this is a workaround to avoid nasty warning. It will be removed
- * after every device calls pci_disable_device in .resume.
- */
-int acpi_in_resume;
static int irqrouter_resume(struct sys_device *dev)
{
struct list_head *node = NULL;
static int irqrouter_resume(struct sys_device *dev)
{
struct list_head *node = NULL;
@@
-795,9
+785,8
@@
static int irqrouter_resume(struct sys_device *dev)
/* Make sure SCI is enabled again (Apple firmware bug?) */
/* Make sure SCI is enabled again (Apple firmware bug?) */
- acpi_set_register(ACPI_BITREG_SCI_ENABLE, 1
, ACPI_MTX_DO_NOT_LOCK
);
+ acpi_set_register(ACPI_BITREG_SCI_ENABLE, 1);
- acpi_in_resume = 1;
list_for_each(node, &acpi_link.entries) {
link = list_entry(node, struct acpi_pci_link, node);
if (!link) {
list_for_each(node, &acpi_link.entries) {
link = list_entry(node, struct acpi_pci_link, node);
if (!link) {
@@
-806,7
+795,6
@@
static int irqrouter_resume(struct sys_device *dev)
}
acpi_pci_link_resume(link);
}
}
acpi_pci_link_resume(link);
}
- acpi_in_resume = 0;
return 0;
}
return 0;
}
@@
-818,7
+806,7
@@
static int acpi_pci_link_remove(struct acpi_device *device, int type)
if (!device || !acpi_driver_data(device))
return -EINVAL;
if (!device || !acpi_driver_data(device))
return -EINVAL;
- link =
(struct acpi_pci_link *)
acpi_driver_data(device);
+ link = acpi_driver_data(device);
mutex_lock(&acpi_link_lock);
list_del(&link->node);
mutex_lock(&acpi_link_lock);
list_del(&link->node);