ATH11K Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Mihai Moldovan <ionic@ionic.de>
To: ath11k@lists.infradead.org
Subject: Re: State of multiple PCI(e) modules since 2022
Date: Fri, 1 Nov 2024 18:05:28 +0100	[thread overview]
Message-ID: <a8874554-e618-48e8-8092-81bc2abb743a@ionic.de> (raw)


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

* On 10/29/24 17:39, Denis Kenzior wrote:
> This RFC might be of interest then:
> https://lore.kernel.org/all/20241018181842.1368394-1-denkenz@gmail.com/

Wow, thank you!

I've tried applying Kalle's RFC to ath11k (and noticed that it already is part 
of ath12k), force-enabled it and noticed that neither QCA6390 nor WNC7850 honor 
the value written to the magic register. Since the initial firmware/bootloader 
can't be easily updated, that approach isn't going to work for all supported 
hardware.

My idea was to implement an optional proxy mode into qrtr, which identifies 
messages from specific cards based on their PCI domain and bus number (which 
should work at least for MHI, no idea about AHB), and uses one socket to 
communicate with the device directly, and another socket that can be used as a 
proxy socket which reads from the "normal" socket and modifies messages based on 
the PCI data to replace the instance ID (and vice versa from driver back to the 
card/MHI interface).


Your approach of using auxiliary data looks way easier, cleaner and generally 
better and more promising.

I've applied your patch set and tried to resolve most nits that came up - 
although I've neither understood what to change to use {WRITE,READ}_ONCCE or 
where to remove locking, because the code referred to (BIND_ENDPOINT) doesn't 
even use locking. Although I essentially tested V1.5, feel free to add a me as 
Tested-By. It's successfully doing what it says it does.


Obviously that won't work out of the box for ath11k, because qmi_helpers is 
still using the "old" API that doesn't use specific endpoint binding. I'm having 
a hard time finding a way to make use of this feature in ath11k, though. We're 
at the "wrong" side of the socket in ath11k/qmi_helpers, so can't access any 
qrtr internals there. struct mhi_device is accessible from both ends, so I could 
write the QRTR endpoint id into its driver data, read it in ath11k and pass it 
down to qmi_helpers to bind to the specific endpoint. That certainly doesn't 
sound elegant and it's hard to argue why QRTR data should be part of struct 
mhi_device, and there is some potential for breakage because it would only be 
available after the qrtr-mhi interface was initialized/probed, but that's the 
only common ground I see.



Mihai

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

             reply	other threads:[~2024-11-01 17:05 UTC|newest]

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