]> asedeno.scripts.mit.edu Git - linux.git/commit
ASoC: bcm2835: fix hw_params error when device is in prepared state
authorMatthias Reichl <hias@horus.com>
Wed, 17 Jan 2018 12:50:50 +0000 (13:50 +0100)
committerMark Brown <broonie@kernel.org>
Thu, 18 Jan 2018 11:21:17 +0000 (11:21 +0000)
commit8d5737a5f53902a916ee1e1cb248c9b8b883b2ea
tree6190a3acc8c0355222550a611829e8261828614e
parent4fbd8d194f06c8a3fd2af1ce560ddb31f7ec8323
ASoC: bcm2835: fix hw_params error when device is in prepared state

If bcm2835 is configured as bitclock master calling hw_params()
after prepare() fails with EBUSY. This also makes it impossible to
use bcm2835 in full duplex mode.

The error is caused by the split clock setup: clk_set_rate
is called in hw_params, clk_prepare_enable in prepare. As hw_params
doesn't check if the clock was already enabled clk_set_rate
fails with EBUSY.

Fix this by moving clock startup from prepare to hw_params and
let hw_params properly deal with an already set up or enabled
clock.

Signed-off-by: Matthias Reichl <hias@horus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/bcm/bcm2835-i2s.c