[Intel-gfx] [PATCH 04/12] video/hmdi: Clear the whole incoming buffer, not just the infoframe size

Ville Syrjälä ville.syrjala at linux.intel.com
Wed Aug 7 03:56:58 PDT 2013


On Tue, Aug 06, 2013 at 08:32:16PM +0100, Damien Lespiau wrote:
> If the user if this API is providing a bigger buffer than the infoframe
> size, it could be for a could reason. For instance it could be because
> it gives the buffer that will be written to the hardware, up to the
> maximum of an infoframe size.
> 
> Instead of just zeroing up to the infoframe size, let's zero the whole
> incoming buffer as those extra bytes are also used to compute the
> ECC and need to be 0.
> 
> Signed-off-by: Damien Lespiau <damien.lespiau at intel.com>

One concern that came to mind was someone needing to preserve the buffer
contents beyond the infoframe. But I guess if someone really needs to
do that, they can go and figure out the exact length of the infoframe
and pass that.

Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com>

> ---
>  drivers/video/hdmi.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/video/hdmi.c b/drivers/video/hdmi.c
> index f7a85e5..635d569 100644
> --- a/drivers/video/hdmi.c
> +++ b/drivers/video/hdmi.c
> @@ -84,7 +84,7 @@ ssize_t hdmi_avi_infoframe_pack(struct hdmi_avi_infoframe *frame, void *buffer,
>  	if (size < length)
>  		return -ENOSPC;
>  
> -	memset(buffer, 0, length);
> +	memset(buffer, 0, size);
>  
>  	ptr[0] = frame->type;
>  	ptr[1] = frame->version;
> @@ -186,7 +186,7 @@ ssize_t hdmi_spd_infoframe_pack(struct hdmi_spd_infoframe *frame, void *buffer,
>  	if (size < length)
>  		return -ENOSPC;
>  
> -	memset(buffer, 0, length);
> +	memset(buffer, 0, size);
>  
>  	ptr[0] = frame->type;
>  	ptr[1] = frame->version;
> @@ -251,7 +251,7 @@ ssize_t hdmi_audio_infoframe_pack(struct hdmi_audio_infoframe *frame,
>  	if (size < length)
>  		return -ENOSPC;
>  
> -	memset(buffer, 0, length);
> +	memset(buffer, 0, size);
>  
>  	if (frame->channels >= 2)
>  		channels = frame->channels - 1;
> @@ -308,7 +308,7 @@ ssize_t hdmi_vendor_infoframe_pack(struct hdmi_vendor_infoframe *frame,
>  	if (size < length)
>  		return -ENOSPC;
>  
> -	memset(buffer, 0, length);
> +	memset(buffer, 0, size);
>  
>  	ptr[0] = frame->type;
>  	ptr[1] = frame->version;
> -- 
> 1.8.3.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Ville Syrjälä
Intel OTC


More information about the dri-devel mailing list