#include <linux/acpi.h>
#include <linux/module.h>
+#include <linux/platform_device.h>
#include <linux/slab.h>
MODULE_DESCRIPTION("Intel Rapid Start Technology Driver");
.store = irst_store_wakeup_time
};
-static int irst_add(struct acpi_device *acpi)
+static int irst_probe(struct platform_device *pdev)
{
+ struct acpi_device *acpi = ACPI_COMPANION(&pdev->dev);
int error;
error = device_create_file(&acpi->dev, &irst_timeout_attr);
return error;
}
-static void irst_remove(struct acpi_device *acpi)
+static void irst_remove(struct platform_device *pdev)
{
+ struct acpi_device *acpi = ACPI_COMPANION(&pdev->dev);
+
device_remove_file(&acpi->dev, &irst_wakeup_attr);
device_remove_file(&acpi->dev, &irst_timeout_attr);
}
{"", 0}
};
-static struct acpi_driver irst_driver = {
- .name = "intel_rapid_start",
- .class = "intel_rapid_start",
- .ids = irst_ids,
- .ops = {
- .add = irst_add,
- .remove = irst_remove,
+static struct platform_driver irst_driver = {
+ .probe = irst_probe,
+ .remove = irst_remove,
+ .driver = {
+ .name = "intel_rapid_start",
+ .acpi_match_table = irst_ids,
},
};
-module_acpi_driver(irst_driver);
+module_platform_driver(irst_driver);
MODULE_DEVICE_TABLE(acpi, irst_ids);