[Freedreno] [PATCH 1/3] drm/msm: dsi: Initialize msm_dsi->id to -1

abhinavk at codeaurora.org abhinavk at codeaurora.org
Mon Jul 30 22:29:41 UTC 2018


On 2018-07-30 08:26, Sean Paul wrote:
> Currently msm_dsi->id is initialized to 0 during kzalloc. If bind fails
> for a secondary dsi device before its id can be properly set (such as
> during dt parsing), the id will point to the primary dsi device, 
> causing
> its reference to be removed from dsi_manager's global (msm_dsim_glb)
> array.
> 
> This patch initializes the id to -1 and checks for negative in the
> manager cleanup.
> 
> Cc: Doug Anderson <dianders at chromium.org>
> Signed-off-by: Sean Paul <seanpaul at chromium.org>
Reviewed-by: Abhinav Kumar <abhinavk at codeaurora.org>
> ---
>  drivers/gpu/drm/msm/dsi/dsi.c         | 1 +
>  drivers/gpu/drm/msm/dsi/dsi_manager.c | 4 +++-
>  2 files changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/msm/dsi/dsi.c 
> b/drivers/gpu/drm/msm/dsi/dsi.c
> index ff8164cc6738..ee07d58c2d97 100644
> --- a/drivers/gpu/drm/msm/dsi/dsi.c
> +++ b/drivers/gpu/drm/msm/dsi/dsi.c
> @@ -83,6 +83,7 @@ static struct msm_dsi *dsi_init(struct 
> platform_device *pdev)
>  		return ERR_PTR(-ENOMEM);
>  	DBG("dsi probed=%p", msm_dsi);
> 
> +	msm_dsi->id = -1;
>  	msm_dsi->pdev = pdev;
>  	platform_set_drvdata(pdev, msm_dsi);
> 
> diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c
> b/drivers/gpu/drm/msm/dsi/dsi_manager.c
> index 5224010d90e4..80aa6344185e 100644
> --- a/drivers/gpu/drm/msm/dsi/dsi_manager.c
> +++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c
> @@ -839,6 +839,8 @@ void msm_dsi_manager_unregister(struct msm_dsi 
> *msm_dsi)
> 
>  	if (msm_dsi->host)
>  		msm_dsi_host_unregister(msm_dsi->host);
> -	msm_dsim->dsi[msm_dsi->id] = NULL;
> +
> +	if (msm_dsi->id >= 0)
> +		msm_dsim->dsi[msm_dsi->id] = NULL;
>  }


More information about the Freedreno mailing list