Commit 3b390f62 authored by Damien Lespiau's avatar Damien Lespiau Committed by Daniel Vetter

video/hmdi: Clear the whole incoming buffer, not just the infoframe size

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: default avatarDamien Lespiau <damien.lespiau@intel.com>
Acked-by: default avatarDave Airlie <airlied@gmail.com>
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent 61177b0e
...@@ -84,7 +84,7 @@ ssize_t hdmi_avi_infoframe_pack(struct hdmi_avi_infoframe *frame, void *buffer, ...@@ -84,7 +84,7 @@ ssize_t hdmi_avi_infoframe_pack(struct hdmi_avi_infoframe *frame, void *buffer,
if (size < length) if (size < length)
return -ENOSPC; return -ENOSPC;
memset(buffer, 0, length); memset(buffer, 0, size);
ptr[0] = frame->type; ptr[0] = frame->type;
ptr[1] = frame->version; ptr[1] = frame->version;
...@@ -186,7 +186,7 @@ ssize_t hdmi_spd_infoframe_pack(struct hdmi_spd_infoframe *frame, void *buffer, ...@@ -186,7 +186,7 @@ ssize_t hdmi_spd_infoframe_pack(struct hdmi_spd_infoframe *frame, void *buffer,
if (size < length) if (size < length)
return -ENOSPC; return -ENOSPC;
memset(buffer, 0, length); memset(buffer, 0, size);
ptr[0] = frame->type; ptr[0] = frame->type;
ptr[1] = frame->version; ptr[1] = frame->version;
...@@ -251,7 +251,7 @@ ssize_t hdmi_audio_infoframe_pack(struct hdmi_audio_infoframe *frame, ...@@ -251,7 +251,7 @@ ssize_t hdmi_audio_infoframe_pack(struct hdmi_audio_infoframe *frame,
if (size < length) if (size < length)
return -ENOSPC; return -ENOSPC;
memset(buffer, 0, length); memset(buffer, 0, size);
if (frame->channels >= 2) if (frame->channels >= 2)
channels = frame->channels - 1; channels = frame->channels - 1;
...@@ -308,7 +308,7 @@ ssize_t hdmi_vendor_infoframe_pack(struct hdmi_vendor_infoframe *frame, ...@@ -308,7 +308,7 @@ ssize_t hdmi_vendor_infoframe_pack(struct hdmi_vendor_infoframe *frame,
if (size < length) if (size < length)
return -ENOSPC; return -ENOSPC;
memset(buffer, 0, length); memset(buffer, 0, size);
ptr[0] = frame->type; ptr[0] = frame->type;
ptr[1] = frame->version; ptr[1] = frame->version;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment