mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
ASoC: renesas: fsi: Add SPU clock control in hw_startup/shutdown
Enable and disable the SPU clock in fsi_hw_startup() and fsi_hw_shutdown() to ensure the clock is active while the driver accesses hardware registers. Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Suggested-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20260609113836.45079-12-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
05e1ebfeb7
commit
26deeee42f
|
|
@ -1560,6 +1560,11 @@ static int fsi_hw_startup(struct fsi_priv *fsi,
|
|||
struct device *dev)
|
||||
{
|
||||
u32 data = 0;
|
||||
int ret;
|
||||
/* enable spu bus bridge clock */
|
||||
ret = clk_enable(fsi->master->clk_spu);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
/* clock setting */
|
||||
if (fsi_is_clk_master(fsi))
|
||||
|
|
@ -1605,8 +1610,13 @@ static int fsi_hw_startup(struct fsi_priv *fsi,
|
|||
fsi_fifo_init(fsi, io, dev);
|
||||
|
||||
/* start master clock */
|
||||
if (fsi_is_clk_master(fsi))
|
||||
return fsi_clk_enable(dev, fsi);
|
||||
if (fsi_is_clk_master(fsi)) {
|
||||
ret = fsi_clk_enable(dev, fsi);
|
||||
if (ret) {
|
||||
clk_disable(fsi->master->clk_spu);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1614,9 +1624,15 @@ static int fsi_hw_startup(struct fsi_priv *fsi,
|
|||
static int fsi_hw_shutdown(struct fsi_priv *fsi,
|
||||
struct device *dev)
|
||||
{
|
||||
int ret;
|
||||
/* stop master clock */
|
||||
if (fsi_is_clk_master(fsi))
|
||||
return fsi_clk_disable(dev, fsi);
|
||||
if (fsi_is_clk_master(fsi)) {
|
||||
ret = fsi_clk_disable(dev, fsi);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
/* stop spu bus bridge clock */
|
||||
clk_disable(fsi->master->clk_spu);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user