Jim found that the current kernel may trigger a build error with some
config: drivers/built-in.o: In function `int3406_thermal_probe':
int3406_thermal.c:(.text+0x1d10b8): undefined reference to
`acpi_video_get_levels'. The problem happens when CONFIG_THERMAL=y and
CONFIG_ACPI_VIDEO=m. Solve the problem by separating a kernel config for
int3406 thermal driver and add dependency on ACPI video for it.

Reported-by: Jim Davis <jim.ep...@gmail.com>
Signed-off-by: Aaron Lu <aaron...@intel.com>
---
v2: v1 still has a problem so please ignore the last patch.

 drivers/thermal/Kconfig                  | 22 +++------------------
 drivers/thermal/int340x_thermal/Kconfig  | 34 ++++++++++++++++++++++++++++++++
 drivers/thermal/int340x_thermal/Makefile |  2 +-
 3 files changed, 38 insertions(+), 20 deletions(-)
 create mode 100644 drivers/thermal/int340x_thermal/Kconfig

diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig
index 9b012ff65220..3bca14d86482 100644
--- a/drivers/thermal/Kconfig
+++ b/drivers/thermal/Kconfig
@@ -229,25 +229,9 @@ config INTEL_SOC_DTS_THERMAL
          notification methods.The other trip is a critical trip point, which
          was set by the driver based on the TJ MAX temperature.
 
-config INT340X_THERMAL
-       tristate "ACPI INT340X thermal drivers"
-       depends on X86 && ACPI
-       select THERMAL_GOV_USER_SPACE
-       select ACPI_THERMAL_REL
-       select ACPI_FAN
-       help
-         Newer laptops and tablets that use ACPI may have thermal sensors and
-         other devices with thermal control capabilities outside the core
-         CPU/SOC, for thermal safety reasons.
-         They are exposed for the OS to use via the INT3400 ACPI device object
-         as the master, and INT3401~INT340B ACPI device objects as the slaves.
-         Enable this to expose the temperature information and cooling ability
-         from these objects to userspace via the normal thermal framework.
-         This means that a wide range of applications and GUI widgets can show
-         the information to the user or use this information for making
-         decisions. For example, the Intel Thermal Daemon can use this
-         information to allow the user to select his laptop to run without
-         turning on the fans.
+menu "ACPI INT340X thermal drivers"
+source drivers/thermal/int340x_thermal/Kconfig
+endmenu
 
 config ACPI_THERMAL_REL
        tristate
diff --git a/drivers/thermal/int340x_thermal/Kconfig 
b/drivers/thermal/int340x_thermal/Kconfig
new file mode 100644
index 000000000000..9a58520d24a4
--- /dev/null
+++ b/drivers/thermal/int340x_thermal/Kconfig
@@ -0,0 +1,34 @@
+#
+# ACPI INT340x thermal drivers configuration
+#
+
+config INT340X_THERMAL
+       tristate "ACPI INT340X thermal drivers"
+       depends on X86 && ACPI
+       select THERMAL_GOV_USER_SPACE
+       select ACPI_THERMAL_REL
+       select ACPI_FAN
+       help
+         Newer laptops and tablets that use ACPI may have thermal sensors and
+         other devices with thermal control capabilities outside the core
+         CPU/SOC, for thermal safety reasons.
+         They are exposed for the OS to use via the INT3400 ACPI device object
+         as the master, and INT3401~INT340B ACPI device objects as the slaves.
+         Enable this to expose the temperature information and cooling ability
+         from these objects to userspace via the normal thermal framework.
+         This means that a wide range of applications and GUI widgets can show
+         the information to the user or use this information for making
+         decisions. For example, the Intel Thermal Daemon can use this
+         information to allow the user to select his laptop to run without
+         turning on the fans.
+
+config INT3406_THERMAL
+       tristate "ACPI INT3406 display thermal driver"
+       depends on INT340X_THERMAL
+       depends on ACPI_VIDEO
+       help
+         The display thermal device represents the LED/LCD display panel
+         that may or may not include touch support. The main function of
+         the display thermal device is to allow control of the display
+         brightness in order to address a thermal condition or to reduce
+         power consumed by display device.
diff --git a/drivers/thermal/int340x_thermal/Makefile 
b/drivers/thermal/int340x_thermal/Makefile
index e3e2eb20da94..a9d0429be412 100644
--- a/drivers/thermal/int340x_thermal/Makefile
+++ b/drivers/thermal/int340x_thermal/Makefile
@@ -1,5 +1,5 @@
 obj-$(CONFIG_INT340X_THERMAL)  += int3400_thermal.o
 obj-$(CONFIG_INT340X_THERMAL)  += int3402_thermal.o
 obj-$(CONFIG_INT340X_THERMAL)  += int3403_thermal.o
-obj-$(CONFIG_INT340X_THERMAL)  += int3406_thermal.o
+obj-$(CONFIG_INT3406_THERMAL)  += int3406_thermal.o
 obj-$(CONFIG_ACPI_THERMAL_REL) += acpi_thermal_rel.o
-- 
1.9.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to