lkml.org 
[lkml]   [2006]   [Feb]   [20]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateSun, 19 Feb 2006 21:18:52 -0800
FromAndrew Morton <>
SubjectRe: [PATCH] Work around asus_acpi driver oopses on Samsung P30s and the like due to the ACPI implicit return
Alex Riesen <fork0@users.sourceforge.net> wrote:
>
> FWIW, I need the patch below to stop ACPI freezing at boot on Asus S1300N.
> There is a BIOS update from Asus, but no mention of any fixes in ACPI,
> so as I have no means to backup the BIOS in case something goes wrong
> I didn't do the update.

I think it'd be worth trying the update anyway please.  Normally those
updating programs are pretty careful to not give you a dead box.

> I found out (by putting printks in the initialization code) that a
> call to INI (whatever it is) of VGA_ (whatever this is) immediately
> freezes the notebook and the fan goes on shortly afterwards.
> 

Is this a recent problem, or did earlier 2.6.x kernels also fail?


> diff --git a/drivers/acpi/asus_acpi.c b/drivers/acpi/asus_acpi.c
> index f4c8775..d415b30 100644
> --- a/drivers/acpi/asus_acpi.c
> +++ b/drivers/acpi/asus_acpi.c
> @@ -352,8 +352,8 @@ static struct model_data model_conf[END_
>  	 .lcd_status = "\\BKLT",
>  	 .brightness_set = "SPLV",
>  	 .brightness_get = "GPLV",
> -	 .display_set = "SDSP",
> -	 .display_get = "\\ADVG"}
> +	 /* .display_set = "SDSP",
> +	 .display_get = "\\ADVG" */}
>  };
> 
>  /* procdir we use */
> diff --git a/drivers/acpi/namespace/nsinit.c b/drivers/acpi/namespace/nsinit.c
> index 9f929e4..79fa2ec 100644
> --- a/drivers/acpi/namespace/nsinit.c
> +++ b/drivers/acpi/namespace/nsinit.c
> @@ -384,7 +384,12 @@ acpi_ns_init_one_device(acpi_handle obj_
>  	pinfo.parameters = NULL;
>  	pinfo.parameter_type = ACPI_PARAM_ARGS;
> 
> -	status = acpi_ut_execute_STA(pinfo.node, &flags);
> +	/* workaround Asus S1300N freeze at INI */
> +	if ( memcmp(pinfo.node->name.ascii, "VGA_",4)==0 ) {
> +	    printk(KERN_ERR "acpi: VGA_ ignored\n");
> +	    status = AE_NOT_FOUND;
> +	} else
> +	    status = acpi_ut_execute_STA(pinfo.node, &flags);
>  	if (ACPI_FAILURE(status)) {
>  		/* Ignore error and move on to next device */
> 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2006-02-20 06:26    [from the cache]
©2003-2008