Ver Fonte

thermal: add the support for building the generic thermal as a module

Build the generic thermal driver as module "thermal_sys".

Make ACPI thermal, video, processor and fan SELECT the generic
thermal driver, as these drivers rely on it to build the sysfs I/F.

Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Acked-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Len Brown <len.brown@intel.com>
Zhang Rui há 17 anos atrás
pai
commit
63c4ec905d

+ 3 - 0
drivers/acpi/Kconfig

@@ -140,6 +140,7 @@ config ACPI_VIDEO
 	tristate "Video"
 	tristate "Video"
 	depends on X86 && BACKLIGHT_CLASS_DEVICE && VIDEO_OUTPUT_CONTROL
 	depends on X86 && BACKLIGHT_CLASS_DEVICE && VIDEO_OUTPUT_CONTROL
 	depends on INPUT
 	depends on INPUT
+	select THERMAL
 	help
 	help
 	  This driver implement the ACPI Extensions For Display Adapters
 	  This driver implement the ACPI Extensions For Display Adapters
 	  for integrated graphics devices on motherboard, as specified in
 	  for integrated graphics devices on motherboard, as specified in
@@ -151,6 +152,7 @@ config ACPI_VIDEO
 
 
 config ACPI_FAN
 config ACPI_FAN
 	tristate "Fan"
 	tristate "Fan"
+	select THERMAL
 	default y
 	default y
 	help
 	help
 	  This driver adds support for ACPI fan devices, allowing user-mode 
 	  This driver adds support for ACPI fan devices, allowing user-mode 
@@ -172,6 +174,7 @@ config ACPI_BAY
 
 
 config ACPI_PROCESSOR
 config ACPI_PROCESSOR
 	tristate "Processor"
 	tristate "Processor"
+	select THERMAL
 	default y
 	default y
 	help
 	help
 	  This driver installs ACPI as the idle handler for Linux, and uses
 	  This driver installs ACPI as the idle handler for Linux, and uses

+ 1 - 0
drivers/misc/Kconfig

@@ -344,6 +344,7 @@ config ATMEL_SSC
 config INTEL_MENLOW
 config INTEL_MENLOW
 	tristate "Thermal Management driver for Intel menlow platform"
 	tristate "Thermal Management driver for Intel menlow platform"
 	depends on ACPI_THERMAL
 	depends on ACPI_THERMAL
+	select THERMAL
 	depends on X86
 	depends on X86
 	---help---
 	---help---
 	  ACPI thermal management enhancement driver on
 	  ACPI thermal management enhancement driver on

+ 2 - 2
drivers/thermal/Kconfig

@@ -3,7 +3,7 @@
 #
 #
 
 
 menuconfig THERMAL
 menuconfig THERMAL
-	bool "Generic Thermal sysfs driver"
+	tristate "Generic Thermal sysfs driver"
 	help
 	help
 	  Generic Thermal Sysfs driver offers a generic mechanism for
 	  Generic Thermal Sysfs driver offers a generic mechanism for
 	  thermal management. Usually it's made up of one or more thermal
 	  thermal management. Usually it's made up of one or more thermal
@@ -11,4 +11,4 @@ menuconfig THERMAL
 	  Each thermal zone contains its own temperature, trip points,
 	  Each thermal zone contains its own temperature, trip points,
 	  cooling devices.
 	  cooling devices.
 	  All platforms with ACPI thermal support can use this driver.
 	  All platforms with ACPI thermal support can use this driver.
-	  If you want this support, you should say Y here.
+	  If you want this support, you should say Y or M here.

+ 2 - 1
drivers/thermal/Makefile

@@ -2,4 +2,5 @@
 # Makefile for sensor chip drivers.
 # Makefile for sensor chip drivers.
 #
 #
 
 
-obj-$(CONFIG_THERMAL)		+= thermal.o
+thermal_sys-objs	+= thermal.o
+obj-$(CONFIG_THERMAL)		+= thermal_sys.o

+ 1 - 1
drivers/thermal/thermal.c

@@ -31,7 +31,7 @@
 #include <linux/thermal.h>
 #include <linux/thermal.h>
 #include <linux/spinlock.h>
 #include <linux/spinlock.h>
 
 
-MODULE_AUTHOR("Zhang Rui")
+MODULE_AUTHOR("Zhang Rui");
 MODULE_DESCRIPTION("Generic thermal management sysfs support");
 MODULE_DESCRIPTION("Generic thermal management sysfs support");
 MODULE_LICENSE("GPL");
 MODULE_LICENSE("GPL");
 
 

+ 0 - 14
include/linux/thermal.h

@@ -88,24 +88,10 @@ int thermal_zone_bind_cooling_device(struct thermal_zone_device *, int,
 				     struct thermal_cooling_device *);
 				     struct thermal_cooling_device *);
 int thermal_zone_unbind_cooling_device(struct thermal_zone_device *, int,
 int thermal_zone_unbind_cooling_device(struct thermal_zone_device *, int,
 				       struct thermal_cooling_device *);
 				       struct thermal_cooling_device *);
-
-#ifdef	CONFIG_THERMAL
 struct thermal_cooling_device *thermal_cooling_device_register(char *, void *,
 struct thermal_cooling_device *thermal_cooling_device_register(char *, void *,
 							       struct
 							       struct
 							       thermal_cooling_device_ops
 							       thermal_cooling_device_ops
 							       *);
 							       *);
 void thermal_cooling_device_unregister(struct thermal_cooling_device *);
 void thermal_cooling_device_unregister(struct thermal_cooling_device *);
-#else
-static inline struct thermal_cooling_device
-*thermal_cooling_device_register(char *c, void *v,
-				 struct thermal_cooling_device_ops *t)
-{
-	return NULL;
-}
-static inline
-    void thermal_cooling_device_unregister(struct thermal_cooling_device *t)
-{
-};
-#endif
 
 
 #endif /* __THERMAL_H__ */
 #endif /* __THERMAL_H__ */