Search Linux Wireless

Re: ath11k allocation failure on resume breaking wifi until power cycle

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

 





On 2/27/2024 3:19 PM, Manivannan Sadhasivam wrote:
On Tue, Feb 27, 2024 at 10:43:22AM +0800, Baochen Qiang wrote:


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().


I don't work on Android platform, no idea about WoWLAN. But I just raised a
possible issue. Please check with the Qcom internal Android teams about this. If
it is not going to be an issue (different code path as you said above), then
feel free to ignore my comment.
Thanks Mani.


- Mani


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@xxxxxxxxxx/


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.









[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux