Skip to contentSkip to conversation

ACPI patches for 2.6.36-rc6

PATCH In review Len Brown 3 participants 27 messages Sep 29, 2010 – Oct 2, 2010

Subsystems (5)
lore
Share & tools
lore

Len Brown

author reviewer
#0 lore raw

here is my queue for 2.6.36-rc6
please let me know if you have troubles with any of these patches.

thanks,
Len Brown, Intel Open Source Technology Center

author reviewer
#1 lore raw

PATCH 1/16 ACPI: Don't report current_now if battery reports in mWh

From: Matthew Garrett <[email protected]>

ACPI batteries can report in units of either current or energy. Right now we expose the current_now file even if the battery is reporting energy units, resulting in a file that should contain mA instead containing mW. Don't expose this value unless the battery is reporting current.

---
 drivers/acpi/battery.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)
drivers/acpi/battery.c +0 -1
index dc58402..9841720 100644
@@ -273,7 +273,6 @@ static enum power_supply_property energy_battery_props[] = {
 	POWER_SUPPLY_PROP_CYCLE_COUNT,
 	POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN,
 	POWER_SUPPLY_PROP_VOLTAGE_NOW,
-	POWER_SUPPLY_PROP_CURRENT_NOW,
 	POWER_SUPPLY_PROP_POWER_NOW,
 	POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN,
 	POWER_SUPPLY_PROP_ENERGY_FULL,
Signature · 1 line
1.7.3.2.g9027fa
author reviewer
#2 lore raw

PATCH 2/16 PM / ACPI: Blacklist systems known to require acpi_sleep=nonvs

In reply to Len Brown

From: Rafael J. Wysocki <[email protected]>

Commit 2a6b69765ad794389f2fc3e14a0afa1a995221c2 (ACPI: Store NVS state even when entering suspend to RAM) changed the ACPI suspend to RAM code so that the NVS memory area is always unconditionally saved during suspend and restored during resume, since some systems evidently need that for the suspend-resume to work on them. However, it turned out that this change broke suspend-resume on a few systems, so commit 72ad5d77fb981963edae15eee8196c80238f5ed0 (ACPI / Sleep:
Allow the NVS saving to be skipped during suspend to RAM) introduced the acpi_sleep=nonvs command line switch to allow their users to work around this issue. To keep track of the systems that require this workaround and to make the life of their users slightly easier blacklist them in acpisleep_dmi_table[].

https://bugzilla.kernel.org/show_bug.cgi?id=16396

---
 drivers/acpi/sleep.c |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)
drivers/acpi/sleep.c +22 -0
index cf82989..4754ff6 100644
@@ -363,6 +363,12 @@ static int __init init_old_suspend_ordering(const struct dmi_system_id *d)
 	return 0;
 }
 
+static int __init init_nvs_nosave(const struct dmi_system_id *d)
+{
+	acpi_nvs_nosave();
+	return 0;
+}
+
 static struct dmi_system_id __initdata acpisleep_dmi_table[] = {
 	{
 	.callback = init_old_suspend_ordering,
@@ -397,6 +403,22 @@ static struct dmi_system_id __initdata acpisleep_dmi_table[] = {
 		DMI_MATCH(DMI_BOARD_NAME, "CF51-2L"),
 		},
 	},
+	{
+	.callback = init_nvs_nosave,
+	.ident = "Sony Vaio VGN-SR11M",
+	.matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "VGN-SR11M"),
+		},
+	},
+	{
+	.callback = init_nvs_nosave,
+	.ident = "Everex StepNote Series",
+	.matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "Everex Systems, Inc."),
+		DMI_MATCH(DMI_PRODUCT_NAME, "Everex StepNote Series"),
+		},
+	},
 	{},
 };
 #endif /* CONFIG_SUSPEND */
Signature · 1 line
1.7.3.2.g9027fa
author reviewer
#3 lore raw

PATCH 3/16 ACPI: enable repeated PCIEXP wakeup by clearing PCIEXP_WAKE_STS on resume

In reply to Len Brown

From: Colin Ian King <[email protected]>

Section 4.7.3.1.1 (PM1 Status Registers) of version 4.0 of the ACPI spec concerning PCIEXP_WAKE_STS points out in in the final note field in table 4-11 that if this bit is set to 1 and the system is put into a sleeping state then the system will not automatically wake.

This bit gets set by hardware to indicate that the system woke up due to a PCI Express wakeup event, so clear it during acpi_hw_clear_acpi_status() calls to enable subsequent resumes to work.

---
 drivers/acpi/acpica/aclocal.h |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
