soc: imx: gpcv2: Set both GPC_PGC_nCTRL(GPU_2D|GPU_3D) for MX8MM GPU domain
authorMarek Vasut <marex@denx.de>
Tue, 7 Sep 2021 02:38:30 +0000 (04:38 +0200)
committerShawn Guo <shawnguo@kernel.org>
Mon, 4 Oct 2021 07:53:57 +0000 (15:53 +0800)
To bring up the MX8MM GPU domain, it is necessary to configure both
GPC_PGC_nCTRL(GPU_2D) and GPC_PGC_nCTRL(GPU_3D) registers. Without
this configuration, the system might hang on boot when bringing up
the GPU power domain. This is sporadically observed on multiple
disparate systems.

Add the GPU3D bit into MX8MM GPU domain pgc bitfield, so that both
GPC_PGC_nCTRL(GPU_2D) and GPC_PGC_nCTRL(GPU_3D) registers are
configured when bringing up the GPU domain. This fixes the sporadic
hang.

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Frieder Schrempf <frieder.schrempf@kontron.de>
Cc: Lucas Stach <l.stach@pengutronix.de>
Cc: NXP Linux Team <linux-imx@nxp.com>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
drivers/soc/imx/gpcv2.c

index acd8734d960af286b3f281c72c1c173ef183be20..46aac23a35e306d56959a57480b1e141c082a2b6 100644 (file)
@@ -679,7 +679,7 @@ static const struct imx_pgc_domain imx8mm_pgc_domains[] = {
                        .hskreq = IMX8MM_GPU_HSK_PWRDNREQN,
                        .hskack = IMX8MM_GPU_HSK_PWRDNACKN,
                },
-               .pgc   = BIT(IMX8MM_PGC_GPU2D),
+               .pgc   = BIT(IMX8MM_PGC_GPU2D) | BIT(IMX8MM_PGC_GPU3D),
        },
 
        [IMX8MM_POWER_DOMAIN_VPUMIX] = {