ath11k allocation failure on resume breaking wifi until power cycle

Baochen Qiang quic_bqiang at quicinc.com
Mon Feb 26 18:43:22 PST 2024



On 2/26/2024 7:43 PM, Manivannan Sadhasivam wrote:
> On Mon, Feb 26, 2024 at 05:11:17PM +0800, Baochen Qiang wrote:
>>
>>
>> On 2/26/2024 4:45 PM, Vlastimil Babka wrote:
>>> On 2/26/24 03:09, Baochen Qiang wrote:
>>>>
>>>>
>>>> On 2/23/2024 11:28 PM, Vlastimil Babka wrote:
>>>>> On 2/22/24 06:47, Manivannan Sadhasivam wrote:
>>>>>> On Wed, Feb 21, 2024 at 08:34:23AM -0800, Jeff Johnson wrote:
>>>>>>> On 2/21/2024 6:39 AM, Vlastimil Babka wrote:
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> starting with 6.8 rc series, I'm experiencing problems on resume from s2idle
>>>>>>>> on my laptop, which is Lenovo T14s Gen3:
>>>>>>>>
>>>>>>>> LENOVO 21CRS0K63K/21CRS0K63K, BIOS R22ET65W (1.35 )
>>>>>>>> ath11k_pci 0000:01:00.0: wcn6855 hw2.1
>>>>>>>> ath11k_pci 0000:01:00.0: chip_id 0x12 chip_family 0xb board_id 0xff soc_id 0x400c1211
>>>>>>>> ath11k_pci 0000:01:00.0: fw_version 0x1106196e fw_build_timestamp 2024-01-12 11:30 fw_build_id WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.37
>>>>>>>>
>>>>>>>> The problem is an allocation failure happening on resume from s2idle. After
>>>>>>>> that the wifi stops working and even a reboot won't fix it, only a
>>>>>>>> poweroff/poweron cycle of the laptop.
>>>>>>>>
>>>>>>
>>>>>> Looks like WLAN is powered down during s2idle, which doesn't make sense. I hope
>>>>>> Jeff will figure out what's going on.
>>>>>
>>>>> You mean the firmware is supposed to power it down/up transparently without
>>>>> kernel involvement? Because it should be powered down to save the power, no?
>>>> Let me clarify: from backtrace info, seems you are using a kernel with
>>>> the hibernation-support patches [1] applied, which are not accepted yet
>>>> to mainline kernel or even
>>>> git://git.kernel.org/pub/scm/linux/kernel/git/mani/mhi.git.
>>>
>>> Oh, you're right. Sorry for confusing you all. The rc kernel builds we have
>>> for openSUSE have nearly no non-upstream patches so it didn't really occur
>>> to me to double check if there might be in the area.
>>>
>>> Seems Takashi (Cc'd) added them indeed to make hibernation work:
>>> https://bugzilla.suse.com/show_bug.cgi?id=1207948#c51
>>>
>>> But then, why do they affect also s2idle, is it intentional? And why I only
>> Yes, it's intentional. When suspend/resume, ath11k does the same for either
>> a s2idle suspend or a deep one.
>>
> 
> That's a terrible idea for usecases like Android IMO. s2idle happens very often
> on Android platforms (screen lock) and do you want to powerdown the WLAN device
> all the time?
I am not familiar with Android case. Is WoWLAN enabled in that case? I 
am asking this because if WoWLAN is enabled ath11k goes another path and 
only calls mhi_pm_suspend()/resume() instead of mhi_power_down()/up().

> 
> Even though it offers power saving, I'm worried about the latency and possible
> teardown of the chipset. Later is only valid if the chipset undergoes complete
> power cycle though.
> 
> - Mani
> 
>>> started seeing the problems in 6.8, the patches are there since August.
>>>
>>>> So this is why you see WLAN firmware is powered down during suspend.
>>>>
>>>> [1]
>>>> https://patchwork.kernel.org/project/linux-wireless/cover/20231127162022.518834-1-kvalo@kernel.org/
>>>>
>>>>>
>>>>> But I just found out that when I build my own kernel using the distro config
>>>>> as base but reduced by make localmodconfig, the "mhi mhi0: Requested to
>>>>> power ON" and related messages don't occur anymore, so there's something
>>>>> weird going on.
>>>> Here your own kernel doesn't include the hibernation-support patches, right?
>>>
>>> Right.
>>>
>>>
>>>
> 



More information about the ath11k mailing list