drivers/acpi/acpica/aclocal.h +1 -0
index df85b53..7dad916 100644
@@ -854,6 +854,7 @@ struct acpi_bit_register_info {
 	ACPI_BITMASK_POWER_BUTTON_STATUS   | \
 	ACPI_BITMASK_SLEEP_BUTTON_STATUS   | \
 	ACPI_BITMASK_RT_CLOCK_STATUS       | \
+	ACPI_BITMASK_PCIEXP_WAKE_DISABLE   | \
 	ACPI_BITMASK_WAKE_STATUS)
 
 #define ACPI_BITMASK_TIMER_ENABLE               0x0001
Signature · 1 line
1.7.3.2.g9027fa
author reviewer
#4 lore raw

PATCH 4/16 ACPI: delete ZEPTO idle=nomwait DMI quirk

In reply to Len Brown

From: Len Brown <[email protected]>

per comments in the bug report, this entry
seems to hurt at much as it helps.

https://bugzilla.kernel.org/show_bug.cgi?id=10807

---
 drivers/acpi/processor_core.c |    6 ------
 1 files changed, 0 insertions(+), 6 deletions(-)
drivers/acpi/processor_core.c +0 -6
index e9699aa..b618f88 100644
@@ -29,12 +29,6 @@ static int set_no_mwait(const struct dmi_system_id *id)
 
 static struct dmi_system_id __cpuinitdata processor_idle_dmi_table[] = {
 	{
-	set_no_mwait, "IFL91 board", {
-	DMI_MATCH(DMI_BIOS_VENDOR, "COMPAL"),
-	DMI_MATCH(DMI_SYS_VENDOR, "ZEPTO"),
-	DMI_MATCH(DMI_PRODUCT_VERSION, "3215W"),
-	DMI_MATCH(DMI_BOARD_NAME, "IFL91") }, NULL},
-	{
 	set_no_mwait, "Extensa 5220", {
 	DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"),
 	DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
Signature · 1 line
1.7.3.2.g9027fa
author reviewer
#5 lore raw

PATCH 5/16 ACPI: expand Vista blacklist to include SP1 and SP2

In reply to Len Brown

From: Len Brown <[email protected]>

When we claim incompatibility with Vista,
include both Vista SP1 and SP2.

https://bugzilla.kernel.org/show_bug.cgi?id=12641

---
 drivers/acpi/blacklist.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
drivers/acpi/blacklist.c +2 -0
index 2bb28b9..3eda6c0 100644
@@ -183,6 +183,8 @@ static int __init dmi_disable_osi_vista(const struct dmi_system_id *d)
 {
 	printk(KERN_NOTICE PREFIX "DMI detected: %s\n", d->ident);
 	acpi_osi_setup("!Windows 2006");
+	acpi_osi_setup("!Windows 2006 SP1");
+	acpi_osi_setup("!Windows 2006 SP2");
 	return 0;
 }
 static int __init dmi_disable_osi_win7(const struct dmi_system_id *d)
Signature · 1 line
1.7.3.2.g9027fa
author reviewer
#6 lore raw

PATCH 6/16 ACPI: EC: add Vista incompatibility DMI entry for Toshiba Satellite L355

In reply to Len Brown

From: Len Brown <[email protected]>

https://bugzilla.kernel.org/show_bug.cgi?id=12641

---
 drivers/acpi/blacklist.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)
drivers/acpi/blacklist.c +8 -0
index 3eda6c0..571a003 100644
@@ -228,6 +228,14 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = {
 		},
 	},
 	{
+	.callback = dmi_disable_osi_vista,
+	.ident = "Toshiba Satellite L355",
+	.matches = {
+		     DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+		     DMI_MATCH(DMI_PRODUCT_VERSION, "Satellite L355"),
+		},
+	},
+	{
 	.callback = dmi_disable_osi_win7,
 	.ident = "ASUS K50IJ",
 	.matches = {
Signature · 1 line
1.7.3.2.g9027fa
author reviewer
#7 lore raw

PATCH 7/16 ACPI: fix build warnings resulting from merge window conflict

In reply to Len Brown

From: Zhang Rui <[email protected]>

drivers/acpi/sysfs.c:154: warning: passing argument 1 of '__check_old_set_param' from incompatible pointer type include/linux/moduleparam.h:165: note: expected 'int (*)(const char *, struct kernel_param *)' but argument is of type 'int (*)(const char *, const struct kernel_param *)'

Introduced by commit 1c8fce27e275fd7c6b75bc6455745f02d3903ee6 ("ACPI:
introduce drivers/acpi/sysfs.c") interacting with commit 9bbb9e5a33109b2832e2e63dcc7a132924ab374b ("param: use ops in struct kernel_param, rather than get and set fns directly").

Use module_param_cb instead of the obsoleted module_param_call to fix a build warning.

---
 drivers/acpi/sysfs.c |   20 ++++++++++++++------
 1 files changed, 14 insertions(+), 6 deletions(-)
drivers/acpi/sysfs.c +14 -6
index 68e2e45..f8588f8 100644
@@ -100,7 +100,7 @@ static const struct acpi_dlevel acpi_debug_levels[] = {
 	ACPI_DEBUG_INIT(ACPI_LV_EVENTS),
 };
 
-static int param_get_debug_layer(char *buffer, struct kernel_param *kp)
+static int param_get_debug_layer(char *buffer, const struct kernel_param *kp)
 {
 	int result = 0;
 	int i;
@@ -128,7 +128,7 @@ static int param_get_debug_layer(char *buffer, struct kernel_param *kp)
 	return result;
 }
 
-static int param_get_debug_level(char *buffer, struct kernel_param *kp)
+static int param_get_debug_level(char *buffer, const struct kernel_param *kp)
 {
 	int result = 0;
 	int i;
@@ -149,10 +149,18 @@ static int param_get_debug_level(char *buffer, struct kernel_param *kp)
 	return result;
 }
 
-module_param_call(debug_layer, param_set_uint, param_get_debug_layer,
-		  &acpi_dbg_layer, 0644);
-module_param_call(debug_level, param_set_uint, param_get_debug_level,
-		  &acpi_dbg_level, 0644);
+static struct kernel_param_ops param_ops_debug_layer = {
+	.set = param_set_uint,
+	.get = param_get_debug_layer,
+};
+
+static struct kernel_param_ops param_ops_debug_level = {
+	.set = param_set_uint,
+	.get = param_get_debug_level,
+};
+
+module_param_cb(debug_layer, &param_ops_debug_layer, &acpi_dbg_layer, 0644);
+module_param_cb(debug_level, &param_ops_debug_level, &acpi_dbg_level, 0644);
 
 static char trace_method_name[6];
 module_param_string(trace_method_name, trace_method_name, 6, 0644);
Signature · 1 line
1.7.3.2.g9027fa
author reviewer
#8 lore raw

PATCH 8/16 ACPI video: fix a poor warning message

In reply to Len Brown

From: Zhang Rui <[email protected]>

Fix a vague warning message.

https://bugzilla.kernel.org/show_bug.cgi?id=16599

---
 drivers/acpi/video_detect.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
drivers/acpi/video_detect.c +2 -2
index c5fef01..b836761 100644
@@ -59,8 +59,8 @@ acpi_backlight_cap_match(acpi_handle handle, u32 level, void *context,
 				  "support\n"));
 		*cap |= ACPI_VIDEO_BACKLIGHT;
 		if (ACPI_FAILURE(acpi_get_handle(handle, "_BQC", &h_dummy)))
-			printk(KERN_WARNING FW_BUG PREFIX "ACPI brightness "
-					"control misses _BQC function\n");
+			printk(KERN_WARNING FW_BUG PREFIX "No _BQC method, "
+				"cannot determine initial brightness\n");
 		/* We have backlight support, no need to scan further */
 		return AE_CTRL_TERMINATE;
 	}
Signature · 1 line
1.7.3.2.g9027fa
author reviewer
#9 lore raw

PATCH 9/16 ACPI: Fix typos

In reply to Len Brown

From: Lucas De Marchi <[email protected]>

---
 drivers/acpi/acpica/exutils.c    |    2 +-
 drivers/acpi/acpica/rsutils.c    |    2 +-
 drivers/acpi/apei/Kconfig        |    2 +-
 drivers/acpi/apei/erst-dbg.c     |    2 +-
 drivers/acpi/apei/erst.c         |    2 +-
 drivers/acpi/bus.c               |    4 ++--
 drivers/acpi/processor_perflib.c |    4 ++--
 include/acpi/acpixf.h            |    2 +-
 8 files changed, 10 insertions(+), 10 deletions(-)
drivers/acpi/acpica/exutils.c +1 -1
index 74c24d5..4093522 100644
@@ -109,7 +109,7 @@ void acpi_ex_enter_interpreter(void)
  *
  * DESCRIPTION: Reacquire the interpreter execution region from within the
  *              interpreter code. Failure to enter the interpreter region is a
- *              fatal system error. Used in  conjuction with
+ *              fatal system error. Used in  conjunction with
  *              relinquish_interpreter
  *
  ******************************************************************************/
drivers/acpi/acpica/rsutils.c +1 -1
index 22cfcfb..491191e 100644
@@ -149,7 +149,7 @@ acpi_rs_move_data(void *destination, void *source, u16 item_count, u8 move_type)
 
 			/*
 			 * 16-, 32-, and 64-bit cases must use the move macros that perform
-			 * endian conversion and/or accomodate hardware that cannot perform
+			 * endian conversion and/or accommodate hardware that cannot perform
 			 * misaligned memory transfers
 			 */
 		case ACPI_RSC_MOVE16:
drivers/acpi/apei/Kconfig +1 -1
index 907e350..fca34cc 100644
@@ -34,6 +34,6 @@ config ACPI_APEI_ERST_DEBUG
 	depends on ACPI_APEI
 	help
 	  ERST is a way provided by APEI to save and retrieve hardware
-	  error infomation to and from a persistent store. Enable this
+	  error information to and from a persistent store. Enable this
 	  if you want to debugging and testing the ERST kernel support
 	  and firmware implementation.
drivers/acpi/apei/erst-dbg.c +1 -1
index 5281ddd..98ffa29 100644
@@ -2,7 +2,7 @@
  * APEI Error Record Serialization Table debug support
  *
  * ERST is a way provided by APEI to save and retrieve hardware error
- * infomation to and from a persistent store. This file provide the
+ * information to and from a persistent store. This file provide the
  * debugging/testing support for ERST kernel support and firmware
  * implementation.
  *
drivers/acpi/apei/erst.c +1 -1
index 18645f4..a4904f1 100644
@@ -2,7 +2,7 @@
  * APEI Error Record Serialization Table support
  *
  * ERST is a way provided by APEI to save and retrieve hardware error
- * infomation to and from a persistent store.
+ * information to and from a persistent store.
  *
  * For more information about ERST, please refer to ACPI Specification
  * version 4.0, section 17.4.
drivers/acpi/bus.c +2 -2
index 5c221ab..cc17b35 100644
@@ -55,7 +55,7 @@ EXPORT_SYMBOL(acpi_root_dir);
 static int set_power_nocheck(const struct dmi_system_id *id)
 {
 	printk(KERN_NOTICE PREFIX "%s detected - "
-		"disable power check in power transistion\n", id->ident);
+		"disable power check in power transition\n", id->ident);
 	acpi_power_nocheck = 1;
 	return 0;
 }
@@ -1027,7 +1027,7 @@ static int __init acpi_init(void)
 
 	/*
 	 * If the laptop falls into the DMI check table, the power state check
-	 * will be disabled in the course of device power transistion.
+	 * will be disabled in the course of device power transition.
 	 */
 	dmi_check_system(power_nocheck_dmi_table);
 
drivers/acpi/processor_perflib.c +2 -2
index ba1bd26..3a73a93 100644
@@ -447,8 +447,8 @@ int acpi_processor_notify_smm(struct module *calling_module)
 	if (!try_module_get(calling_module))
 		return -EINVAL;
 
-	/* is_done is set to negative if an error occured,
-	 * and to postitive if _no_ error occured, but SMM
+	/* is_done is set to negative if an error occurred,
+	 * and to postitive if _no_ error occurred, but SMM
 	 * was already notified. This avoids double notification
 	 * which might lead to unexpected results...
 	 */
include/acpi/acpixf.h +1 -1
index c0786d4..984cdc6 100644
@@ -55,7 +55,7 @@
 extern u8 acpi_gbl_permanent_mmap;
 
 /*
- * Globals that are publically available, allowing for
+ * Globals that are publicly available, allowing for
  * run time configuration
  */
 extern u32 acpi_dbg_level;
Signature · 1 line
1.7.3.2.g9027fa
author reviewer
#10 lore raw

PATCH 10/16 ACPI: add missing __percpu markup in arch/x86/kernel/acpi/cstate.c

In reply to Len Brown

From: Namhyung Kim <[email protected]>

cpu_cstate_entry is a percpu pointer
but was missing __percpu markup.

---
 arch/x86/kernel/acpi/cstate.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
arch/x86/kernel/acpi/cstate.c +1 -1
index fb7a5f0..fb16f17 100644
@@ -61,7 +61,7 @@ struct cstate_entry {
 		unsigned int ecx;
 	} states[ACPI_PROCESSOR_MAX_POWER];
 };
