[PATCH RESEND v3 1/2] drm: introduce bus_flags in drm_display_info

Mark yao mark.yao at rock-chips.com
Thu May 5 06:18:34 UTC 2016


Hi Stefan

Actually, the pixel clock or data enable polarity are also needed by 
drm/rockchip,

but I have a question:

why not add these polarity into drm_display_mode->flags. 
drm_display_mode->flags has hsync and vsync polarity,
I think it's cool that add pixel clock or data enable polarity on 
drm_display_mode->flags.

The polarity seems should be used on crtc, but crtc can't direct get the 
panel, save polarity on panel_desc means need more work to transmit it 
to crtc.

Thanks.

On 2016年05月05日 13:08, Stefan Agner wrote:
> Introduce bus_flags to specify display bus properties like signal
> polarities. This is useful for parallel display buses, e.g. to
> specify the pixel clock or data enable polarity.
>
> Suggested-by: Thierry Reding <thierry.reding at gmail.com>
> Acked-by: Philipp Zabel <p.zabel at pengutronix.de>
> Acked-by: Manfred Schlaegl <manfred.schlaegl at gmx.at>
> Acked-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> Signed-off-by: Stefan Agner <stefan at agner.ch>
> ---
>   drivers/gpu/drm/panel/panel-simple.c | 2 ++
>   include/drm/drm_crtc.h               | 9 +++++++++
>   2 files changed, 11 insertions(+)
>
> diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
> index ceb2048..77ae07f 100644
> --- a/drivers/gpu/drm/panel/panel-simple.c
> +++ b/drivers/gpu/drm/panel/panel-simple.c
> @@ -72,6 +72,7 @@ struct panel_desc {
>   	} delay;
>   
>   	u32 bus_format;
> +	u32 bus_flags;
>   };
>   
>   struct panel_simple {
> @@ -144,6 +145,7 @@ static int panel_simple_get_fixed_modes(struct panel_simple *panel)
>   	if (panel->desc->bus_format)
>   		drm_display_info_set_bus_formats(&connector->display_info,
>   						 &panel->desc->bus_format, 1);
> +	connector->display_info.bus_flags = panel->desc->bus_flags;
>   
>   	return num;
>   }
> diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
> index 4acdaf5..d1559cd 100644
> --- a/include/drm/drm_crtc.h
> +++ b/include/drm/drm_crtc.h
> @@ -118,6 +118,14 @@ enum subpixel_order {
>   #define DRM_COLOR_FORMAT_RGB444		(1<<0)
>   #define DRM_COLOR_FORMAT_YCRCB444	(1<<1)
>   #define DRM_COLOR_FORMAT_YCRCB422	(1<<2)
> +
> +#define DRM_BUS_FLAG_DE_LOW		(1<<0)
> +#define DRM_BUS_FLAG_DE_HIGH		(1<<1)
> +/* drive data on pos. edge */
> +#define DRM_BUS_FLAG_PIXDATA_POSEDGE	(1<<2)
> +/* drive data on neg. edge */
> +#define DRM_BUS_FLAG_PIXDATA_NEGEDGE	(1<<3)
> +
>   /*
>    * Describes a given display (e.g. CRT or flat panel) and its limitations.
>    */
> @@ -139,6 +147,7 @@ struct drm_display_info {
>   
>   	const u32 *bus_formats;
>   	unsigned int num_bus_formats;
> +	u32 bus_flags;
>   
>   	/* Mask of supported hdmi deep color modes */
>   	u8 edid_hdmi_dc_modes;


-- 
Mark Yao




More information about the dri-devel mailing list