Skip to content

Commit 660b299

Browse files
diogoivothierryreding
authored andcommitted
Revert "drm/tegra: dsi: Clear enable register if powered by bootloader"
Commit b6bcbce ("soc/tegra: pmc: Ensure power-domains are in a known state") was introduced so that all power domains get initialized to a known working state when booting and it does this by shutting them down (including asserting resets and disabling clocks) before registering each power domain with the genpd framework, leaving it to each driver to later on power its needed domains. This caused the Google Pixel C to hang when booting due to a workaround in the DSI driver introduced in commit b22fd0b ("drm/tegra: dsi: Clear enable register if powered by bootloader") meant to handle the case where the bootloader enabled the DSI hardware module. The workaround relies on reading a hardware register to determine the current status and after b6bcbce that now happens in a powered down state thus leading to the boot hang. Fix this by reverting b22fd0b since currently we are guaranteed that the hardware will be fully reset by the time we start enabling the DSI module. Fixes: b6bcbce ("soc/tegra: pmc: Ensure power-domains are in a known state") Cc: [email protected] Signed-off-by: Diogo Ivo <[email protected]> Signed-off-by: Thierry Reding <[email protected]> Link: https://patch.msgid.link/20251103-diogo-smaug_ec_typec-v1-1-be656ccda391@tecnico.ulisboa.pt
1 parent 6cbab9f commit 660b299

File tree

1 file changed

+0
-9
lines changed
  • drivers/gpu/drm/tegra

1 file changed

+0
-9
lines changed

drivers/gpu/drm/tegra/dsi.c

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -913,15 +913,6 @@ static void tegra_dsi_encoder_enable(struct drm_encoder *encoder)
913913
u32 value;
914914
int err;
915915

916-
/* If the bootloader enabled DSI it needs to be disabled
917-
* in order for the panel initialization commands to be
918-
* properly sent.
919-
*/
920-
value = tegra_dsi_readl(dsi, DSI_POWER_CONTROL);
921-
922-
if (value & DSI_POWER_CONTROL_ENABLE)
923-
tegra_dsi_disable(dsi);
924-
925916
err = tegra_dsi_prepare(dsi);
926917
if (err < 0) {
927918
dev_err(dsi->dev, "failed to prepare: %d\n", err);

0 commit comments

Comments
 (0)