-static struct cstate_entry *cpu_cstate_entry;	/* per CPU ptr */
+static struct cstate_entry __percpu *cpu_cstate_entry;	/* per CPU ptr */
 
 static short mwait_supported[ACPI_PROCESSOR_MAX_POWER];
 
Signature · 1 line
1.7.3.2.g9027fa
author reviewer
#11 lore raw

PATCH 11/16 ACPI: Kconfig: fix typo.

In reply to Len Brown

From: Andrea Gelmini <[email protected]>

"power of" -> "power off"

---
 drivers/acpi/Kconfig |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/acpi/Kconfig +1 -1
index b811f21..88681ac 100644
@@ -105,7 +105,7 @@ config ACPI_EC_DEBUGFS
 
 	  Be aware that using this interface can confuse your Embedded
 	  Controller in a way that a normal reboot is not enough. You then
-	  have to power of your system, and remove the laptop battery for
+	  have to power off your system, and remove the laptop battery for
 	  some seconds.
 	  An Embedded Controller typically is available on laptops and reads
 	  sensor values like battery state and temperature.
Signature · 1 line
1.7.3.2.g9027fa
author reviewer
#12 lore raw

PATCH 12/16 ACPI: Fix the ERST build warning

In reply to Len Brown

From: Alan Cox <[email protected]>

