path: root/drivers/acpi/internal.h
diff options
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>2013-03-06 23:46:20 +0100
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2013-03-21 22:44:38 +0100
commitf58b082aed43400c03e53beacc50a9f9eb23ac91 (patch)
tree044ce964e1a619b33181f1d4c80504e7d6219844 /drivers/acpi/internal.h
parentf6161aa153581da4a3867a2d1a7caf4be19b6ec9 (diff)
ACPI / scan: Add special handler for Intel Lynxpoint LPSS devices
Devices on the Intel Lynxpoint Low Power Subsystem (LPSS) have some common features that aren't shared with any other platform devices, including the clock and LTR (Latency Tolerance Reporting) registers. It is better to handle those features in common code than to bother device drivers with doing that (I/O functionality-wise the LPSS devices are generally compatible with other devices that don't have those special registers and may be handled by the same drivers). The clock registers of the LPSS devices are now taken care of by the special clk-x86-lpss driver, but the MMIO mappings used for accessing those registers can also be used for accessing the LTR registers on those devices (LTR support for the Lynxpoint LPSS is going to be added by a subsequent patch). Thus it is convenient to add a special ACPI scan handler for the Lynxpoint LPSS devices that will create the MMIO mappings for accessing the clock (and LTR in the future) registers and will register the LPSS devices' clocks, so the clk-x86-lpss driver will only need to take care of the main Lynxpoint LPSS clock. Introduce a special ACPI scan handler for Intel Lynxpoint LPSS devices as described above. This also reduces overhead related to browsing the ACPI namespace in search of the LPSS devices before the registration of their clocks, removes some LPSS-specific (and somewhat ugly) code from acpi_platform.c and shrinks the overall code size slightly. Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Acked-by: Mike Turquette <mturquette@linaro.org>
Diffstat (limited to 'drivers/acpi/internal.h')
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h
index 3c94a732b4b3..e227819217fb 100644
--- a/drivers/acpi/internal.h
+++ b/drivers/acpi/internal.h
@@ -48,6 +48,11 @@ int acpi_debugfs_init(void);
static inline void acpi_debugfs_init(void) { return; }
+void acpi_lpss_init(void);
+static inline void acpi_lpss_init(void) {}
/* --------------------------------------------------------------------------
Device Node Initialization / Removal
@@ -131,4 +136,7 @@ static inline void suspend_nvs_restore(void) {}
-------------------------------------------------------------------------- */
struct platform_device;
+int acpi_create_platform_device(struct acpi_device *adev,
+ const struct acpi_device_id *id);
#endif /* _ACPI_INTERNAL_H_ */