drm/i2c: tda998x: avoid race when programming audio
authorRussell King <rmk+kernel@armlinux.org.uk>
Wed, 2 Nov 2016 21:38:34 +0000 (21:38 +0000)
committerRussell King <rmk+kernel@armlinux.org.uk>
Fri, 18 Nov 2016 00:00:40 +0000 (00:00 +0000)
commit2cae8e028ecb44003f607584e014c15a2f415e8a
tree5a62f28db697fcf1781312e99b73ac168a30e6e5
parent319e658c78befa51557f4d18a4092a04984290d4
drm/i2c: tda998x: avoid race when programming audio

Avoid a race between programming audio and an in-progress mode set.
A mode set is complex, and disables the ability to send infoframes
to the sink, and is disruptive to audio - we have to mute the audio
FIFO while doing a mode set.

If an attempt is made to start up the audio side, we will undo the
audio FIFO mute before the mode set has completed.

Move the lock so that we prevent audio interfering with an in-progress
mode set.

Tested-by: Jon Medhurst <tixy@linaro.org>
Acked-by: Jon Medhurst <tixy@linaro.org>
Tested-by: Jyri Sarha <jsarha@ti.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
drivers/gpu/drm/i2c/tda998x_drv.c