drivers/acpi/apei/erst.c:273: warning: cast to pointer from integer of different size drivers/acpi/apei/erst.c:274: warning: cast to pointer from integer of different size

---
 drivers/acpi/apei/erst.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
drivers/acpi/apei/erst.c +2 -2
index a4904f1..37d7a05 100644
@@ -270,8 +270,8 @@ static int erst_exec_move_data(struct apei_exec_context *ctx,
 	rc = __apei_exec_read_register(entry, &offset);
 	if (rc)
 		return rc;
-	memmove((void *)ctx->dst_base + offset,
-		(void *)ctx->src_base + offset,
+	memmove((void *)(unsigned long)ctx->dst_base + offset,
+		(void *)(unsigned long)ctx->src_base + offset,
 		ctx->var2);
 
 	return 0;
Signature · 1 line
1.7.3.2.g9027fa
author reviewer
#13 lore raw

Re: [PATCH 12/16] ACPI: Fix the ERST build warning

this patch is now dropped due to conflict with APEI patch in this merge which deletes these lines.

thanks,
Len Brown, Intel Open Source Technology Center

author reviewer
#14 lore raw

PATCH 13/16 ACPI: acpi_pad: simplify code to avoid false gcc build warning

In reply to Len Brown

From: Len Brown <[email protected]>

acpi_pad.c:432: warning: ‘num_cpus’ may be used uninitialized in this function

gcc 4.4.4 was unable to notice that num_cpus is always set. Re-arrange the code to un-confuse gcc, and also make it easier for humans to read....

---
 drivers/acpi/acpi_pad.c |   34 ++++++++++++++++++----------------
 1 files changed, 18 insertions(+), 16 deletions(-)
drivers/acpi/acpi_pad.c +18 -16
index b76848c..6b115f6 100644
@@ -382,31 +382,32 @@ static void acpi_pad_remove_sysfs(struct acpi_device *device)
 	device_remove_file(&device->dev, &dev_attr_rrtime);
 }
 
-/* Query firmware how many CPUs should be idle */
-static int acpi_pad_pur(acpi_handle handle, int *num_cpus)
+/*
+ * Query firmware how many CPUs should be idle
+ * return -1 on failure
+ */
+static int acpi_pad_pur(acpi_handle handle)
 {
 	struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL};
 	union acpi_object *package;
-	int rev, num, ret = -EINVAL;
+	int num = -1;
 
 	if (ACPI_FAILURE(acpi_evaluate_object(handle, "_PUR", NULL, &buffer)))
-		return -EINVAL;
+		return num;
 
 	if (!buffer.length || !buffer.pointer)
-		return -EINVAL;
+		return num;
 
 	package = buffer.pointer;
-	if (package->type != ACPI_TYPE_PACKAGE || package->package.count != 2)
-		goto out;
-	rev = package->package.elements[0].integer.value;
-	num = package->package.elements[1].integer.value;
-	if (rev != 1 || num < 0)
-		goto out;
-	*num_cpus = num;
-	ret = 0;
-out:
+
+	if (package->type == ACPI_TYPE_PACKAGE &&
+		package->package.count == 2 &&
+		package->package.elements[0].integer.value == 1) /* rev 1 */
+
+		num = package->package.elements[1].integer.value;
+
 	kfree(buffer.pointer);
-	return ret;
+	return num;
 }
 
 /* Notify firmware how many CPUs are idle */
