ATH11K Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Kalle Valo <kvalo@kernel.org>
To: Manikanta Pubbisetty <quic_mpubbise@quicinc.com>
Cc: <ath11k@lists.infradead.org>,  <linux-wireless@vger.kernel.org>
Subject: Re: [PATCH v2 3/4] ath11k: Enable low power mode when WLAN is not active
Date: Wed, 31 Aug 2022 11:01:36 +0300	[thread overview]
Message-ID: <874jxsdeov.fsf@kernel.org> (raw)
In-Reply-To: <20220825111818.30869-4-quic_mpubbise@quicinc.com> (Manikanta Pubbisetty's message of "Thu, 25 Aug 2022 16:48:17 +0530")

Manikanta Pubbisetty <quic_mpubbise@quicinc.com> writes:

> Currently, WLAN chip is powered once during driver probe and is kept
> ON (powered) always even when WLAN is not active; keeping the chip
> powered ON all the time will consume extra power which is not
> desirable for a battery operated device. Same is the case with non-WoW
> suspend, chip will never be put into low power mode when the system is
> suspended resulting in higher battery drain.
>
> As per the recommendation, sending a PDEV suspend WMI command followed
> by a QMI MODE OFF command will cease all WLAN activity and put the device
> in low power mode. When WLAN interfaces are brought up, sending a QMI
> MISSION MODE command would be sufficient to bring the chip out of low
> power. This is a better approach than doing hif_power_down()/hif_power_up()
> for every WiFi ON/OFF sequence since the turnaround time for entry/exit of
> low power mode is much less. Overhead is just the time taken for sending
> QMI MODE OFF & QMI MISSION MODE commands instead of going through the
> entire chip boot & QMI init sequence.
>
> Currently the changes are applicable only for WCN6750. This can be
> extended to other targets with a future patch.
>
> Tested-on: WCN6750 hw1.0 AHB WLAN.MSL.1.0.1-00887-QCAMSLSWPLZ-1
>
> Signed-off-by: Manikanta Pubbisetty <quic_mpubbise@quicinc.com>

With this patch 3 my regression tests on WCN6855 panic:

[  109.009427] rmmod ath11k_pci
[  109.437120] kworker/dying (1560) used greatest stack depth: 24704 bytes left
[  109.446051] general protection fault, probably for non-canonical address 0xdffffc000000003e: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC KASAN
[  109.446133] KASAN: null-ptr-deref in range [0x00000000000001f0-0x00000000000001f7]
[  109.446211] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 6.0.0-rc2-wt-ath+ #683
[  109.446315] Hardware name: Intel(R) Client Systems NUC8i7HVK/NUC8i7HVB, BIOS HNKBLi70.86A.0067.2021.0528.1339 05/28/2021
[  109.446393] RIP: 0010:ath11k_dp_process_rxdma_err+0x1c8/0x810 [ath11k]
[  109.446486] Code: d2 48 63 d8 48 8b 4c 24 38 48 8d 04 5b 48 c1 e0 04 48 8d bc 01 f4 01 00 00 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <0f> b6 14 02 48 89 f8 83 e0 07 83 c0 03 38 d0 7c 08 84 d2 0f 85 aa
[  109.446557] RSP: 0018:ffffc90000007b90 EFLAGS: 00010203
[  109.446619] RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000000000
[  109.446677] RDX: 000000000000003e RSI: 0000000000000000 RDI: 00000000000001f4
[  109.446734] RBP: 0000000000000000 R08: ffff88814c0e1470 R09: ffff88814c0f6678
[  109.446792] R10: dffffc0000000000 R11: ffffed102981ecd0 R12: 0000000000000000
[  109.446903] R13: 0000000000000040 R14: 1ffff92000000f81 R15: ffff88814c0e0000
[  109.446961] FS:  0000000000000000(0000) GS:ffff888233600000(0000) knlGS:0000000000000000
[  109.447020] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  109.447080] CR2: 000055570fe84cc8 CR3: 0000000152540006 CR4: 00000000003706f0
[  109.447136] Call Trace:
[  109.447194]  <IRQ>
[  109.447257]  ? ath11k_dp_process_reo_status+0x3ce/0x560 [ath11k]
[  109.447349]  ? ath11k_dp_rx_process_wbm_err+0x17d0/0x17d0 [ath11k]
[  109.447442]  ath11k_dp_service_srng+0x358/0xab0 [ath11k]
[  109.447536]  ath11k_pcic_ext_grp_napi_poll+0x40/0x1d0 [ath11k]
[  109.447628]  __napi_poll.constprop.0+0x97/0x350
[  109.447690]  net_rx_action+0x7bf/0xbb0
[  109.447749]  ? __napi_poll.constprop.0+0x350/0x350
[  109.447831]  ? ktime_get+0x101/0x2f0
[  109.447911]  __do_softirq+0x1ca/0x897
[  109.447989]  __irq_exit_rcu+0xdb/0x180
[  109.448049]  irq_exit_rcu+0x5/0x20
[  109.448109]  sysvec_apic_timer_interrupt+0x8a/0xb0
[  109.448168]  </IRQ>
[  109.448226]  <TASK>
[  109.448284]  asm_sysvec_apic_timer_interrupt+0x16/0x20
[  109.448343] RIP: 0010:cpuidle_enter_state+0x1ef/0x9a0
[  109.448407] Code: 00 00 8b 73 04 bf ff ff ff ff e8 8c f0 ff ff 31 ff e8 75 16 47 fe 80 7c 24 08 00 0f 85 a1 01 00 00 e8 75 7d 6a fe fb 45 85 f6 <0f> 88 6f 02 00 00 4d 63 ee 4b 8d 44 6d 00 49 8d 44 85 00 48 8d 7c
[  109.448477] RSP: 0018:ffffffffb9407db8 EFLAGS: 00000202
[  109.448540] RAX: 0000000000124987 RBX: ffff888114966400 RCX: 1ffffffff738a3e1
[  109.448600] RDX: 0000000000000000 RSI: ffffffffb8a71bc0 RDI: ffffffffb8bec9c0
[  109.448659] RBP: ffffffffb986efa0 R08: 0000000000000001 R09: ffffffffb9c54717
[  109.448715] R10: fffffbfff738a8e2 R11: 00000000000002ec R12: 000000197b7a6a19
[  109.448774] R13: 0000000000000002 R14: 0000000000000002 R15: ffff888114966404
[  109.448871]  ? cpuidle_enter_state+0x1eb/0x9a0
[  109.448947]  ? finish_task_switch.isra.0+0x120/0x870
[  109.449006]  cpuidle_enter+0x45/0xa0
[  109.449065]  cpuidle_idle_call+0x274/0x3f0
[  109.449125]  ? arch_cpu_idle_exit+0x30/0x30
[  109.449187]  ? tsc_verify_tsc_adjust+0x86/0x2d0
[  109.449247]  ? lockdep_hardirqs_off+0x90/0xd0
[  109.449306]  do_idle+0xe0/0x140
[  109.449363]  cpu_startup_entry+0x14/0x20
[  109.449423]  rest_init+0x135/0x1e0
[  109.449482]  arch_call_rest_init+0xa/0xb
[  109.449542]  start_kernel+0x391/0x3af
[  109.449606]  secondary_startup_64_no_verify+0xce/0xdb
[  109.449671]  </TASK>
[  109.449729] Modules linked in: ath11k_pci(-) ath11k mac80211 libarc4 cfg80211 qmi_helpers qrtr_mhi mhi qrtr nvme nvme_core
[  109.449846] ---[ end trace 0000000000000000 ]---
[  109.449927] RIP: 0010:ath11k_dp_process_rxdma_err+0x1c8/0x810 [ath11k]
[  109.450073] Code: d2 48 63 d8 48 8b 4c 24 38 48 8d 04 5b 48 c1 e0 04 48 8d bc 01 f4 01 00 00 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <0f> b6 14 02 48 89 f8 83 e0 07 83 c0 03 38 d0 7c 08 84 d2 0f 85 aa
[  109.450147] RSP: 0018:ffffc90000007b90 EFLAGS: 00010203
[  109.450212] RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000000000
[  109.450275] RDX: 000000000000003e RSI: 0000000000000000 RDI: 00000000000001f4
[  109.450337] RBP: 0000000000000000 R08: ffff88814c0e1470 R09: ffff88814c0f6678
[  109.450401] R10: dffffc0000000000 R11: ffffed102981ecd0 R12: 0000000000000000
[  109.450465] R13: 0000000000000040 R14: 1ffff92000000f81 R15: ffff88814c0e0000
[  109.450531] FS:  0000000000000000(0000) GS:ffff888233600000(0000) knlGS:0000000000000000
[  109.450595] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  109.450661] CR2: 000055570fe84cc8 CR3: 0000000152540006 CR4: 00000000003706f0
[  109.450723] Kernel panic - not syncing: Fatal exception in interrupt
[  109.450794] Kernel Offset: 0x34e00000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)
[  109.450837] Rebooting in 10 seconds..

