From e6596c22744e7c3058bc3ef843d1a6c20632e27f Mon Sep 17 00:00:00 2001 From: Kate Hsuan Date: Fri, 20 Aug 2021 14:04:47 +0300 Subject: platform/x86: intel-rst: Move to intel sub-directory Move Intel RST driver to intel sub-directory to improve readability and rename it from intel-rst.c to rst.c. Signed-off-by: Kate Hsuan Reviewed-by: Hans de Goede Signed-off-by: Andy Shevchenko Link: https://lore.kernel.org/r/20210820110458.73018-10-andriy.shevchenko@linux.intel.com Signed-off-by: Hans de Goede --- drivers/platform/x86/Kconfig | 12 --- drivers/platform/x86/Makefile | 1 - drivers/platform/x86/intel-rst.c | 142 ------------------------------------ drivers/platform/x86/intel/Kconfig | 12 +++ drivers/platform/x86/intel/Makefile | 4 + drivers/platform/x86/intel/rst.c | 142 ++++++++++++++++++++++++++++++++++++ 6 files changed, 158 insertions(+), 155 deletions(-) delete mode 100644 drivers/platform/x86/intel-rst.c create mode 100644 drivers/platform/x86/intel/rst.c (limited to 'drivers/platform') diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig index 4e42ebac8892..a78678dede17 100644 --- a/drivers/platform/x86/Kconfig +++ b/drivers/platform/x86/Kconfig @@ -1110,18 +1110,6 @@ config INTEL_IPS functionality. If in doubt, say Y here; it will only load on supported platforms. -config INTEL_RST - tristate "Intel Rapid Start Technology Driver" - depends on ACPI - help - This driver provides support for modifying parameters on systems - equipped with Intel's Rapid Start Technology. When put in an ACPI - sleep state, these devices will wake after either a configured - timeout or when the system battery reaches a critical state, - automatically copying memory contents to disk. On resume, the - firmware will copy the memory contents back to RAM and resume the OS - as usual. - config INTEL_SMARTCONNECT tristate "Intel Smart Connect disabling driver" depends on ACPI diff --git a/drivers/platform/x86/Makefile b/drivers/platform/x86/Makefile index bde20c13ceac..2d8b2528b0ab 100644 --- a/drivers/platform/x86/Makefile +++ b/drivers/platform/x86/Makefile @@ -120,7 +120,6 @@ obj-$(CONFIG_WIRELESS_HOTKEY) += wireless-hotkey.o # Intel uncore drivers obj-$(CONFIG_INTEL_IPS) += intel_ips.o -obj-$(CONFIG_INTEL_RST) += intel-rst.o obj-$(CONFIG_INTEL_SMARTCONNECT) += intel-smartconnect.o obj-$(CONFIG_INTEL_SPEED_SELECT_INTERFACE) += intel_speed_select_if/ obj-$(CONFIG_INTEL_TURBO_MAX_3) += intel_turbo_max_3.o diff --git a/drivers/platform/x86/intel-rst.c b/drivers/platform/x86/intel-rst.c deleted file mode 100644 index 3b81cb896fed..000000000000 --- a/drivers/platform/x86/intel-rst.c +++ /dev/null @@ -1,142 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0+ -/* - * Copyright 2013 Matthew Garrett - */ - -#include -#include -#include - -MODULE_LICENSE("GPL"); - -static ssize_t irst_show_wakeup_events(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - struct acpi_device *acpi; - unsigned long long value; - acpi_status status; - - acpi = to_acpi_device(dev); - - status = acpi_evaluate_integer(acpi->handle, "GFFS", NULL, &value); - if (ACPI_FAILURE(status)) - return -EINVAL; - - return sprintf(buf, "%lld\n", value); -} - -static ssize_t irst_store_wakeup_events(struct device *dev, - struct device_attribute *attr, - const char *buf, size_t count) -{ - struct acpi_device *acpi; - acpi_status status; - unsigned long value; - int error; - - acpi = to_acpi_device(dev); - - error = kstrtoul(buf, 0, &value); - if (error) - return error; - - status = acpi_execute_simple_method(acpi->handle, "SFFS", value); - if (ACPI_FAILURE(status)) - return -EINVAL; - - return count; -} - -static struct device_attribute irst_wakeup_attr = { - .attr = { .name = "wakeup_events", .mode = 0600 }, - .show = irst_show_wakeup_events, - .store = irst_store_wakeup_events -}; - -static ssize_t irst_show_wakeup_time(struct device *dev, - struct device_attribute *attr, char *buf) -{ - struct acpi_device *acpi; - unsigned long long value; - acpi_status status; - - acpi = to_acpi_device(dev); - - status = acpi_evaluate_integer(acpi->handle, "GFTV", NULL, &value); - if (ACPI_FAILURE(status)) - return -EINVAL; - - return sprintf(buf, "%lld\n", value); -} - -static ssize_t irst_store_wakeup_time(struct device *dev, - struct device_attribute *attr, - const char *buf, size_t count) -{ - struct acpi_device *acpi; - acpi_status status; - unsigned long value; - int error; - - acpi = to_acpi_device(dev); - - error = kstrtoul(buf, 0, &value); - if (error) - return error; - - status = acpi_execute_simple_method(acpi->handle, "SFTV", value); - if (ACPI_FAILURE(status)) - return -EINVAL; - - return count; -} - -static struct device_attribute irst_timeout_attr = { - .attr = { .name = "wakeup_time", .mode = 0600 }, - .show = irst_show_wakeup_time, - .store = irst_store_wakeup_time -}; - -static int irst_add(struct acpi_device *acpi) -{ - int error; - - error = device_create_file(&acpi->dev, &irst_timeout_attr); - if (unlikely(error)) - return error; - - error = device_create_file(&acpi->dev, &irst_wakeup_attr); - if (unlikely(error)) - device_remove_file(&acpi->dev, &irst_timeout_attr); - - return error; -} - -static int irst_remove(struct acpi_device *acpi) -{ - device_remove_file(&acpi->dev, &irst_wakeup_attr); - device_remove_file(&acpi->dev, &irst_timeout_attr); - - return 0; -} - -static const struct acpi_device_id irst_ids[] = { - {"INT3392", 0}, - {"", 0} -}; - -static struct acpi_driver irst_driver = { - .owner = THIS_MODULE, - .name = "intel_rapid_start", - .class = "intel_rapid_start", - .ids = irst_ids, - .ops = { - .add = irst_add, - .remove = irst_remove, - }, -}; - -module_acpi_driver(irst_driver); - -MODULE_DEVICE_TABLE(acpi, irst_ids); diff --git a/drivers/platform/x86/intel/Kconfig b/drivers/platform/x86/intel/Kconfig index 379d9e425cc7..fb1d1175fd09 100644 --- a/drivers/platform/x86/intel/Kconfig +++ b/drivers/platform/x86/intel/Kconfig @@ -61,4 +61,16 @@ config INTEL_PUNIT_IPC This driver provides support for Intel P-Unit Mailbox IPC mechanism, which is used to bridge the communications between kernel and P-Unit. +config INTEL_RST + tristate "Intel Rapid Start Technology Driver" + depends on ACPI + help + This driver provides support for modifying parameters on systems + equipped with Intel's Rapid Start Technology. When put in an ACPI + sleep state, these devices will wake after either a configured + timeout or when the system battery reaches a critical state, + automatically copying memory contents to disk. On resume, the + firmware will copy the memory contents back to RAM and resume the OS + as usual. + endif # X86_PLATFORM_DRIVERS_INTEL diff --git a/drivers/platform/x86/intel/Makefile b/drivers/platform/x86/intel/Makefile index e8c2b1249f87..d0ab3202c1ac 100644 --- a/drivers/platform/x86/intel/Makefile +++ b/drivers/platform/x86/intel/Makefile @@ -20,3 +20,7 @@ intel_mrfld_pwrbtn-y := mrfld_pwrbtn.o obj-$(CONFIG_INTEL_MRFLD_PWRBTN) += intel_mrfld_pwrbtn.o intel_punit_ipc-y := punit_ipc.o obj-$(CONFIG_INTEL_PUNIT_IPC) += intel_punit_ipc.o + +# Intel Uncore drivers +intel-rst-y := rst.o +obj-$(CONFIG_INTEL_RST) += intel-rst.o diff --git a/drivers/platform/x86/intel/rst.c b/drivers/platform/x86/intel/rst.c new file mode 100644 index 000000000000..3b81cb896fed --- /dev/null +++ b/drivers/platform/x86/intel/rst.c @@ -0,0 +1,142 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2013 Matthew Garrett + */ + +#include +#include +#include + +MODULE_LICENSE("GPL"); + +static ssize_t irst_show_wakeup_events(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct acpi_device *acpi; + unsigned long long value; + acpi_status status; + + acpi = to_acpi_device(dev); + + status = acpi_evaluate_integer(acpi->handle, "GFFS", NULL, &value); + if (ACPI_FAILURE(status)) + return -EINVAL; + + return sprintf(buf, "%lld\n", value); +} + +static ssize_t irst_store_wakeup_events(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct acpi_device *acpi; + acpi_status status; + unsigned long value; + int error; + + acpi = to_acpi_device(dev); + + error = kstrtoul(buf, 0, &value); + if (error) + return error; + + status = acpi_execute_simple_method(acpi->handle, "SFFS", value); + if (ACPI_FAILURE(status)) + return -EINVAL; + + return count; +} + +static struct device_attribute irst_wakeup_attr = { + .attr = { .name = "wakeup_events", .mode = 0600 }, + .show = irst_show_wakeup_events, + .store = irst_store_wakeup_events +}; + +static ssize_t irst_show_wakeup_time(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct acpi_device *acpi; + unsigned long long value; + acpi_status status; + + acpi = to_acpi_device(dev); + + status = acpi_evaluate_integer(acpi->handle, "GFTV", NULL, &value); + if (ACPI_FAILURE(status)) + return -EINVAL; + + return sprintf(buf, "%lld\n", value); +} + +static ssize_t irst_store_wakeup_time(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct acpi_device *acpi; + acpi_status status; + unsigned long value; + int error; + + acpi = to_acpi_device(dev); + + error = kstrtoul(buf, 0, &value); + if (error) + return error; + + status = acpi_execute_simple_method(acpi->handle, "SFTV", value); + if (ACPI_FAILURE(status)) + return -EINVAL; + + return count; +} + +static struct device_attribute irst_timeout_attr = { + .attr = { .name = "wakeup_time", .mode = 0600 }, + .show = irst_show_wakeup_time, + .store = irst_store_wakeup_time +}; + +static int irst_add(struct acpi_device *acpi) +{ + int error; + + error = device_create_file(&acpi->dev, &irst_timeout_attr); + if (unlikely(error)) + return error; + + error = device_create_file(&acpi->dev, &irst_wakeup_attr); + if (unlikely(error)) + device_remove_file(&acpi->dev, &irst_timeout_attr); + + return error; +} + +static int irst_remove(struct acpi_device *acpi) +{ + device_remove_file(&acpi->dev, &irst_wakeup_attr); + device_remove_file(&acpi->dev, &irst_timeout_attr); + + return 0; +} + +static const struct acpi_device_id irst_ids[] = { + {"INT3392", 0}, + {"", 0} +}; + +static struct acpi_driver irst_driver = { + .owner = THIS_MODULE, + .name = "intel_rapid_start", + .class = "intel_rapid_start", + .ids = irst_ids, + .ops = { + .add = irst_add, + .remove = irst_remove, + }, +}; + +module_acpi_driver(irst_driver); + +MODULE_DEVICE_TABLE(acpi, irst_ids); -- cgit v1.2.3