RE: [PATCH v1] hp_wmi causing rfkill soft blocked wifi

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[Public]

+Anson

> -----Original Message-----
> From: Jorge Lopez <jorgealtxwork@xxxxxxxxx>
> Sent: Friday, October 28, 2022 10:55
> To: hdegoede@xxxxxxxxxx; balalic.enver@xxxxxxxxx; platform-driver-
> x86@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Cc: markgross@xxxxxxxxxx
> Subject: [PATCH v1] hp_wmi causing rfkill soft blocked wifi
> 
> After upgrading BIOS to U82 01.02.01 Rev.A, the console is flooded
> strange char "^@" which printed out every second and makes login
> nearly impossible. Also the below messages were shown both in console
> and journal/dmesg every second:
> 
> usb 1-3: Device not responding to setup address.
> usb 1-3: device not accepting address 4, error -71
> usb 1-3: device descriptor read/all, error -71
> usb usb1-port3: unable to enumerate USB device
> 
> Wifi is soft blocked by checking rfkill. When unblocked manually,
> after few seconds it would be soft blocked again. So I was suspecting
> something triggered rfkill to soft block wifi.  At the end it was
> fixed by removing hp_wmi module.
> 
> The root cause is the way hp-wmi driver handles command 1B on
> post-2009 BIOS.  In pre-2009 BIOS, command 1Bh return 0x4 to indicate
> that BIOS no longer controls the power for the wireless devices.
> 
> Signed-off-by: Jorge Lopez <jorge.lopez2@xxxxxx>

Link: https://bugzilla.kernel.org/show_bug.cgi?id=216468
Reviewed-by: Mario Limonciello <mario.limonciello@xxxxxxx>

Hans,

Since this is effectively essentially removing the broken BIOS RFKILL interface
for numerous machines I think this should probably go to stable too, if you agree.

> 
> ---
> Based on the latest platform-drivers-x86.git/for-next
> ---
>  drivers/platform/x86/hp-wmi.c | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/platform/x86/hp-wmi.c b/drivers/platform/x86/hp-wmi.c
> index 627a6d0eaf83..29cd4e437d97 100644
> --- a/drivers/platform/x86/hp-wmi.c
> +++ b/drivers/platform/x86/hp-wmi.c
> @@ -1300,8 +1300,15 @@ static int __init hp_wmi_bios_setup(struct
> platform_device *device)
>  	wwan_rfkill = NULL;
>  	rfkill2_count = 0;
> 
> -	if (hp_wmi_rfkill_setup(device))
> -		hp_wmi_rfkill2_setup(device);
> +	/*
> +	 * In pre-2009 BIOS, command 1Bh return 0x4 to indicate that
> +	 * BIOS no longer controls the power for the wireless
> +	 * devices. All features supported by this command will no
> +	 * longer be supported.
> +	 */
> +	if (!hp_wmi_bios_2009_later())
> +		if (hp_wmi_rfkill_setup(device))
> +			hp_wmi_rfkill2_setup(device);
> 
>  	err = hp_wmi_hwmon_init();
> 
> --
> 2.34.1




[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux