summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorZhang Rui <rui.zhang@intel.com>2015-01-04 07:24:24 +0100
committerZhang Rui <rui.zhang@intel.com>2015-01-06 01:17:14 +0100
commit014d9d5d0cc1da79bbe48fbc5e1068c5616238d2 (patch)
tree380170426e518027805c3f04ffb9f6423b872afa /drivers
parentACPI/int340x_thermal: enumerate INT340X devices even if they're not in _ART/_TRT (diff)
downloadlinux-014d9d5d0cc1da79bbe48fbc5e1068c5616238d2.tar.xz
linux-014d9d5d0cc1da79bbe48fbc5e1068c5616238d2.zip
ACPI/int340x_thermal: enumerate INT3401 for Intel SoC DTS thermal driver
Intel SoC DTS thermal driver on Baytrail platform uses IRQ 86 for critical overheating notification. But this IRQ 86 is described in the _CRS control method of INT3401 device, thus we should enumerate INT3401 to set the IRQ descriptor when Intel SoC DTS thermal driver is built. Signed-off-by: Zhang Rui <rui.zhang@intel.com> Tested-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/acpi/int340x_thermal.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/acpi/int340x_thermal.c b/drivers/acpi/int340x_thermal.c
index dc3553dd59de..9dcf83682e36 100644
--- a/drivers/acpi/int340x_thermal.c
+++ b/drivers/acpi/int340x_thermal.c
@@ -14,9 +14,10 @@
#include "internal.h"
+#define INT3401_DEVICE 0X01
static const struct acpi_device_id int340x_thermal_device_ids[] = {
{"INT3400"},
- {"INT3401"},
+ {"INT3401", INT3401_DEVICE},
{"INT3402"},
{"INT3403"},
{"INT3404"},
@@ -34,6 +35,10 @@ static int int340x_thermal_handler_attach(struct acpi_device *adev,
{
#if defined(CONFIG_INT340X_THERMAL) || defined(CONFIG_INT340X_THERMAL_MODULE)
acpi_create_platform_device(adev);
+#elif defined(INTEL_SOC_DTS_THERMAL) || defined(INTEL_SOC_DTS_THERMAL_MODULE)
+ /* Intel SoC DTS thermal driver needs INT3401 to set IRQ descriptor */
+ if (id->driver_data == INT3401_DEVICE)
+ acpi_create_platform_device(adev);
#endif
return 1;
}