-- 
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

-- 
ath11k mailing list
ath11k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath11k

  reply	other threads:[~2022-08-31  8:08 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-25 11:18 [PATCH v2 0/4] ath11k: Enable low power mode when WLAN is not active Manikanta Pubbisetty
2022-08-25 11:18 ` [PATCH v2 1/4] ath11k: Fix double free issue during SRNG deinit Manikanta Pubbisetty
2022-08-25 14:59   ` Jeff Johnson
2022-08-29  5:31     ` Manikanta Pubbisetty
2022-08-25 11:18 ` [PATCH v2 2/4] ath11k: Move hardware initialization logic to start() Manikanta Pubbisetty
2022-08-25 11:18 ` [PATCH v2 3/4] ath11k: Enable low power mode when WLAN is not active Manikanta Pubbisetty
2022-08-31  8:01   ` Kalle Valo [this message]
2022-09-01  8:13     ` Manikanta Pubbisetty
2022-09-02 13:18       ` Kalle Valo
2022-09-02 13:25         ` Manikanta Pubbisetty
2022-11-21 10:56           ` Manikanta Pubbisetty
2022-08-25 11:18 ` [PATCH v2 4/4] ath11k: Fix failed to parse regulatory event print Manikanta Pubbisetty

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=874jxsdeov.fsf@kernel.org \
    --to=kvalo@kernel.org \
    --cc=ath11k@lists.infradead.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=quic_mpubbise@quicinc.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox