diff mbox series

soc: imx: imx8m-blk-ctrl: Fix IMX8MN_DISPBLK_PD_ISI hang

Message ID 20220225161741.395505-1-aford173@gmail.com (mailing list archive)
State New, archived
Headers show
Series soc: imx: imx8m-blk-ctrl: Fix IMX8MN_DISPBLK_PD_ISI hang | expand

Commit Message

Adam Ford Feb. 25, 2022, 4:17 p.m. UTC
When attempting to communicate with the ISI, the system hangs.
Through trial and error, it appears removing the two root clocks
fixes the issues.  Since IMX8MN_DISPBLK_PD_ISI enables the
pgc_dispmix, and pgc_dispmix enables those same root clocks, it should be
safe.

Fixes: 7f511d514e8c ("soc: imx: imx8m-blk-ctrl: add i.MX8MN DISP blk-ctrl")
Signed-off-by: Adam Ford <aford173@gmail.com>

Comments

Lucas Stach Feb. 25, 2022, 4:58 p.m. UTC | #1
Am Freitag, dem 25.02.2022 um 10:17 -0600 schrieb Adam Ford:
> When attempting to communicate with the ISI, the system hangs.
> Through trial and error, it appears removing the two root clocks
> fixes the issues.  Since IMX8MN_DISPBLK_PD_ISI enables the
> pgc_dispmix, and pgc_dispmix enables those same root clocks, it should be
> safe.
> 
This doesn't look right. Why would this make a difference?

The only difference is that those clocks may be disabled at the end of
the power-up routine when they are assigned to the blk-ctrl domain. If
ISI communication hangs while those clocks are disabled, then that is
more of a hint for a missing clock enable on the ISI driver side than
an issue on the blk-ctrl side.

Regards,
Lucas

> Fixes: 7f511d514e8c ("soc: imx: imx8m-blk-ctrl: add i.MX8MN DISP blk-ctrl")
> Signed-off-by: Adam Ford <aford173@gmail.com>
> 
> diff --git a/drivers/soc/imx/imx8m-blk-ctrl.c b/drivers/soc/imx/imx8m-blk-ctrl.c
> index 122f9c884b38..cacf379aef80 100644
> --- a/drivers/soc/imx/imx8m-blk-ctrl.c
> +++ b/drivers/soc/imx/imx8m-blk-ctrl.c
> @@ -574,9 +574,8 @@ static const struct imx8m_blk_ctrl_domain_data imx8mn_disp_blk_ctl_domain_data[]
>  	},
>  	[IMX8MN_DISPBLK_PD_ISI] = {
>  		.name = "dispblk-isi",
> -		.clk_names = (const char *[]){ "disp_axi", "disp_apb", "disp_axi_root",
> -						"disp_apb_root"},
> -		.num_clks = 4,
> +		.clk_names = (const char *[]){ "disp_axi", "disp_apb" },
> +		.num_clks = 2,
>  		.gpc_name = "isi",
>  		.rst_mask = BIT(6) | BIT(7),
>  		.clk_mask = BIT(6) | BIT(7),
diff mbox series

Patch

diff --git a/drivers/soc/imx/imx8m-blk-ctrl.c b/drivers/soc/imx/imx8m-blk-ctrl.c
index 122f9c884b38..cacf379aef80 100644
--- a/drivers/soc/imx/imx8m-blk-ctrl.c
+++ b/drivers/soc/imx/imx8m-blk-ctrl.c
@@ -574,9 +574,8 @@  static const struct imx8m_blk_ctrl_domain_data imx8mn_disp_blk_ctl_domain_data[]
 	},
 	[IMX8MN_DISPBLK_PD_ISI] = {
 		.name = "dispblk-isi",
-		.clk_names = (const char *[]){ "disp_axi", "disp_apb", "disp_axi_root",
-						"disp_apb_root"},
-		.num_clks = 4,
+		.clk_names = (const char *[]){ "disp_axi", "disp_apb" },
+		.num_clks = 2,
 		.gpc_name = "isi",
 		.rst_mask = BIT(6) | BIT(7),
 		.clk_mask = BIT(6) | BIT(7),