@@ -433,7 +434,8 @@ static void acpi_pad_handle_notify(acpi_handle handle)
 	uint32_t idle_cpus;
 
 	mutex_lock(&isolated_cpus_lock);
-	if (acpi_pad_pur(handle, &num_cpus)) {
+	num_cpus = acpi_pad_pur(handle);
+	if (num_cpus < 0) {
 		mutex_unlock(&isolated_cpus_lock);
 		return;
 	}
Signature · 6 lines
1.7.3.2.g9027fa

--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
author reviewer
#15 lore raw

PATCH 14/16 ACPI: fan: Fix more unbalanced code block

In reply to Len Brown

From: Luis Henriques <[email protected]>

commit 934231de706d2579fae14f5857fcd8de991009ff fixes an unbalanced CONFIG_ACPI_PROCFS code block during module initialisation. This patch fixes similar issue but for the module exit.

---
 drivers/acpi/fan.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
drivers/acpi/fan.c +2 -0
index 8a3b840..d94d295 100644
@@ -369,7 +369,9 @@ static void __exit acpi_fan_exit(void)
 
 	acpi_bus_unregister_driver(&acpi_fan_driver);
 
+#ifdef CONFIG_ACPI_PROCFS
 	remove_proc_entry(ACPI_FAN_CLASS, acpi_root_dir);
+#endif
 
 	return;
 }
