Re: [PATCH v2 4/4] wifi: ath12k: Connect to the QMI server belonging to the device owned by this driver
From: Manivannan Sadhasivam
Date: Tue Sep 22 2026 - 09:46:39 EST
On Tue, Sep 22, 2026 at 02:43:05PM +0300, Juha-Matti Tilli wrote:
> On Mon, Sep 21, 2026, at 14:23, Manivannan Sadhasivam via B4 Relay wrote:
> > From: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxxxxxxxx>
> >
> > When two identical ath12k PCIe devices are connected to the same host, both
> > advertise the WLFW service with the same service and instance id. The QMI
> > lookup reports both servers to each device, so a device may connect to the
> > firmware running on the other device.
> >
> > But now, QRTR provides each MHI endpoint a unique node id which is
> > different from the node id announced by the device. So use the same id to
> > pick the correct server. Add a get_qrtr_node_id() HIF callback that returns
> > the node id derived from the MHI controller index and zero for transports
> > that do not assign one. In the new_server callback, skip any service whose
> > node id does not match. A node id of zero disables the check, so transports
> > that do not assign one keep their current behavior.
>
> Tested-by: Juha-Matti Tilli <juha-matti.tilli@xxxxxx>
> Tested-on: 2x WCN7850 hw2.0 WLAN.IOE_HMT.1.1-00018-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1
> Tested-on: 1x WCN6855 ath11k + 1x WCN7850 ath12k
>
> I'm having some issues with regdb on ath12k cards so I had to test using
> the low-frequency 2.4GHz channels. I tried updating linux-firmware to
> 20260810 to match my 6.12.110+multi-QRTR kernel, didn't help. The error
> is:
>
> ath12k_pci 0001:01:00.0: No reg rules available
> ath12k_pci 0001:01:00.0: failed to extract regulatory info from received event
> ------------[ cut here ]------------
> WARNING: CPU: 0 PID: 12 at /drivers/net/wireless/ath/ath12k/wmi.c:5841 ath12k_reg_chan_list_event+0x171/0x1e0 [ath12k]
> Modules linked in: xt_gmmark(O) xt_bemark(O) w24e2identificator(O) qrtr_mhi ath12k mhi qmi_helpers mac80211 libarc4 cfg80211
> CPU: 0 UID: 0 PID: 12 Comm: kworker/u8:0 Tainted: G O 6.12.110-yocto-standard-gec77603762c7 #1
> Tainted: [O]=OOT_MODULE
> Hardware name: Freescale LS1021A
> Workqueue: ath12k_qmi_driver_event ath12k_qmi_driver_event_work [ath12k]
> Call trace:
> unwind_backtrace from show_stack+0xb/0xc
> show_stack from dump_stack_lvl+0x35/0x40
> dump_stack_lvl from __warn+0xaf/0xb0
> __warn from warn_slowpath_fmt+0xe5/0xe8
> warn_slowpath_fmt from ath12k_reg_chan_list_event+0x171/0x1e0 [ath12k]
> ath12k_reg_chan_list_event [ath12k] from ath12k_wmi_op_rx+0x219/0xc08 [ath12k]
> ath12k_wmi_op_rx [ath12k] from ath12k_htc_rx_completion_handler+0x215/0x2d4 [ath12k]
> ath12k_htc_rx_completion_handler [ath12k] from ath12k_ce_recv_process_cb+0x149/0x198 [ath12k]
> ath12k_ce_recv_process_cb [ath12k] from ath12k_pci_ce_tasklet+0x13/0x28 [ath12k]
> ath12k_pci_ce_tasklet [ath12k] from tasklet_action_common+0x87/0xa8
> tasklet_action_common from handle_softirqs+0xbf/0x1b4
> handle_softirqs from irq_exit+0x55/0x78
> irq_exit from call_with_stack+0xd/0x10
> ---[ end trace 0000000000000000 ]---
>
> This error happens with 2x ath12k and 1x ath12k 1x ath11k too.
>
> But, the dual ath12k setup works, and the errors are entirely different
> than what QRTR node id clash does.
>
> So, I believe the patch works.
>
Thanks a lot for testing. I asked our WLAN team member to test this series on
multi-ath12k setup and found one issue with QRTR_TYPE_RESUME_TX. After fixing
it, multi-ath12k setup works fine.
I'll submit v3 with that fix. Please give it a shot on this setup, one final
time :) Appreciate your help here.
- Mani
--
மணிவண்ணன் சதாசிவம்