[Acked] [PATCH] Revert: "dell-laptop: Toggle the unsupported hardware killswitch"

Leann Ogasawara leann.ogasawara at canonical.com
Wed Jun 29 14:50:19 UTC 2011


On Mon, 2011-06-27 at 18:01 +0100, Keng-Yu Lin wrote:
> This reverts commit a3d77411e8b2ad661958c1fbee65beb476ec6d70,
> 
> as it causes a mess in the wireless rfkill status on some models.
> It is probably a bad idea to toggle the rfkill for all dell models
> without the respect to the claim that it is hardware-controlled.
> 
> BugLink: http://bugs.launchpad.net/bugs/775281
> 
> Signed-off-by: Keng-Yu Lin <kengyu at canonical.com>

As this appears to cause a widespread regression for multiple dell
models, it makes sense to revert.  Will a new patch be sent to fix the
original issue on the Dell Inspiron 1018?  eg some sort of model
specific quirk?

Acked-by: Leann Ogasawara <leann.ogasawara at canonical.com>

> ---
>  drivers/platform/x86/dell-laptop.c |   24 ++----------------------
>  1 files changed, 2 insertions(+), 22 deletions(-)
> 
> diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell-laptop.c
> index ad24ef3..34657f9 100644
> --- a/drivers/platform/x86/dell-laptop.c
> +++ b/drivers/platform/x86/dell-laptop.c
> @@ -290,12 +290,9 @@ static int dell_rfkill_set(void *data, bool blocked)
>  	dell_send_request(buffer, 17, 11);
>  
>  	/* If the hardware switch controls this radio, and the hardware
> -	   switch is disabled, don't allow changing the software state.
> -	   If the hardware switch is reported as not supported, always
> -	   fire the SMI to toggle the killswitch. */
> +	   switch is disabled, don't allow changing the software state */
>  	if ((hwswitch_state & BIT(hwswitch_bit)) &&
> -	    !(buffer->output[1] & BIT(16)) &&
> -	    (buffer->output[1] & BIT(0))) {
> +	    !(buffer->output[1] & BIT(16))) {
>  		ret = -EINVAL;
>  		goto out;
>  	}
> @@ -401,23 +398,6 @@ static const struct file_operations dell_debugfs_fops = {
>  
>  static void dell_update_rfkill(struct work_struct *ignored)
>  {
> -	int status;
> -
> -	get_buffer();
> -	dell_send_request(buffer, 17, 11);
> -	status = buffer->output[1];
> -	release_buffer();
> -
> -	/* if hardware rfkill is not supported, set it explicitly */
> -	if (!(status & BIT(0))) {
> -		if (wifi_rfkill)
> -			dell_rfkill_set((void *)1, !((status & BIT(17)) >> 17));
> -		if (bluetooth_rfkill)
> -			dell_rfkill_set((void *)2, !((status & BIT(18)) >> 18));
> -		if (wwan_rfkill)
> -			dell_rfkill_set((void *)3, !((status & BIT(19)) >> 19));
> -	}
> -
>  	if (wifi_rfkill)
>  		dell_rfkill_query(wifi_rfkill, (void *)1);
>  	if (bluetooth_rfkill)
> -- 
> 1.7.4.1
> 
> 






More information about the kernel-team mailing list