Signature · 1 line
1.7.3.2.g9027fa
author reviewer
#16 lore raw

PATCH 15/16 ACPI: Disable Windows Vista compatibility for Toshiba P305D

In reply to Len Brown

From: Zhang Rui <[email protected]>

Disable the Windows Vista (SP1) compatibility for Toshiba P305D.

http://bugzilla.kernel.org/show_bug.cgi?id=14736

---
 drivers/acpi/blacklist.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)
drivers/acpi/blacklist.c +8 -0
index 571a003..f761960 100644
@@ -243,6 +243,14 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = {
 		     DMI_MATCH(DMI_PRODUCT_NAME, "K50IJ"),
 		},
 	},
+	{
+	.callback = dmi_disable_osi_vista,
+	.ident = "Toshiba P305D",
+	.matches = {
+		     DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+		     DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P305D"),
+		},
+	},
 
 	/*
 	 * BIOS invocation of _OSI(Linux) is almost always a BIOS bug.
Signature · 1 line
1.7.3.2.g9027fa
author reviewer
#17 lore raw

PATCH 16/16 ACPI: add DMI entry to work around another insane Toshiba BIOS

In reply to Len Brown

From: Len Brown <[email protected]>

Toshiba Satellite C655D-S5048

https://bugzilla.kernel.org/show_bug.cgi?id=14679

---
 drivers/acpi/bus.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)
drivers/acpi/bus.c +8 -0
index 5c221ab..5d48332 100644
@@ -99,6 +99,14 @@ static struct dmi_system_id dsdt_dmi_table[] __initdata = {
 		DMI_MATCH(DMI_PRODUCT_NAME, "Satellite L505D"),
 		},
 	},
+	{
+	 .callback = set_copy_dsdt,
+	 .ident = "TOSHIBA Satellite C655D-S5048",
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "Satellite C655D"),
+		},
+	},
 	{}
 };
 #else
Signature · 1 line
1.7.3.2.g9027fa
#18 lore raw

Re: [PATCH 16/16] ACPI: add DMI entry to work around another insane Toshiba BIOS

Hi Len,

Quoted 7 lines · Len Brown

From: Len Brown <[email protected]>

Toshiba Satellite C655D-S5048

https://bugzilla.kernel.org/show_bug.cgi?id=14679

Two other case where reported recently; one for which I proposed a patch almost two months ago:
http://www.spinics.net/lists/linux-acpi/msg29761.html
and another:
http://www.spinics.net/lists/linux-acpi/msg30002.html

If you prefer that I open tickets on bugzilla to process this kind of bug, please let me know.

Anisse
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

author reviewer
#19 lore raw

Re: [PATCH 16/16] ACPI: add DMI entry to work around another insane Toshiba BIOS

Quoted 2 lines

If you prefer that I open tickets on bugzilla to process this kind of bug, please let me know.

e-mail is normally fastest, but it can be lossy for me, particularly during summer vacation or when i'm traveling to a conference for a week. I fully intend to catch up when i return, but rarely succeed in doing so.

bugzilla never forgets, and last night I scanned through all the "RESOLVED" ACPI bugs (bugs with patches), which is why I happened to see the other models before yours.

But I see it now, so you need do nothing more. Acutally, if you can verify that if you modify the entry to DMI_MATCH(DMI_PRODUCT_NAME, "Satellite"); that it still works on your Toshiba, that would be great. Because that is the path forward that seems to make most sense right now.

thanks,
Len Brown, Intel Open Source Technology Center

author reviewer
#20 lore raw

PATCH 1/1 ACPI: invoke DSDT corruption workaround on all Toshiba Satellite

In reply to Anisse Astier

From: Len Brown <[email protected]>

Our list of Toshiba Satellite models that require this workaround is growing -- so invoke the workaround for the entire product line.

https://bugzilla.kernel.org/show_bug.cgi?id=14679

---

Please test this patch.
thanks,
-Len

 drivers/acpi/bus.c |   14 +++-----------
 1 files changed, 3 insertions(+), 11 deletions(-)
drivers/acpi/bus.c +3 -11
index 5c221ab..a70ca8e 100644
@@ -80,23 +80,15 @@ static int set_copy_dsdt(const struct dmi_system_id *id)
 
 static struct dmi_system_id dsdt_dmi_table[] __initdata = {
 	/*
-	 * Insyde BIOS on some TOSHIBA machines corrupt the DSDT.
+	 * Invoke DSDT corruption work-around on all Toshiba Satellite.
 	 * https://bugzilla.kernel.org/show_bug.cgi?id=14679
 	 */
 	{
 	 .callback = set_copy_dsdt,
-	 .ident = "TOSHIBA Satellite A505",
+	 .ident = "TOSHIBA Satellite",
 	 .matches = {
 		DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
-		DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A505"),
-		},
-	},
-	{
-	 .callback = set_copy_dsdt,
-	 .ident = "TOSHIBA Satellite L505D",
-	 .matches = {
-		DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
-		DMI_MATCH(DMI_PRODUCT_NAME, "Satellite L505D"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "Satellite"),
 		},
 	},
 	{}
