diff mbox series

drm/omap: fix bus_flags for panel-dpi

Message ID 20181126092447.11864-1-tomi.valkeinen@ti.com
State Accepted
Commit 0a7f54ea0e1ed5a8f666e2adee7943b3991b4987
Headers show
Series drm/omap: fix bus_flags for panel-dpi | expand

Commit Message

Tomi Valkeinen Nov. 26, 2018, 9:24 a.m. UTC
panel-dpi used to convey the bus-flags via the videomode, but recent
changes changed the use of videomode to DRM's drm_display_mode which
does not contain bus-flags. This broke panel-dpi, which didn't
explicitly store the bus-flags into dssdev->bus_flags.

Fix this by setting dssdev->bus_flags. Also change the bus_flags type to
u32, as that is the type used in the DRM framework, and we would get a
warning with drm_bus_flags_from_videomode() otherwise.

Fixes: 3fbda31e814868d8477ddf52d74b7b8f596578e8 ("drm/omap: Split mode fixup and mode set from encoder enable")
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Reported-by: H. Nikolaus Schaller <hns@goldelico.com>
---
 drivers/gpu/drm/omapdrm/displays/panel-dpi.c | 1 +
 drivers/gpu/drm/omapdrm/dss/omapdss.h        | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

Comments

Laurent Pinchart Dec. 3, 2018, 12:14 p.m. UTC | #1
Hi Tomi,

Thank you for the patch.

On Monday, 26 November 2018 11:24:47 EET Tomi Valkeinen wrote:
> panel-dpi used to convey the bus-flags via the videomode, but recent
> changes changed the use of videomode to DRM's drm_display_mode which
> does not contain bus-flags. This broke panel-dpi, which didn't
> explicitly store the bus-flags into dssdev->bus_flags.
> 
> Fix this by setting dssdev->bus_flags. Also change the bus_flags type to
> u32, as that is the type used in the DRM framework, and we would get a
> warning with drm_bus_flags_from_videomode() otherwise.
> 
> Fixes: 3fbda31e814868d8477ddf52d74b7b8f596578e8 ("drm/omap: Split mode fixup
> and mode set from encoder enable")
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Reported-by: H. Nikolaus Schaller <hns@goldelico.com>

This looks good to me. Sorry for having overlooked that flags were parsed from 
DT in the first place.

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> ---
>  drivers/gpu/drm/omapdrm/displays/panel-dpi.c | 1 +
>  drivers/gpu/drm/omapdrm/dss/omapdss.h        | 2 +-
>  2 files changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dpi.c
> b/drivers/gpu/drm/omapdrm/displays/panel-dpi.c index
> 1f8161b041be..465120809eb3 100644
> --- a/drivers/gpu/drm/omapdrm/displays/panel-dpi.c
> +++ b/drivers/gpu/drm/omapdrm/displays/panel-dpi.c
> @@ -177,6 +177,7 @@ static int panel_dpi_probe(struct platform_device *pdev)
> dssdev->type = OMAP_DISPLAY_TYPE_DPI;
>  	dssdev->owner = THIS_MODULE;
>  	dssdev->of_ports = BIT(0);
> +	drm_bus_flags_from_videomode(&ddata->vm, &dssdev->bus_flags);
> 
>  	omapdss_display_init(dssdev);
>  	omapdss_device_register(dssdev);
> diff --git a/drivers/gpu/drm/omapdrm/dss/omapdss.h
> b/drivers/gpu/drm/omapdrm/dss/omapdss.h index 1f698a95a94a..33e15cb77efa
> 100644
> --- a/drivers/gpu/drm/omapdrm/dss/omapdss.h
> +++ b/drivers/gpu/drm/omapdrm/dss/omapdss.h
> @@ -432,7 +432,7 @@ struct omap_dss_device {
>  	const struct omap_dss_driver *driver;
>  	const struct omap_dss_device_ops *ops;
>  	unsigned long ops_flags;
> -	unsigned long bus_flags;
> +	u32 bus_flags;
> 
>  	/* helper variable for driver suspend/resume */
>  	bool activate_after_resume;
diff mbox series

Patch

diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dpi.c b/drivers/gpu/drm/omapdrm/displays/panel-dpi.c
index 1f8161b041be..465120809eb3 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-dpi.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-dpi.c
@@ -177,6 +177,7 @@  static int panel_dpi_probe(struct platform_device *pdev)
 	dssdev->type = OMAP_DISPLAY_TYPE_DPI;
 	dssdev->owner = THIS_MODULE;
 	dssdev->of_ports = BIT(0);
+	drm_bus_flags_from_videomode(&ddata->vm, &dssdev->bus_flags);
 
 	omapdss_display_init(dssdev);
 	omapdss_device_register(dssdev);
diff --git a/drivers/gpu/drm/omapdrm/dss/omapdss.h b/drivers/gpu/drm/omapdrm/dss/omapdss.h
index 1f698a95a94a..33e15cb77efa 100644
--- a/drivers/gpu/drm/omapdrm/dss/omapdss.h
+++ b/drivers/gpu/drm/omapdrm/dss/omapdss.h
@@ -432,7 +432,7 @@  struct omap_dss_device {
 	const struct omap_dss_driver *driver;
 	const struct omap_dss_device_ops *ops;
 	unsigned long ops_flags;
-	unsigned long bus_flags;
+	u32 bus_flags;
 
 	/* helper variable for driver suspend/resume */
 	bool activate_after_resume;