• Wenbin Mei's avatar
    mmc: mediatek: Fix system suspend/resume support for CQHCI · c0a2074a
    Wenbin Mei authored
    Before we got these errors on MT8192 platform:
    [   59.153891] Restarting tasks ...
    [   59.154540] done.
    [   59.159175] PM: suspend exit
    [   59.218724] mtk-msdc 11f60000.mmc: phase: [map:fffffffe] [maxlen:31]
    [final:16]
    [  119.776083] mmc0: cqhci: timeout for tag 9
    [  119.780196] mmc0: cqhci: ============ CQHCI REGISTER DUMP ===========
    [  119.786709] mmc0: cqhci: Caps:      0x100020b6 | Version:  0x00000510
    [  119.793225] mmc0: cqhci: Config:    0x00000101 | Control:  0x00000000
    [  119.799706] mmc0: cqhci: Int stat:  0x00000000 | Int enab: 0x00000000
    [  119.806177] mmc0: cqhci: Int sig:   0x00000000 | Int Coal: 0x00000000
    [  119.812670] mmc0: cqhci: TDL base:  0x00000000 | TDL up32: 0x00000000
    [  119.819149] mmc0: cqhci: Doorbell:  0x003ffc00 | TCN:      0x00000200
    [  119.825656] mmc0: cqhci: Dev queue: 0x00000000 | Dev Pend: 0x00000000
    [  119.832155] mmc0: cqhci: Task clr:  0x00000000 | SSC1:     0x00001000
    [  119.838627] mmc0: cqhci: SSC2:      0x00000000 | DCMD rsp: 0x00000000
    [  119.845174] mmc0: cqhci: RED mask:  0xfdf9a080 | TERRI:    0x0000891c
    [  119.851654] mmc0: cqhci: Resp idx:  0x00000000 | Resp arg: 0x00000000
    [  119.865773] mmc0: cqhci: : ===========================================
    [  119.872358] mmc0: running CQE recovery
    From these logs, we found TDL base was back to the default value.
    
    After suspend, the mmc host is powered off by HW, and bring CQE register
    to the default value, so we add system suspend/resume interface, then bring
    CQE to deactivated state before suspend, it will be enabled by CQE first
    request after resume.
    Signed-off-by: default avatarWenbin Mei <wenbin.mei@mediatek.com>
    Link: https://lore.kernel.org/r/20201118063405.24906-1-wenbin.mei@mediatek.com
    Fixes: 88bd652b ("mmc: mediatek: command queue support")
    Cc: stable@vger.kernel.org
    [Ulf: Renamed functions]
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    c0a2074a
mtk-sd.c 78.3 KB