Re: [PATCH v2 04/49] drm/omap: dsi: Hack-fix DSI bus flags

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Fri, Jan 11, 2019 at 05:50:35AM +0200, Laurent Pinchart wrote:
> From: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
> 
> Since commit b4935e3a3cfa ("drm/omap: Store bus flags in the
> omap_dss_device structure") video mode flags are managed by the omapdss
> (and later omapdrm) core based on bus flags stored in omap_dss_device.
> This works fine for all devices whose video modes are set by the omapdss
> and omapdrm core, but breaks DSI operation as the DSI still uses legacy
> code paths and sets the DISPC timings manually.
> 
> To fix the problem properly we should move the DSI encoder to the new
> encoder model. This will however require a considerable amount of work.
> Restore DSI operation by adding back video mode flags handling in the
> DSI encoder driver as a hack in the meantime.
> 
> Fixes: b4935e3a3cfa ("drm/omap: Store bus flags in the omap_dss_device structure")
> Signed-off-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
> ---

Reviewed-by: Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxx>

-- Sebastian

>  drivers/gpu/drm/omapdrm/dss/dsi.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.c b/drivers/gpu/drm/omapdrm/dss/dsi.c
> index b5685018d830..64fb788b6647 100644
> --- a/drivers/gpu/drm/omapdrm/dss/dsi.c
> +++ b/drivers/gpu/drm/omapdrm/dss/dsi.c
> @@ -4751,6 +4751,17 @@ static int dsi_set_config(struct omap_dss_device *dssdev,
>  	dsi->vm.flags |= DISPLAY_FLAGS_HSYNC_HIGH;
>  	dsi->vm.flags &= ~DISPLAY_FLAGS_VSYNC_LOW;
>  	dsi->vm.flags |= DISPLAY_FLAGS_VSYNC_HIGH;
> +	/*
> +	 * HACK: These flags should be handled through the omap_dss_device bus
> +	 * flags, but this will only be possible when the DSI encoder will be
> +	 * converted to the omapdrm-managed encoder model.
> +	 */
> +	dsi->vm.flags &= ~DISPLAY_FLAGS_PIXDATA_NEGEDGE;
> +	dsi->vm.flags |= DISPLAY_FLAGS_PIXDATA_POSEDGE;
> +	dsi->vm.flags &= ~DISPLAY_FLAGS_DE_LOW;
> +	dsi->vm.flags |= DISPLAY_FLAGS_DE_HIGH;
> +	dsi->vm.flags &= ~DISPLAY_FLAGS_SYNC_POSEDGE;
> +	dsi->vm.flags |= DISPLAY_FLAGS_SYNC_NEGEDGE;
>  
>  	dss_mgr_set_timings(&dsi->output, &dsi->vm);
>  
> -- 
> Regards,
> 
> Laurent Pinchart
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@xxxxxxxxxxxxxxxxxxxxx
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

Attachment: signature.asc
Description: PGP signature

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

[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux