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
 
 
 # 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
 
+++ /dev/null
-// SPDX-License-Identifier: GPL-2.0+
-/*
- *  Copyright 2013 Matthew Garrett <mjg59@srcf.ucam.org>
- */
-
-#include <linux/acpi.h>
-#include <linux/module.h>
-#include <linux/slab.h>
-
-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);
 
          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
 
 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
 
--- /dev/null
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ *  Copyright 2013 Matthew Garrett <mjg59@srcf.ucam.org>
+ */
+
+#include <linux/acpi.h>
+#include <linux/module.h>
+#include <linux/slab.h>
+
+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);