[PATCH 02/02] ACPI: Register container drv as scan driver
From: Toshi Kani
Date: Wed Feb 06 2013 - 18:01:50 EST
Changed to register the ACPI container driver as an ACPI scan driver
so that sysfs eject of container devices works.
Fixed a typo in the acpi_container_init() prototype definition.
Removed struct acpi_container, which is no longer used.
Signed-off-by: Toshi Kani <toshi.kani@xxxxxx>
---
This patch applies on top of the patch below.
https://lkml.org/lkml/2013/2/3/318
---
drivers/acpi/container.c | 23 +++++++++++++++++++++++
drivers/acpi/internal.h | 2 +-
include/acpi/container.h | 8 --------
3 files changed, 24 insertions(+), 9 deletions(-)
diff --git a/drivers/acpi/container.c b/drivers/acpi/container.c
index bcde1f3..f493180 100644
--- a/drivers/acpi/container.c
+++ b/drivers/acpi/container.c
@@ -41,6 +41,10 @@
#define _COMPONENT ACPI_CONTAINER_COMPONENT
ACPI_MODULE_NAME("container");
+static int container_device_attach(struct acpi_device *device,
+ const struct acpi_device_id *not_used);
+static void container_device_detach(struct acpi_device *device);
+
static const struct acpi_device_id container_device_ids[] = {
{"ACPI0004", 0},
{"PNP0A05", 0},
@@ -48,6 +52,12 @@ static const struct acpi_device_id container_device_ids[] = {
{"", 0},
};
+static struct acpi_scan_handler container_device_handler = {
+ .ids = container_device_ids,
+ .attach = container_device_attach,
+ .detach = container_device_detach,
+};
+
static int is_device_present(acpi_handle handle)
{
acpi_handle temp;
@@ -66,6 +76,17 @@ static int is_device_present(acpi_handle handle)
return ((sta & ACPI_STA_DEVICE_PRESENT) == ACPI_STA_DEVICE_PRESENT);
}
+static int container_device_attach(struct acpi_device *device,
+ const struct acpi_device_id *not_used)
+{
+ return 1;
+}
+
+static void container_device_detach(struct acpi_device *device)
+{
+ return;
+}
+
static void container_notify_cb(acpi_handle handle, u32 type, void *context)
{
struct acpi_device *device = NULL;
@@ -167,4 +188,6 @@ void __init acpi_container_init(void)
acpi_walk_namespace(ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX,
acpi_container_register_notify_handler, NULL,
NULL, NULL);
+
+ acpi_scan_add_handler(&container_device_handler);
}
diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h
index 78fbf26..cbc0638 100644
--- a/drivers/acpi/internal.h
+++ b/drivers/acpi/internal.h
@@ -40,7 +40,7 @@ void acpi_memory_hotplug_init(void);
#else
static inline void acpi_memory_hotplug_init(void) {}
#endif
-#ifdef ACPI_CONTAINER
+#ifdef CONFIG_ACPI_CONTAINER
void acpi_container_init(void);
#else
static inline void acpi_container_init(void) {}
diff --git a/include/acpi/container.h b/include/acpi/container.h
index a703f14..0a464d2 100644
--- a/include/acpi/container.h
+++ b/include/acpi/container.h
@@ -1,12 +1,4 @@
#ifndef __ACPI_CONTAINER_H
#define __ACPI_CONTAINER_H
-#include <linux/kernel.h>
-
-struct acpi_container {
- acpi_handle handle;
- unsigned long sun;
- int state;
-};
-
#endif /* __ACPI_CONTAINER_H */
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/