On Tue, 1 Sep 2020 at 17:03, Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx> wrote: > > This again took a while since v1 because the issue was so hard to > trigger. But I finally found a way to inject the flaw, so this series > could be tested and it fixes the issue. > > Changes since v1: > * introduce a new flag to MMC core indicating any kind of tuning > not only retune > * use the new flag to keep SCC flag active > * new patch 4, minor cleanup to MMC core > > A branch including the DEBUG patch can be found here: > > git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git renesas/sdhi/new_manual_calib-for-5.10 > > If you revert patch 3, you should have the SCC hang during boot again. > For the record, let me copy some findings I mentioned in another thread: > > === > Interesting news: The hang comes from a code path I would have not > expected. It is not because of accessing an SCC register, it is this > line from renesas_sdhi_set_clock() which causes the issue: > > 186 sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, clk & CLK_CTL_DIV_MASK); > > I mean I can guess that the clock setting has something to do with the > SCC, but I can't see the direct connection with the documentation I > have. > === > > Tested on R-Car H3 ES2.0 and M3-N and patches based on mmc/next. > > Another hope this is gone for good now... > > Kind regards, > > Wolfram > > > Wolfram Sang (4): > mmc: core: when downgrading HS400, callback into drivers earlier > mmc: core: add a 'doing_init_tune' flag and a 'mmc_doing_tune' helper > mmc: renesas_sdhi: keep SCC clock active when tuning > mmc: core: simplify an expression > > drivers/mmc/core/mmc.c | 16 ++++++++++------ > drivers/mmc/host/renesas_sdhi_core.c | 8 ++++++-- > include/linux/mmc/host.h | 6 ++++++ > 3 files changed, 22 insertions(+), 8 deletions(-) > > -- > 2.20.1 > Applied for next, thanks! Kind regards Uffe