[Freedreno] [PATCH v2] drm/msm/dpu: handle pm_runtime_get_sync() errors in bind path
Rob Clark
robdclark at gmail.com
Thu May 19 00:31:04 UTC 2022
On Wed, May 18, 2022 at 3:34 PM Abhinav Kumar <quic_abhinavk at quicinc.com> wrote:
>
> If there are errors while trying to enable the pm in the
> bind path, it will lead to unclocked access of hw revision
> register thereby crashing the device.
>
> This will not address why the pm_runtime_get_sync() fails
> but at the very least we should be able to prevent the
> crash by handling the error and bailing out earlier.
>
> changes in v2:
> - use pm_runtime_resume_and_get() instead of
> pm_runtime_get_sync()
>
> Signed-off-by: Abhinav Kumar <quic_abhinavk at quicinc.com>
Reviewed-by: Rob Clark <robdclark at gmail.com>
> ---
> drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> index 2b9d931474e0..bce47647d891 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> @@ -1089,7 +1089,9 @@ static int dpu_kms_hw_init(struct msm_kms *kms)
>
> dpu_kms_parse_data_bus_icc_path(dpu_kms);
>
> - pm_runtime_get_sync(&dpu_kms->pdev->dev);
> + rc = pm_runtime_resume_and_get(&dpu_kms->pdev->dev);
> + if (rc < 0)
> + goto error;
>
> dpu_kms->core_rev = readl_relaxed(dpu_kms->mmio + 0x0);
>
> --
> 2.35.1
>
More information about the Freedreno
mailing list