applied.

thanks,
-len

On Tuesday 05 February 2008 02:31, [EMAIL PROTECTED] wrote:
> From: Luca Tettamanti <[EMAIL PROTECTED]>
> 
> Add support for ASUS F3Sa notebook. Features:
> - LCD on/off
> - Brightness
> - Wifi kill
> - Bluetooth kill
> 
> Signed-off-by: Luca Tettamanti <[EMAIL PROTECTED]>
> Cc: Corentin Chary <[EMAIL PROTECTED]>
> Cc: Karol Kozimor <[EMAIL PROTECTED]>
> Cc: Len Brown <[EMAIL PROTECTED]>
> Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
> ---
> 
>  drivers/acpi/asus_acpi.c |   55 ++++++++++++++++++++++++++++++-------
>  1 file changed, 45 insertions(+), 10 deletions(-)
> 
> diff -puN drivers/acpi/asus_acpi.c~acpi4asus-add-support-for-f3sa 
> drivers/acpi/asus_acpi.c
> --- a/drivers/acpi/asus_acpi.c~acpi4asus-add-support-for-f3sa
> +++ a/drivers/acpi/asus_acpi.c
> @@ -142,6 +142,7 @@ struct asus_hotk {
>               xxN,            //M2400N, M3700N, M5200N, M6800N, S1300N, S5200N
>               A4S,            //Z81sp
>               //(Centrino)
> +             F3Sa,
>               END_MODEL
>       } model;                //Models currently supported
>       u16 event_count[128];   //count for each event TODO make this better
> @@ -405,7 +406,20 @@ static struct model_data model_conf[END_
>               .brightness_get    = "GPLV",
>               .mt_bt_switch      = "BLED",
>               .mt_wled           = "WLED"
> -     }
> +     },
> +
> +     {
> +             .name           = "F3Sa",
> +             .mt_bt_switch   = "BLED",
> +             .mt_wled        = "WLED",
> +             .mt_mled        = "MLED",
> +             .brightness_get = "GPLV",
> +             .brightness_set = "SPLV",
> +             .mt_lcd_switch  = "\\_SB.PCI0.SBRG.EC0._Q10",
> +             .lcd_status     = "\\_SB.PCI0.SBRG.EC0.RPIN",
> +             .display_get    = "\\ADVG",
> +             .display_set    = "SDSP",
> +     },
>  
>  };
>  
> @@ -710,15 +724,8 @@ static int get_lcd_state(void)
>  {
>       int lcd = 0;
>  
> -     if (hotk->model != L3H) {
> -             /* We don't have to check anything if we are here */
> -             if (!read_acpi_int(NULL, hotk->methods->lcd_status, &lcd))
> -                     printk(KERN_WARNING
> -                            "Asus ACPI: Error reading LCD status\n");
> -
> -             if (hotk->model == L2D)
> -                     lcd = ~lcd;
> -     } else {                /* L3H and the like have to be handled 
> differently */
> +     if (hotk->model == L3H) {
> +             /* L3H and the like have to be handled differently */
>               acpi_status status = 0;
>               struct acpi_object_list input;
>               union acpi_object mt_params[2];
> @@ -745,6 +752,32 @@ static int get_lcd_state(void)
>               if (out_obj.type == ACPI_TYPE_INTEGER)
>                       /* That's what the AML code does */
>                       lcd = out_obj.integer.value >> 8;
> +     } else if (hotk->model == F3Sa) {
> +             unsigned long tmp;
> +             union acpi_object param;
> +             struct acpi_object_list input;
> +             acpi_status status;
> +
> +             /* Read pin 11 */
> +             param.type = ACPI_TYPE_INTEGER;
> +             param.integer.value = 0x11;
> +             input.count = 1;
> +             input.pointer = &param;
> +
> +             status = acpi_evaluate_integer(NULL, hotk->methods->lcd_status,
> +                                             &input, &tmp);
> +             if (status != AE_OK)
> +                     return -1;
> +
> +             lcd = tmp;
> +     } else {
> +             /* We don't have to check anything if we are here */
> +             if (!read_acpi_int(NULL, hotk->methods->lcd_status, &lcd))
> +                     printk(KERN_WARNING
> +                            "Asus ACPI: Error reading LCD status\n");
> +
> +             if (hotk->model == L2D)
> +                     lcd = ~lcd;
>       }
>  
>       return (lcd & 1);
> @@ -1134,6 +1167,8 @@ static int asus_model_match(char *model)
>               return W5A;
>       else if (strncmp(model, "A4S", 3) == 0)
>               return A4S;
> +     else if (strncmp(model, "F3Sa", 4) == 0)
> +             return F3Sa;
>       else
>               return END_MODEL;
>  }
> _
> -
> 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
> 
-
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

Reply via email to