lkml.org 
[lkml]   [2022]   [Oct]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v3 0/7] mmc: sdhci controllers: Fix SDHCI_RESET_ALL for CQHCI
    Date
    This is a series of identical fixes for several SDHCI host
    drivers. Patch #2 (for sdhci-of-arasan; plus its dependency in patch #1)
    is the only one I've tested, and I wrote it due to a bug described
    there.

    I then noticed that several other drivers do the same thing, and that
    commit df57d73276b8 ("mmc: sdhci-pci: Fix SDHCI_RESET_ALL for CQHCI for
    Intel GLK-based controllers") points out the likely-repeated bug. So the
    fix is now factored into a separate sdhci_and_cqhci_reset() helper,
    and it's likely that most/all drivers that support a combo SDHCI/CQHCI
    controller will want to use it.

    Thus, I include additional patches (compile-tested only) that apply this
    helper/fix to the other drivers which call cqhci_init() but not
    cqhci_deactivate(). They contain appropriate disclaimers and the
    relevant parties are CC'd. I would suggest only merging them if you get
    some kind of ACK from people familiar with the relevant hardware.

    Notably, I do *not* patch drivers/mmc/host/mtk-sd.c although it uses
    CQHCI, because it doesn't seem to be an SDHCI-based controller, and so
    even if it has a similar bug, it's not clear to me how to patch it.

    - Brian

    Changes in v3:
    - Refactor to a "SDHCI and CQHCI" helper -- sdhci_and_cqhci_reset()

    Changes in v2:
    - Rely on cqhci_deactivate() to safely handle (ignore)
    not-yet-initialized CQE support

    Brian Norris (7):
    mmc: cqhci: Provide helper for resetting both SDHCI and CQHCI
    mmc: sdhci-of-arasan: Fix SDHCI_RESET_ALL for CQHCI
    mmc: sdhci-brcmstb: Fix SDHCI_RESET_ALL for CQHCI
    mms: sdhci-esdhc-imx: Fix SDHCI_RESET_ALL for CQHCI
    mmc: sdhci-tegra: Fix SDHCI_RESET_ALL for CQHCI
    mmc: sdhci_am654: Fix SDHCI_RESET_ALL for CQHCI
    mmc: sdhci-*: Convert drivers to new sdhci_and_cqhci_reset()

    drivers/mmc/host/sdhci-brcmstb.c | 3 ++-
    drivers/mmc/host/sdhci-cqhci.h | 25 +++++++++++++++++++++++++
    drivers/mmc/host/sdhci-esdhc-imx.c | 3 ++-
    drivers/mmc/host/sdhci-msm.c | 10 ++--------
    drivers/mmc/host/sdhci-of-arasan.c | 3 ++-
    drivers/mmc/host/sdhci-pci-core.c | 11 ++---------
    drivers/mmc/host/sdhci-pci-gli.c | 11 ++---------
    drivers/mmc/host/sdhci-tegra.c | 3 ++-
    drivers/mmc/host/sdhci_am654.c | 3 ++-
    9 files changed, 41 insertions(+), 31 deletions(-)
    create mode 100644 drivers/mmc/host/sdhci-cqhci.h

    --
    2.38.0.135.g90850a2211-goog

    \
     
     \ /
      Last update: 2022-10-24 21:23    [W:2.686 / U:0.332 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site