[PATCH V3 4/7] Add new mode function in drm backend

Hardening rdp.effort at gmail.com
Tue Apr 8 23:36:55 PDT 2014


Le 08/04/2014 07:03, Quanxian Wang a écrit :
> provide drm_output_new_mode interface to create new mode
> from outsite instead of only from edid or configure.
>
> Signed-off-by: Quanxian Wang <quanxian.wang at intel.com>
> ---
>   src/compositor-drm.c | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++
>   1 file changed, 76 insertions(+)
>
> diff --git a/src/compositor-drm.c b/src/compositor-drm.c
> index 154e15e..57e0585 100644
> --- a/src/compositor-drm.c
> +++ b/src/compositor-drm.c
> @@ -1390,6 +1390,80 @@ drm_output_add_mode(struct drm_output *output, drmModeModeInfo *info)
>   }
>

[...]

> +
> +static struct weston_mode *
> +drm_output_new_timing(struct weston_output *output,
> +		      uint32_t clock,
> +		      int hdisplay,
> +		      int hsync_start,
> +		      int hsync_end,
> +		      int htotal,
> +		      int vdisplay,
> +		      int vsync_start,
> +		      int vsync_end,
> +		      int vtotal,
> +		      int vscan,
> +		      uint32_t flags)
> +{
> +	drmModeModeInfo *modeinfo;
> +	struct drm_mode *mode = NULL;
> +
> +	modeinfo = malloc(sizeof(*modeinfo));
> +	if (modeinfo == NULL)
> +		return NULL;
> +	memset(modeinfo, 0x0, sizeof(*modeinfo));

Hardening: you should use zmalloc here

> +
> +	modeinfo->type = DRM_MODE_TYPE_USERDEF;
> +	modeinfo->hskew = 0;
> +	modeinfo->vrefresh = 0;
> +	modeinfo->hdisplay = hdisplay;

[...]

+
> +static int
>   drm_subpixel_to_wayland(int drm_value)
>   {
>   	switch (drm_value) {
> @@ -2046,6 +2120,8 @@ create_output_for_connector(struct drm_compositor *ec,
>   	output->base.assign_planes = drm_assign_planes;
>   	output->base.set_dpms = drm_set_dpms;
>   	output->base.switch_mode = drm_output_switch_mode;
> +	output->base.new_timing = drm_output_new_timing;
> +	output->base.compare_timing = drm_output_compare_timing;
>
>   	output->base.gamma_size = output->original_crtc->gamma_size;
>   	output->base.set_gamma = drm_output_set_gamma;
>

Regards.
-- 
David FORT
website: http://www.hardening-consulting.com/


More information about the wayland-devel mailing list