ACPI patches for 2.6.36-rc6
Subsystems (5)
Len Brown
reviewerhere 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
Len Brown
reviewerPATCH 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
@@ -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
Len Brown
reviewerPATCH 2/16 PM / ACPI: Blacklist systems known to require acpi_sleep=nonvs
In reply to Len BrownFrom: 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
@@ -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
Len Brown
reviewerPATCH 3/16 ACPI: enable repeated PCIEXP wakeup by clearing PCIEXP_WAKE_STS on resume
In reply to Len BrownFrom: 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
@@ -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
Len Brown
reviewerPATCH 4/16 ACPI: delete ZEPTO idle=nomwait DMI quirk
In reply to Len BrownFrom: 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
@@ -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
Len Brown
reviewerPATCH 5/16 ACPI: expand Vista blacklist to include SP1 and SP2
In reply to Len BrownFrom: 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
@@ -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
Len Brown
reviewerPATCH 6/16 ACPI: EC: add Vista incompatibility DMI entry for Toshiba Satellite L355
In reply to Len BrownFrom: 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
@@ -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
Len Brown
reviewerPATCH 7/16 ACPI: fix build warnings resulting from merge window conflict
In reply to Len BrownFrom: 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
@@ -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, ¶m_ops_debug_layer, &acpi_dbg_layer,0644 ); +module_param_cb (debug_level, ¶m_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
Len Brown
reviewerPATCH 8/16 ACPI video: fix a poor warning message
In reply to Len BrownFrom: 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
@@ -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
Len Brown
reviewerPATCH 9/16 ACPI: Fix typos
In reply to Len BrownFrom: 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
Len Brown
reviewerPATCH 10/16 ACPI: add missing __percpu markup in arch/x86/kernel/acpi/cstate.c
In reply to Len BrownFrom: 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
@@ -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
Len Brown
reviewerPATCH 11/16 ACPI: Kconfig: fix typo.
In reply to Len BrownFrom: Andrea Gelmini <[email protected]>
"power of" -> "power off"
--- drivers/acpi/Kconfig | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/acpi/Kconfig +1 -1
@@ -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
Len Brown
reviewerPATCH 12/16 ACPI: Fix the ERST build warning
In reply to Len BrownFrom: 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
@@ -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
Len Brown
reviewerRe: [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
Len Brown
reviewerPATCH 13/16 ACPI: acpi_pad: simplify code to avoid false gcc build warning
In reply to Len BrownFrom: 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
@@ -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
Len Brown
reviewerPATCH 14/16 ACPI: fan: Fix more unbalanced code block
In reply to Len BrownFrom: 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
@@ -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
Len Brown
reviewerPATCH 15/16 ACPI: Disable Windows Vista compatibility for Toshiba P305D
In reply to Len BrownFrom: 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
@@ -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
Len Brown
reviewerPATCH 16/16 ACPI: add DMI entry to work around another insane Toshiba BIOS
In reply to Len BrownFrom: 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
@@ -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
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
Signed-off-by Len Brown <[email protected]>
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
Len Brown
reviewerRe: [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
Len Brown
reviewerPATCH 1/1 ACPI: invoke DSDT corruption workaround on all Toshiba Satellite
In reply to Anisse AstierFrom: 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
@@ -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
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
Signed-off-by Len Brown <[email protected]>---
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@@ -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.
Len Brown
reviewerRe: [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@@ -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.
Tested-by Anisse Astier <[email protected]>
Thanks very much for testing.
cheers,
Len Brown, Intel Open Souce Technology Center
Re: [PATCH 16/16] ACPI: add DMI entry to work around another insane Toshiba BIOS
In reply to Len BrownQuoted 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]
Len Brown
reviewerRe: [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
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]
Len Brown
reviewerRe: [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