Hi,

On Wed, Dec 05, 2018 at 05:00:10PM +0200, Laurent Pinchart wrote:
> The DT bindings for the OMAP DSS allow assigning numerical IDs to
> display outputs through display entries in the alias node. The driver
> uses this information to sort pipelines according to the order specified
> in DT, making it possible for a system to give a priority order to
> outputs.
> 
> Retrieval of the alias ID is done when initializing display dss devices.
> That code will be removed when moving to drm_bridge and drm_panel. Move
> retrieval of the alias ID to display pipeline connection time and store
> it in the pipeline structure instead to keep the feature.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
> ---

Reviewed-by: Sebastian Reichel <sebastian.reic...@collabora.com>

-- Sebastian

>  drivers/gpu/drm/omapdrm/dss/display.c | 2 --
>  drivers/gpu/drm/omapdrm/dss/omapdss.h | 2 --
>  drivers/gpu/drm/omapdrm/omap_drv.c    | 9 +++++++--
>  drivers/gpu/drm/omapdrm/omap_drv.h    | 1 +
>  4 files changed, 8 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/omapdrm/dss/display.c 
> b/drivers/gpu/drm/omapdrm/dss/display.c
> index 398964358386..e93f61a567a8 100644
> --- a/drivers/gpu/drm/omapdrm/dss/display.c
> +++ b/drivers/gpu/drm/omapdrm/dss/display.c
> @@ -42,8 +42,6 @@ void omapdss_display_init(struct omap_dss_device *dssdev)
>       if (id < 0)
>               id = disp_num_counter++;
>  
> -     dssdev->alias_id = id;
> -
>       /* Use 'label' property for name, if it exists */
>       of_property_read_string(dssdev->dev->of_node, "label", &dssdev->name);
>  
> diff --git a/drivers/gpu/drm/omapdrm/dss/omapdss.h 
> b/drivers/gpu/drm/omapdrm/dss/omapdss.h
> index 5dac69519d7e..7c9f8a5ceb37 100644
> --- a/drivers/gpu/drm/omapdrm/dss/omapdss.h
> +++ b/drivers/gpu/drm/omapdrm/dss/omapdss.h
> @@ -419,8 +419,6 @@ struct omap_dss_device {
>  
>       struct list_head list;
>  
> -     unsigned int alias_id;
> -
>       enum omap_display_type type;
>       /*
>        * DSS output type that this device generates (for DSS internal devices)
> diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c 
> b/drivers/gpu/drm/omapdrm/omap_drv.c
> index 286590657d44..c9b578a49b24 100644
> --- a/drivers/gpu/drm/omapdrm/omap_drv.c
> +++ b/drivers/gpu/drm/omapdrm/omap_drv.c
> @@ -155,9 +155,9 @@ static int omap_compare_pipes(const void *a, const void 
> *b)
>       const struct omap_drm_pipeline *pipe1 = a;
>       const struct omap_drm_pipeline *pipe2 = b;
>  
> -     if (pipe1->display->alias_id > pipe2->display->alias_id)
> +     if (pipe1->alias_id > pipe2->alias_id)
>               return 1;
> -     else if (pipe1->display->alias_id < pipe2->display->alias_id)
> +     else if (pipe1->alias_id < pipe2->alias_id)
>               return -1;
>       return 0;
>  }
> @@ -182,11 +182,16 @@ static int omap_connect_pipelines(struct drm_device 
> *ddev)
>                                output->name);
>               } else {
>                       struct omap_drm_pipeline *pipe;
> +                     int id;
>  
>                       pipe = &priv->pipes[priv->num_pipes++];
>                       pipe->output = omapdss_device_get(output);
>                       pipe->display = omapdss_display_get(output);
>  
> +                     id = of_alias_get_id(pipe->display->dev->of_node,
> +                                          "display");
> +                     pipe->alias_id = id >= 0 ? id : priv->num_pipes - 1;
> +
>                       if (priv->num_pipes == ARRAY_SIZE(priv->pipes)) {
>                               /* To balance the 'for_each_dss_output' loop */
>                               omapdss_device_put(output);
> diff --git a/drivers/gpu/drm/omapdrm/omap_drv.h 
> b/drivers/gpu/drm/omapdrm/omap_drv.h
> index 788aa9f7e6df..a169de3ed95d 100644
> --- a/drivers/gpu/drm/omapdrm/omap_drv.h
> +++ b/drivers/gpu/drm/omapdrm/omap_drv.h
> @@ -51,6 +51,7 @@ struct omap_drm_pipeline {
>       struct drm_connector *connector;
>       struct omap_dss_device *output;
>       struct omap_dss_device *display;
> +     unsigned int alias_id;
>  };
>  
>  struct omap_drm_private {
> -- 
> Regards,
> 
> Laurent Pinchart
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

Attachment: signature.asc
Description: PGP signature

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to