msm8996: sdhci-msm: apq8096-db820c sdhci fails to init - "Timeout waiting for hardware interrupt."

Paolo Pisati
2019-10-10T14:32:38Z

Sdhci consistenlty fails to initialize (and thus work) on my apq8096-db820c.

The issue is present since v5.0[*] mainline up to latest v5.4-rc2, using defconfig and:

CONFIG_SCSI_UFS_QCOM=y
CONFIG_PHY_QCOM_QMP=y
CONFIG_PHY_QCOM_UFS=y
CONFIG_ATL1C=y

but can be 100% reproduced with a clean defconfig too.

During boot, when it's time to mount the sdcard, mmc0 spits out a lot of:

...
[ 13.683059] mmc0: Timeout waiting for hardware interrupt.
[ 13.683095] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[ 13.687441] mmc0: sdhci: Sys addr: 0x00000000 | Version: 0x00004902
[ 13.693861] mmc0: sdhci: Blk size: 0x00004200 | Blk cnt: 0x00000000
[ 13.700285] mmc0: sdhci: Argument: 0x00012444 | Trn mode: 0x00000033
[ 13.706707] mmc0: sdhci: Present: 0x01680206 | Host ctl: 0x0000001f
[ 13.713131] mmc0: sdhci: Power: 0x00000001 | Blk gap: 0x00000000
[ 13.719555] mmc0: sdhci: Wake-up: 0x00000000 | Clock: 0x00000007
[ 13.725979] mmc0: sdhci: Timeout: 0x0000000a | Int stat: 0x00000000
[ 13.732403] mmc0: sdhci: Int enab: 0x03ff900b | Sig enab: 0x03ff100b
[ 13.738824] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000000
[ 13.745249] mmc0: sdhci: Caps: 0x322dc8b2 | Caps_1: 0x00008007
[ 13.751673] mmc0: sdhci: Cmd: 0x0000123a | Max curr: 0x00000000
[ 13.758097] mmc0: sdhci: Resp[0]: 0x00000900 | Resp[1]: 0x5b590000
[ 13.764519] mmc0: sdhci: Resp[2]: 0x76b27f80 | Resp[3]: 0x0a404012
[ 13.770944] mmc0: sdhci: Host ctl2: 0x00000000
[ 13.777365] mmc0: sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x00000001588be200
[ 13.781708] mmc0: sdhci: ============================================
[ 13.888927] mmc0: Reset 0x4 never completed.
...
[ 14.004327] mmc0: Controller never released inhibit bit(s).

in between several sdhci register dumps.

Has anyone seen that before? Is sdhci-msm support broken upstream or am i missing
something config-wise?

Full boot logs here: https://pastebin.ubuntu.com/p/BtRrgnjV7J/

*: nothing earlier then v5.0 boots on this board, so i couldn't test it.
--
bye,
p.