Commit fe1cc4be authored by David Hardeman's avatar David Hardeman Committed by james toy

Reintroduce the .shutdown method which is used by the winbond-cir driver.

I didn't want to call wbcir_shutdown from wbcir_remove since wbcir_remove
is called on rmmod and the wbcir_shutdown method programs the chip so that
wake-on-a-specific-ir-command is enabled (and I imagine that people would
expect rmmod to disable the hardware completely).

I think this single user does have a real dependency because of its
wake-from-poweroff and wake-from-suspend capability.
Signed-off-by: default avatarDavid Hardeman <david@hardeman.nu>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: Bjorn Helgaas <bjorn.helgaas@hp.com>
Cc: Len Brown <lenb@kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent e8bee3ad
......@@ -427,10 +427,22 @@ static int acpi_device_remove(struct device * dev)
return 0;
}
static void acpi_device_shutdown(struct device *dev)
{
struct acpi_device *acpi_dev = to_acpi_device(dev);
struct acpi_driver *acpi_drv = acpi_dev->driver;
if (acpi_drv && acpi_drv->ops.shutdown)
acpi_drv->ops.shutdown(acpi_dev);
return ;
}
struct bus_type acpi_bus_type = {
.name = "acpi",
.suspend = acpi_device_suspend,
.resume = acpi_device_resume,
.shutdown = acpi_device_shutdown,
.match = acpi_bus_match,
.probe = acpi_device_probe,
.remove = acpi_device_remove,
......
......@@ -92,6 +92,7 @@ typedef int (*acpi_op_resume) (struct acpi_device * device);
typedef int (*acpi_op_bind) (struct acpi_device * device);
typedef int (*acpi_op_unbind) (struct acpi_device * device);
typedef void (*acpi_op_notify) (struct acpi_device * device, u32 event);
typedef int (*acpi_op_shutdown) (struct acpi_device *device);
struct acpi_bus_ops {
u32 acpi_op_add:1;
......@@ -107,6 +108,7 @@ struct acpi_device_ops {
acpi_op_bind bind;
acpi_op_unbind unbind;
acpi_op_notify notify;
acpi_op_shutdown shutdown;
};
#define ACPI_DRIVER_ALL_NOTIFY_EVENTS 0x1 /* system AND device events */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment