ACPI patches for 2.6.26-rc8
Subsystems (3)
Len Brown
reviewerThese patches are on the acpi release branch.
I've sent a pull request for Linux to snatch them
into 2.6.26 when he returns.
thanks,
-Len
Len Brown
reviewerPATCH 1/3 thermal: Create CONFIG_THERMAL_HWMON=n
From: Rene Herman <[email protected]>
A bug in libsensors <= 2.10.6 is exposed when this new hwmon I/F is enabled.
Create CONFIG_THERMAL_HWMON=n
until some time after libsensors 2.10.7 ships so those users can run the latest kernel.
libsensors 3.x is already fixed -- those users can use CONFIG_THERMAL_HWMON=y now.
--- Documentation/feature-removal-schedule.txt | 9 +++++++++ drivers/thermal/Kconfig | 9 +++++++++ drivers/thermal/thermal_sys.c | 4 ++-- include/linux/thermal.h | 6 ++---- 4 files changed, 22 insertions(+), 6 deletions(-)
Documentation/feature-removal-schedule.txt +9 -0
@@ -312,3 +312,12 @@ When: 2.6.26 Why: Implementation became generic; users should now include linux/semaphore.h instead. Who: Matthew Wilcox <[email protected]> + +--------------------------- + +What: CONFIG_THERMAL_HWMON +When: January 2009 +Why: This option was introduced just to allow older lm-sensors userspace + to keep working over the upgrade to 2.6.26. At the scheduled time of + removal fixed lm-sensors (2.x or 3.x) should be readily available. +Who: Rene Herman <[email protected]>
drivers/thermal/Kconfig +9 -0
@@ -12,3 +12,12 @@ menuconfig THERMAL cooling devices. All platforms with ACPI thermal support can use this driver. If you want this support, you should say Y or M here. + +config THERMAL_HWMON + bool "Hardware monitoring support" + depends on HWMON=y || HWMON=THERMAL + help + The generic thermal sysfs driver's hardware monitoring support + requires a 2.10.7/3.0.2 or later lm-sensors userspace. + + Say Y if your user-space is new enough.
drivers/thermal/thermal_sys.c +2 -2
@@ -295,8 +295,8 @@ thermal_cooling_device_trip_point_show(struct device *dev,/* Device management */ -#if defined(CONFIG_HWMON ) || \ - (defined(CONFIG_HWMON_MODULE ) && defined(CONFIG_THERMAL_MODULE )) +#if defined(CONFIG_THERMAL_HWMON ) +/* hwmon sys I/F */ #include <linux/hwmon.h> static LIST_HEAD (thermal_hwmon_list);
include/linux/thermal.h +2 -4
@@ -66,8 +66,7 @@ struct thermal_cooling_device { ((long)t-2732+5)/10 : ((long)t-2732-5)/10)#define CELSIUS_TO_KELVIN (t) ((t)*10+2732) -#if defined(CONFIG_HWMON) || \ - (defined(CONFIG_HWMON_MODULE) && defined(CONFIG_THERMAL_MODULE)) +#if defined(CONFIG_THERMAL_HWMON) /* thermal zone devices with the same type share one hwmon device */ struct thermal_hwmon_device { char type[THERMAL_NAME_LENGTH];
@@ -94,8 +93,7 @@ struct thermal_zone_device {struct idr idr;struct mutex lock;/* protect cooling devices list */ struct list_head node; -#if defined(CONFIG_HWMON ) || \ - (defined(CONFIG_HWMON_MODULE ) && defined(CONFIG_THERMAL_MODULE )) +#if defined(CONFIG_THERMAL_HWMON )struct list_head hwmon_node;struct thermal_hwmon_device *hwmon;struct thermal_hwmon_attr temp_input;/* hwmon sys attr */
Signature · 1 line
1.5.6.1.89.gd544
Len Brown
reviewerPATCH 2/3 ACPI: don't walk tables if ACPI was disabled
In reply to Len BrownFrom: Vegard Nossum <[email protected]>
Quoted 7 lines · Ingo Molnar
-tip auto-testing started triggering this spinlock corruption message yesterday:
[ 3.976213] calling acpi_rtc_init+0x0/0xd3 [ 3.980213] ACPI Exception (utmutex-0263): AE_BAD_PARAMETER, Thread F7C50000 could not acquire Mutex [3] [20080321] [ 3.992213] BUG: spinlock bad magic on CPU#0, swapper/1 [ 3.992213] lock: c2508dc4, .magic: 00000000, .owner: swapper/1, .owner_cpu: 0
This is apparently because some parts of ACPI, including mutexes, are not initialized when acpi=off is passed to the kernel.
--- drivers/acpi/glue.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)
drivers/acpi/glue.c +3 -0
@@ -333,6 +333,9 @@ static int __init acpi_rtc_init(void) {struct device *dev =get_rtc_dev (); +if (acpi_disabled) +return 0 ; +if (dev) {rtc_wake_setup (); rtc_info.wake_on = rtc_wake_on;
Signature · 1 line
1.5.6.1.89.gd544
Len Brown
reviewerPATCH 3/3 dock: bay: Don't call acpi_walk_namespace() when ACPI is disabled.
In reply to Len BrownFrom: Len Brown <[email protected]>
--- drivers/acpi/bay.c | 3 +++ drivers/acpi/dock.c | 3 +++ 2 files changed, 6 insertions(+), 0 deletions(-)
drivers/acpi/bay.c +3 -0
@@ -377,6 +377,9 @@ static int __init bay_init(void)INIT_LIST_HEAD (&drive_bays); +if (acpi_disabled) +return -ENODEV ; +/* look for dockable drive bays */ acpi_walk_namespace (ACPI_TYPE_DEVICE ,ACPI_ROOT_OBJECT ,ACPI_UINT32_MAX , find_bay, &bays,NULL );
drivers/acpi/dock.c +3 -0
@@ -917,6 +917,9 @@ static int __init dock_init(void) dock_station =NULL ; +if (acpi_disabled) +return 0 ; +/* look for a dock station */ acpi_walk_namespace (ACPI_TYPE_DEVICE ,ACPI_ROOT_OBJECT ,ACPI_UINT32_MAX , find_dock, &num,NULL );
Signature · 1 line
1.5.6.1.89.gd544