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 --]
next 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