--- /dev/null
+What:          /sys/devices/.../resource_in_use
+Date:          January 2013
+Contact:       Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Description:
+               The /sys/devices/.../resource_in_use attribute is only present
+               for device objects representing ACPI power resources.
+
+               If present, it contains a number (0 or 1) representing the
+               current status of the given power resource (0 means that the
+               resource is not in use and therefore it has been turned off).
+
+               This attribute is read-only.
 
                              Power Resource Management
    -------------------------------------------------------------------------- */
 
+static inline
+struct acpi_power_resource *to_power_resource(struct acpi_device *device)
+{
+       return container_of(device, struct acpi_power_resource, device);
+}
+
 static struct acpi_power_resource *acpi_power_get_context(acpi_handle handle)
 {
        struct acpi_device *device;
        if (acpi_bus_get_device(handle, &device))
                return NULL;
 
-       return container_of(device, struct acpi_power_resource, device);
+       return to_power_resource(device);
 }
 
 static int acpi_power_resources_list_add(acpi_handle handle,
        kfree(resource);
 }
 
+static ssize_t acpi_power_in_use_show(struct device *dev,
+                                     struct device_attribute *attr,
+                                     char *buf) {
+       struct acpi_power_resource *resource;
+
+       resource = to_power_resource(to_acpi_device(dev));
+       return sprintf(buf, "%u\n", !!resource->ref_count);
+}
+static DEVICE_ATTR(resource_in_use, 0444, acpi_power_in_use_show, NULL);
+
+static void acpi_power_sysfs_remove(struct acpi_device *device)
+{
+       device_remove_file(&device->dev, &dev_attr_resource_in_use);
+}
+
 int acpi_add_power_resource(acpi_handle handle)
 {
        struct acpi_power_resource *resource;
        if (result)
                goto err;
 
+       if (!device_create_file(&device->dev, &dev_attr_resource_in_use))
+               device->remove = acpi_power_sysfs_remove;
+
        mutex_lock(&power_resource_list_lock);
        list_add(&resource->list_node, &acpi_power_resource_list);
        mutex_unlock(&power_resource_list_lock);