Two modification.
 * Check quirks also.
 * for static variable, no need to set to 0 as initial value.


On 02/03/2012 04:46 PM, Ike Panhc wrote:
> We have several reports which says acer-wmi is loaded on ideapads
> and register rfkill for wifi which can not be unblocked.
> 
> Since ideapad-laptop also register rfkill for wifi and it works
> reliably, it will be fine acer-wmi is not going to register rfkill
> for wifi once VPC2004 is found.
> 
> Also put IBM0068/LEN0068 in the list. Though thinkpad_acpi has no
> wifi rfkill capability, there are reports which says acer-wmi also
> block wireless on Thinkpad E520/E420.
> 
> Signed-off-by: Ike Panhc <[email protected]>
> ---
>  drivers/platform/x86/acer-wmi.c |   30 +++++++++++++++++++++++++++++-
>  1 files changed, 29 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
> index b848277..1e5290b 100644
> --- a/drivers/platform/x86/acer-wmi.c
> +++ b/drivers/platform/x86/acer-wmi.c
> @@ -679,6 +679,32 @@ static acpi_status AMW0_find_mailled(void)
>       return AE_OK;
>  }
>  
> +static int AMW0_set_cap_acpi_check_device_found;
> +
> +static acpi_status AMW0_set_cap_acpi_check_device_cb(acpi_handle handle,
> +     u32 level, void *context, void **retval)
> +{
> +     AMW0_set_cap_acpi_check_device_found = 1;
> +     return AE_OK;
> +}
> +
> +static const struct acpi_device_id norfkill_ids[] = {
> +     { "VPC2004", 0},
> +     { "IBM0068", 0},
> +     { "LEN0068", 0},
> +     { "", 0},
> +};
> +
> +static int AMW0_set_cap_acpi_check_device(void)
> +{
> +     const struct acpi_device_id *id;
> +
> +     for (id = norfkill_ids; id->id[0]; id++)
> +             acpi_get_devices(id->id, AMW0_set_cap_acpi_check_device_cb,
> +                             NULL, NULL);
> +     return AMW0_set_cap_acpi_check_device_found;
> +}
> +
>  static acpi_status AMW0_set_capabilities(void)
>  {
>       struct wmab_args args;
> @@ -692,7 +718,9 @@ static acpi_status AMW0_set_capabilities(void)
>        * work.
>        */
>       if (wmi_has_guid(AMW0_GUID2)) {
> -             interface->capability |= ACER_CAP_WIRELESS;
> +             if ((quirks != &quirk_unknown) ||
> +                 !AMW0_set_cap_acpi_check_device())
> +                     interface->capability |= ACER_CAP_WIRELESS;
>               return AE_OK;
>       }
>  

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

Reply via email to