|
@@ -57,6 +57,7 @@ MODULE_LICENSE("GPL");
|
|
|
|
|
|
static int acpi_memory_device_add(struct acpi_device *device);
|
|
|
static int acpi_memory_device_remove(struct acpi_device *device, int type);
|
|
|
+static int acpi_memory_device_start(struct acpi_device *device);
|
|
|
|
|
|
static struct acpi_driver acpi_memory_device_driver = {
|
|
|
.name = ACPI_MEMORY_DEVICE_DRIVER_NAME,
|
|
@@ -65,6 +66,7 @@ static struct acpi_driver acpi_memory_device_driver = {
|
|
|
.ops = {
|
|
|
.add = acpi_memory_device_add,
|
|
|
.remove = acpi_memory_device_remove,
|
|
|
+ .start = acpi_memory_device_start,
|
|
|
},
|
|
|
};
|
|
|
|
|
@@ -433,6 +435,25 @@ static int acpi_memory_device_remove(struct acpi_device *device, int type)
|
|
|
return_VALUE(0);
|
|
|
}
|
|
|
|
|
|
+static int acpi_memory_device_start (struct acpi_device *device)
|
|
|
+{
|
|
|
+ struct acpi_memory_device *mem_device;
|
|
|
+ int result = 0;
|
|
|
+
|
|
|
+ ACPI_FUNCTION_TRACE("acpi_memory_device_start");
|
|
|
+
|
|
|
+ mem_device = acpi_driver_data(device);
|
|
|
+
|
|
|
+ if (!acpi_memory_check_device(mem_device)) {
|
|
|
+ /* call add_memory func */
|
|
|
+ result = acpi_memory_enable_device(mem_device);
|
|
|
+ if (result)
|
|
|
+ ACPI_DEBUG_PRINT((ACPI_DB_ERROR,
|
|
|
+ "Error in acpi_memory_enable_device\n"));
|
|
|
+ }
|
|
|
+ return_VALUE(result);
|
|
|
+}
|
|
|
+
|
|
|
/*
|
|
|
* Helper function to check for memory device
|
|
|
*/
|