[PATCHv3 24/30] drm/omap: display: Add displays in sorted order to the panel_list
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Wed Mar 29 10:08:55 UTC 2017
Hi Tomi,
Thank you for the patch.
On Tuesday 28 Mar 2017 16:08:10 Tomi Valkeinen wrote:
> From: Peter Ujfalusi <peter.ujfalusi at ti.com>
>
> Keep the panel_list ordered according to aliases. The DRM connectors will
> be created following the panel_list. By keeping the list ordered the DRM
> connectors will be created in the same order regardless of the driver
> probe order.
>
> Signed-off-by: Peter Ujfalusi <peter.ujfalusi at ti.com>
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
> ---
> drivers/gpu/drm/omapdrm/dss/display.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/omapdrm/dss/display.c
> b/drivers/gpu/drm/omapdrm/dss/display.c index 94c012e0584b..26cb59be045e
> 100644
> --- a/drivers/gpu/drm/omapdrm/dss/display.c
> +++ b/drivers/gpu/drm/omapdrm/dss/display.c
> @@ -83,6 +83,7 @@ static int disp_num_counter;
> int omapdss_register_display(struct omap_dss_device *dssdev)
> {
> struct omap_dss_driver *drv = dssdev->driver;
> + struct list_head *cur;
> int id;
>
> /*
> @@ -118,7 +119,14 @@ int omapdss_register_display(struct omap_dss_device
> *dssdev) drv->get_timings = omapdss_default_get_timings;
>
> mutex_lock(&panel_list_mutex);
> - list_add_tail(&dssdev->panel_list, &panel_list);
> + list_for_each(cur, &panel_list) {
How about using list_for_each_entry ?
> + struct omap_dss_device *ldev = list_entry(cur,
> + struct
omap_dss_device,
> + panel_list);
> + if (strcmp(ldev->alias, dssdev->alias) > 0)
> + break;
> + }
> + list_add_tail(&dssdev->panel_list, cur);
What you want to do here is add the new element before cur. list_add_tail()
does that, but that's not very explicit (at least to me) from the function
name. I would have used list_add(new, cur->prev), but that's up to you.
> mutex_unlock(&panel_list_mutex);
> return 0;
> }
--
Regards,
Laurent Pinchart
More information about the dri-devel
mailing list