On 18/10/22 19:59, Brian Norris wrote:
Hi Adrian,
On Tue, Oct 18, 2022 at 07:13:28PM +0300, Adrian Hunter wrote:
On 18/10/22 06:57, Brian Norris wrote:
So like these other patches, deactivate CQHCI when resetting the controller. Also, move around the DT/caps handling, because sdhci_setup_host() performs resets before we've initialized CQHCI. This is the pattern followed in other SDHCI/CQHCI drivers.
Did you consider just checking host->mmc->cqe_private like sdhci_cqhci_reset() ?
I did not, although I am doing so now.
My first thought is that this feels a bit too private. Is the host driver supposed to be memorizing the details of the CQHCI layer?
Some drivers need to access CQHCI registers and get the reference to cqhci_host from cqe_private, so that is already accepted.
But on the plus side, that would remove some contortions needed here (and also in sdhci-brcmstb.c).
Here's another option I previously considered: teaching cqhci_deactivate() to check cqe_private itself. That would have the same benefits, while keeping the private details in cqhci-core.c. How do you like that?
I don't mind either way.
(Tiny downside: cqhci-core.c got its rename in v5.12, so backporting this to -stable would get slightly more difficult.)
Brian