Help: i.MX8MP AUDIOMIX BLK-CTRL CLK driver support
Marek Vasut
marex at denx.de
Sun Sep 25 17:04:31 PDT 2022
On 9/23/22 05:41, Peng Fan wrote:
> Hi All,
Hi,
> I would start a discussion about the A/B B/A lock issue when make
> audiomix blk ctrl function as clk provider.
>
> I not have good idea on this, hope you have any suggestions.
>
> major issue is: the blk ctrl clk has a power domain supplier
> The power domain supplier also use clk API to prepare_enable clks.
> The blk ctrl clk driver has runtime pm enabled.
>
> The NXP downstream:
> The dts:
> https://github.com/nxp-imx/linux-imx/blob/lf-5.15.y/arch/arm64/boot/dts/freescale/imx8mp.dtsi#L1872
>
> The driver:
> https://github.com/nxp-imx/linux-imx/blob/lf-5.15.y/drivers/clk/imx/clk-imx8mp.c
> https://github.com/nxp-imx/linux-imx/blob/lf-5.15.y/drivers/clk/imx/clk-blk-ctrl.c
>
> Note: The following log was reproduced with NXP downstream. For upstream
> I think we have similar issue if we still take audiomix blk ctrl as clk
> driver. Because the gpcv2 also use clk prepare enable API.
> 1. deadlock 1:
> Callchain after enable some lock debug:
> clk_ignore_unused will use lock seq: take prepare lock, take blk-ctrl
> parent power domain genpd lock
> genpd_power_off_work_fun will use lock seq: take the power domain genpd
> lock, take prepare lock.
There is also this driver which does not suffer from the problem, at
least I didn't trigger it while using it for months:
https://patchwork.kernel.org/project/linux-clk/patch/20220625013235.710346-3-marex@denx.de/
More information about the linux-arm-kernel
mailing list