ATH11K Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Mihai Moldovan <ionic@ionic.de>
To: ath11k@lists.infradead.org
Subject: State of multiple PCI(e) modules since 2022
Date: Sun, 27 Oct 2024 15:11:57 +0100	[thread overview]
Message-ID: <588735d6-d30d-4d9c-ba43-6a10d85786d8@ionic.de> (raw)


[-- Attachment #1.1: Type: text/plain, Size: 3597 bytes --]

Hi


I'm quite sorry for also raising the issue on this list, but this is where it 
was last discussed.

For the past 15 years (or longer), I've been using two ath9k-based cards in a 
machine, without issues. Granted, they didn't need external firmware, and didn't 
use a complicated layered PCI/MHI/QRTR/QMI setup.

It's time to upgrade, so I put a QCA6390 (ath11k) and a WCN7850 (ath12k) card 
into a machine, assuming that it will probably work as well (especially since 
they are driven by different drivers, although ath12k started as a fork of 
ath11k) and quickly noticed that... it doesn't.

Wrote to the ath12k mailing list[0], got zero responses.
Created a bug report on the kernel bug tracker[1], because it's arguably a bug, 
switched to the ath.git kernel because that's what other developers work with. 
Got zero response, of course. Started debugging this myself and came to the 
conclusion that the qrtr stuff tries to bind to both cards with the same 
parameters and everything fails.

This isn't made easier by the fact that the documentation for the whole 
MHI/QRTR/QMI stack is very sparse (e.g., MHI, mostly documented for 
Android-based SoCs, but there's hardly any explanation of what MHI states are, 
how they are transitioned and what it all does) to non-existent (e.g., QRTR!) 
and especially how they work together on top of each other is arcane magic.

Meanwhile, a different user created another bug report[2] for essentially the 
same issue and even this mailing list had another request regarding this just a 
few days ago[3].


So far, so suspicious. Unfortunately, I only noticed yesterday that this issue 
has been known for almost 2 years now! Robert Mako even hacked together 
something[4] to work around it, but that only worked by accident (the 
BHI_ERRDBG2 register is actually supposed to be read-only and only some hardware 
uses it in the first place, so it can't be regarded as a generic fix).

There were talks[5] about pursuing Qualcomm to modify the firmware, so that a 
special register can be used to communicate an instance ID based on the PCI 
domain number and the bus number, which currently works for some firmware (and 
hence modules) and doesn't work for others, but aside from an RFC, this hasn't 
gained any traction. To be fair, this patch looks more like a generic solution 
to the issue, although it does require special firmware support. It's not even 
all that difficult to port it from other firmware, given that it only requires 
reading a host register and exposing the capability.

I'll actually try to pull this patch into my kernel and also port it to ath12k 
to see if it would work with my QCA6390 + WCN7850 combination, but even if it 
does, it's incredibly frustrating that this issue has been known for so long, 
users are actually looking for solutions to it and there seems to be no movement 
on it. Even more frustrating is that inquiries regarding this are essentially 
all but ignored.

Sorry for the rant, but I really hope that I can get some traction for this again.



Mihai

[0] https://lists.infradead.org/pipermail/ath12k/2024-October/003915.html
[1] https://bugzilla.kernel.org/show_bug.cgi?id=219380
[2] https://bugzilla.kernel.org/show_bug.cgi?id=218480
[3] https://lists.infradead.org/pipermail/ath11k/2024-October/006467.html
[4] 
https://patchwork.kernel.org/project/linux-wireless/patch/20221105194943.826847-2-robimarko@gmail.com/
[5] 
https://patchwork.kernel.org/project/linux-wireless/patch/20230111170033.32454-1-kvalo@kernel.org/

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

             reply	other threads:[~2024-10-27 14:12 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-27 14:11 Mihai Moldovan [this message]
2024-10-29 16:39 ` State of multiple PCI(e) modules since 2022 Denis Kenzior
2024-10-31 14:49 ` Jeff Johnson
2024-11-05  6:52   ` Mihai Moldovan
  -- strict thread matches above, loose matches on Subject: below --
2024-11-01 17:05 Mihai Moldovan
2024-11-01 17:17 Mihai Moldovan

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=588735d6-d30d-4d9c-ba43-6a10d85786d8@ionic.de \
    --to=ionic@ionic.de \
    --cc=ath11k@lists.infradead.org \
    /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