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 |
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 --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),
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>