Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 336625
b: refs/heads/master
c: 95f8a08
h: refs/heads/master
i:
  336623: 74e49af
v: v3
  • Loading branch information
Rafael J. Wysocki committed Nov 20, 2012
1 parent c6da02c commit 5e68dc1
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 14 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f3fd0c8a7fc1e4f3107a09a75e622781d3007b56
refs/heads/master: 95f8a082b9b1ead0c2859f2a7b1ac91ff63d8765
16 changes: 8 additions & 8 deletions trunk/drivers/acpi/glue.c
Original file line number Diff line number Diff line change
Expand Up @@ -134,12 +134,12 @@ static int acpi_bind_one(struct device *dev, acpi_handle handle)
char physical_node_name[sizeof(PHYSICAL_NODE_STRING) + 2];
int retval = -EINVAL;

if (dev->acpi_handle) {
if (ACPI_HANDLE(dev)) {
if (handle) {
dev_warn(dev, "ACPI handle is already set\n");
return -EINVAL;
} else {
handle = dev->acpi_handle;
handle = ACPI_HANDLE(dev);
}
}
if (!handle)
Expand Down Expand Up @@ -181,8 +181,8 @@ static int acpi_bind_one(struct device *dev, acpi_handle handle)

mutex_unlock(&acpi_dev->physical_node_lock);

if (!dev->acpi_handle)
dev->acpi_handle = handle;
if (!ACPI_HANDLE(dev))
ACPI_HANDLE_SET(dev, acpi_dev->handle);

if (!physical_node->node_id)
strcpy(physical_node_name, PHYSICAL_NODE_STRING);
Expand All @@ -200,7 +200,7 @@ static int acpi_bind_one(struct device *dev, acpi_handle handle)
return 0;

err:
dev->acpi_handle = NULL;
ACPI_HANDLE_SET(dev, NULL);
put_device(dev);
return retval;

Expand All @@ -217,10 +217,10 @@ static int acpi_unbind_one(struct device *dev)
acpi_status status;
struct list_head *node, *next;

if (!dev->acpi_handle)
if (!ACPI_HANDLE(dev))
return 0;

status = acpi_bus_get_device(dev->acpi_handle, &acpi_dev);
status = acpi_bus_get_device(ACPI_HANDLE(dev), &acpi_dev);
if (ACPI_FAILURE(status))
goto err;

Expand All @@ -246,7 +246,7 @@ static int acpi_unbind_one(struct device *dev)

sysfs_remove_link(&acpi_dev->dev.kobj, physical_node_name);
sysfs_remove_link(&dev->kobj, "firmware_node");
dev->acpi_handle = NULL;
ACPI_HANDLE_SET(dev, NULL);
/* acpi_bind_one increase refcnt by one */
put_device(dev);
kfree(entry);
Expand Down
4 changes: 2 additions & 2 deletions trunk/drivers/acpi/scan.c
Original file line number Diff line number Diff line change
Expand Up @@ -386,8 +386,8 @@ const struct acpi_device_id *acpi_match_device(const struct acpi_device_id *ids,
{
struct acpi_device *adev;

if (!ids || !dev->acpi_handle
|| ACPI_FAILURE(acpi_bus_get_device(dev->acpi_handle, &adev)))
if (!ids || !ACPI_HANDLE(dev)
|| ACPI_FAILURE(acpi_bus_get_device(ACPI_HANDLE(dev), &adev)))
return NULL;

return __acpi_match_device(adev, ids);
Expand Down
2 changes: 1 addition & 1 deletion trunk/include/acpi/acpi_bus.h
Original file line number Diff line number Diff line change
Expand Up @@ -410,7 +410,7 @@ acpi_handle acpi_get_child(acpi_handle, u64);
int acpi_is_root_bridge(acpi_handle);
acpi_handle acpi_get_pci_rootbridge_handle(unsigned int, unsigned int);
struct acpi_pci_root *acpi_pci_find_root(acpi_handle handle);
#define DEVICE_ACPI_HANDLE(dev) ((acpi_handle)((dev)->acpi_handle))
#define DEVICE_ACPI_HANDLE(dev) ((acpi_handle)ACPI_HANDLE(dev))

int acpi_enable_wakeup_device_power(struct acpi_device *dev, int state);
int acpi_disable_wakeup_device_power(struct acpi_device *dev);
Expand Down
18 changes: 16 additions & 2 deletions trunk/include/linux/device.h
Original file line number Diff line number Diff line change
Expand Up @@ -578,6 +578,12 @@ struct device_dma_parameters {
unsigned long segment_boundary_mask;
};

struct acpi_dev_node {
#ifdef CONFIG_ACPI
void *handle;
#endif
};

/**
* struct device - The basic device structure
* @parent: The device's "parent" device, the device to which it is attached.
Expand Down Expand Up @@ -618,7 +624,7 @@ struct device_dma_parameters {
* @dma_mem: Internal for coherent mem override.
* @archdata: For arch-specific additions.
* @of_node: Associated device tree node.
* @acpi_handle: Associated ACPI device node's namespace handle.
* @acpi_node: Associated ACPI device node.
* @devt: For creating the sysfs "dev".
* @id: device instance
* @devres_lock: Spinlock to protect the resource of the device.
Expand Down Expand Up @@ -683,7 +689,7 @@ struct device {
struct dev_archdata archdata;

struct device_node *of_node; /* associated device tree node */
void *acpi_handle; /* associated ACPI device node */
struct acpi_dev_node acpi_node; /* associated ACPI device node */

dev_t devt; /* dev_t, creates the sysfs "dev" */
u32 id; /* device instance */
Expand All @@ -704,6 +710,14 @@ static inline struct device *kobj_to_dev(struct kobject *kobj)
return container_of(kobj, struct device, kobj);
}

#ifdef CONFIG_ACPI
#define ACPI_HANDLE(dev) ((dev)->acpi_node.handle)
#define ACPI_HANDLE_SET(dev, _handle_) (dev)->acpi_node.handle = (_handle_)
#else
#define ACPI_HANDLE(dev) (NULL)
#define ACPI_HANDLE_SET(dev, _handle_) do { } while (0)
#endif

/* Get the wakeup routines, which depend on struct device */
#include <linux/pm_wakeup.h>

Expand Down

0 comments on commit 5e68dc1

Please sign in to comment.