Signature · 1 line
1.7.3.15.g442cb
Tested-by on v1 1/1
#21 lore raw

Re: [PATCH] ACPI: invoke DSDT corruption workaround on all Toshiba Satellite

Quoted 33 lines · Len Brown

From: Len Brown <[email protected]>

Our list of Toshiba Satellite models that require this workaround is growing -- so invoke the workaround for the entire product line.

https://bugzilla.kernel.org/show_bug.cgi?id=14679

---

Please test this patch.
thanks,

(quoted diff) +0 -1
-Len
 
 drivers/acpi/bus.c |   14 +++-----------
 1 files changed, 3 insertions(+), 11 deletions(-)
drivers/acpi/bus.c +2 -2
index 5c221ab..a70ca8e 100644
@@ -80,23 +80,15 @@ static int set_copy_dsdt(const struct dmi_system_id *id)
 
 static struct dmi_system_id dsdt_dmi_table[] __initdata = {
 	/*
-	 * Insyde BIOS on some TOSHIBA machines corrupt the DSDT.
+	 * Invoke DSDT corruption work-around on all Toshiba Satellite.
 	 * https://bugzilla.kernel.org/show_bug.cgi?id=14679
 	 */
 	{
 	 .callback = set_copy_dsdt,
-	 .ident = "TOSHIBA Satellite A505",
+	 .ident = "TOSHIBA Satellite",

drivers/acpi/bus.c static int set_copy_dsdt(const struct dmi_system_id *id) · line 98

Quoted 10 lines
drivers/acpi/bus.c +0 -8
 	 .matches = {
 		DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
-		DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A505"),
-		},
-	},
-	{
-	 .callback = set_copy_dsdt,
-	 .ident = "TOSHIBA Satellite L505D",
-	 .matches = {
-		DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),

Isn't that a bit too broad? Maybe we should keep "TOSHIBA" in case another vendor decides to add "Satellite" in its DMI product name.

drivers/acpi/bus.c static int set_copy_dsdt(const struct dmi_system_id *id) · line 94

Quoted 5 lines
drivers/acpi/bus.c +1 -1
-		DMI_MATCH(DMI_PRODUCT_NAME, "Satellite L505D"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "Satellite"),
 		},
 	},
 	{}

Anyway, this works well on Toshiba Satellite C650D.

author reviewer
#22 lore raw

Re: [PATCH] ACPI: invoke DSDT corruption workaround on all Toshiba Satellite

Quoted 25 lines
Quoted 25 lines

