From e3a76ff192edc3f0c96c9f06a8e1a365505db8a9 Mon Sep 17 00:00:00 2001 From: Nick Hollinghurst Date: Sat, 3 Feb 2024 12:04:00 +0000 Subject: [PATCH] drm: rp1: VEC and DPI drivers: Fix bug #5901 Don't try to write to an unmapped register during clean-up. This covers the case where a Video Out Config register block could not be mapped due to contention from another driver. Signed-off-by: Nick Hollinghurst --- drivers/gpu/drm/rp1/rp1-dpi/rp1_dpi.c | 3 ++- drivers/gpu/drm/rp1/rp1-vec/rp1_vec.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/rp1/rp1-dpi/rp1_dpi.c b/drivers/gpu/drm/rp1/rp1-dpi/rp1_dpi.c index 404d6b322a6ac8..64063541bd8955 100644 --- a/drivers/gpu/drm/rp1/rp1-dpi/rp1_dpi.c +++ b/drivers/gpu/drm/rp1/rp1-dpi/rp1_dpi.c @@ -238,7 +238,8 @@ static void rp1dpi_stopall(struct drm_device *drm) clk_disable_unprepare(dpi->clocks[RP1DPI_CLK_DPI]); dpi->dpi_running = false; } - rp1dpi_vidout_poweroff(dpi); + if (dpi->hw_base[RP1DPI_HW_BLOCK_CFG]) + rp1dpi_vidout_poweroff(dpi); pinctrl_pm_select_sleep_state(&dpi->pdev->dev); } } diff --git a/drivers/gpu/drm/rp1/rp1-vec/rp1_vec.c b/drivers/gpu/drm/rp1/rp1-vec/rp1_vec.c index 95f1a0bd123c90..b5fd43d5c90a58 100644 --- a/drivers/gpu/drm/rp1/rp1-vec/rp1_vec.c +++ b/drivers/gpu/drm/rp1/rp1-vec/rp1_vec.c @@ -340,7 +340,8 @@ static void rp1vec_stopall(struct drm_device *drm) rp1vec_hw_stop(vec); vec->vec_running = false; } - rp1vec_vidout_poweroff(vec); + if (vec->hw_base[RP1VEC_HW_BLOCK_CFG]) + rp1vec_vidout_poweroff(vec); } }