]> git.baikalelectronics.ru Git - kernel.git/commit
ASoC: rt5514: Unconfuse the rt5514 at probe / resume time
authorDouglas Anderson <dianders@chromium.org>
Fri, 14 Apr 2017 16:40:32 +0000 (09:40 -0700)
committerMark Brown <broonie@kernel.org>
Fri, 14 Apr 2017 17:11:37 +0000 (18:11 +0100)
commit56313c65b5ca206b7792e2b7355de387afa43a1d
treef92921674913c8ffaacdf1af7313e4afe8d39ac1
parent50de8ff6b46e6056e15770a9f45c967628bb6e8c
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.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/rt5514.c