Please test this patch.

 drivers/acpi/bus.c |   14 +++-----------
 1 files changed, 3 insertions(+), 11 deletions(-)
drivers/acpi/bus.c +2 -4
index 5c221ab..a70ca8e 100644
@@ -80,23 +80,15 @@ static int set_copy_dsdt(const struct dmi_system_id *id)
 
 static struct dmi_system_id dsdt_dmi_table[] __initdata = {
 	/*
-	 * Insyde BIOS on some TOSHIBA machines corrupt the DSDT.
+	 * Invoke DSDT corruption work-around on all Toshiba Satellite.
 	 * https://bugzilla.kernel.org/show_bug.cgi?id=14679
 	 */
 	{
 	 .callback = set_copy_dsdt,
-	 .ident = "TOSHIBA Satellite A505",
+	 .ident = "TOSHIBA Satellite",
 	 .matches = {
 		DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
-		DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A505"),
-		},
Quoted 8 lines

drivers/acpi/bus.c static int set_copy_dsdt(const struct dmi_system_id *id) · line 98

Quoted 6 lines
drivers/acpi/bus.c +0 -6
-	},
-	{
-	 .callback = set_copy_dsdt,
-	 .ident = "TOSHIBA Satellite L505D",
-	 .matches = {
-		DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),

Isn't that a bit too broad? Maybe we should keep "TOSHIBA" in case another vendor decides to add "Satellite" in its DMI product name.

We kept it -- it is the 1st line above without a '-' in fron of it.

Quoted 9 lines

drivers/acpi/bus.c static int set_copy_dsdt(const struct dmi_system_id *id) · line 94

Quoted 5 lines
drivers/acpi/bus.c +1 -1
-		DMI_MATCH(DMI_PRODUCT_NAME, "Satellite L505D"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "Satellite"),
 		},
 	},
 	{}

Anyway, this works well on Toshiba Satellite C650D.

Thanks very much for testing.

cheers,
Len Brown, Intel Open Souce Technology Center

#23 lore raw

Re: [PATCH 16/16] ACPI: add DMI entry to work around another insane Toshiba BIOS

In reply to Len Brown
Quoted 3 lines · Len Brown

From: Len Brown <[email protected]>

Toshiba Satellite C655D-S5048

Why are we not making this the default behaviour, perhaps with a boot or config option to disable it if people really can't live with the memory hit?

Signature · 1 line
Matthew Garrett | [email protected]
author reviewer
#24 lore raw

Re: [PATCH 16/16] ACPI: add DMI entry to work around another insane Toshiba BIOS

Quoted 8 lines · Len Brown
Quoted 3 lines

From: Len Brown <[email protected]>

Toshiba Satellite C655D-S5048

Why are we not making this the default behaviour, perhaps with a boot or config option to disable it if people really can't live with the memory hit?

It looks like only Toshiba Satellite have this flaw.

It would not be fair to every Linux/ACPI system out there to double ACPI table size because of bugs at Toshiba.

Perhaps we should wild-card and make this the default for all Toshiba Satellite. I expect we can do this simply by leaving the model number off. eg

- DMI_MATCH(DMI_PRODUCT_NAME, "Satellite L505D"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite"),

The down-side, of course, is that Satellite's in the future will continue to pay for the bugs of Satellite's past -- but I'd not lose any sleep over that.

thanks,
Len Brown, Intel Open Source Technology Center

#25 lore raw

Re: [PATCH 16/16] ACPI: add DMI entry to work around another insane Toshiba BIOS

Quoted 1 line · Len Brown

It looks like only Toshiba Satellite have this flaw.

If the Leading Other OS is liberal in what it accepts, we're leaving ourselves open to reduced compatibility if someone else ends up making the same mistake. The hit looks to be around 300K or less.

Signature · 1 line
Matthew Garrett | [email protected]
author reviewer
#26 lore raw

Re: [PATCH 16/16] ACPI: add DMI entry to work around another insane Toshiba BIOS

Quoted 5 lines
Quoted 1 line

It looks like only Toshiba Satellite have this flaw.

If the Leading Other OS is liberal in what it accepts, we're leaving ourselves open to reduced compatibility if someone else ends up making the same mistake. The hit looks to be around 300K or less.

We've been "open" to this issue ever since we started using ACPI tables "in-place" many years ago. Only Toshiba Satellite has failed. Also, now we check for table corruption.

I think there need to be limits on the extent that we make Linux stupid in the name of Windows bug compatibility. If we find that many vendors and models run into this, we can always re-consider.

thanks,
Len Brown, Intel Open Source Technology Center