FROMGIT: ASoC: rt5514: Unconfuse the rt5514 at probe / resume time

The rt5514 can get confused and incorrectly detect a start bit if the
SCL/SDA lines happen to both go low and then high again.  This
situation has been seen to happen at reboot time and is also
theoretically possible during suspend/resume if the rt5514 keeps power
but we shut down the i2c connection.

When this happens the rt5514 is confused about the state of the i2c
bus and won't recognize its own address.  That will lead to the rt5514
incorrectly NAKing the first transfer.

A single i2c transfer to any address should be enough to get the
rt5514 out of this funky state.

It is currently believed that this problem should be fixed in the
rt5514 driver itself because it seems that the i2c controller in the
rt5514 is easily confused.  Most i2c devices wouldn't detect a start
bit in this case.

BUG=b:36666089
TEST=evtest to check the sound with reboot tests

Change-Id: I7745e93afa4e177a2c5753e85085cd6c0535ae6d
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
(cherry picked from git.kernel.org broonie/sound.git topic/rt5514
 commit 7952b4baff402ddca1a263380bfd142f10290eb8)
Reviewed-on: https://chromium-review.googlesource.com/476071
Commit-Ready: Caesar Wang <wxt@rock-chips.com>
Reviewed-by: Dylan Reid <dgreid@chromium.org>
(cherry picked from commit 6ed3500ae8631c10acd494dca0a4cb4f3d86ce57)
Reviewed-on: https://chromium-review.googlesource.com/479562
1 file changed