aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/hdmi.c
diff options
context:
space:
mode:
authorDamien Lespiau <damien.lespiau@intel.com>2013-08-06 15:32:16 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-08-08 08:04:46 -0400
commit3b390f62674eb70522057e58b1787f2cfa2f57c1 (patch)
tree244ee0a1fe00ab1102d9d3637b2d9e742e313ff4 /drivers/video/hdmi.c
parent61177b0e12ba162d5de206914e8703d8eb90ad19 (diff)
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: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Dave Airlie <airlied@gmail.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/video/hdmi.c')
-rw-r--r--drivers/video/hdmi.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/video/hdmi.c b/drivers/video/hdmi.c
index f7a85e5b7370..635d5690dd5a 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,
84 if (size < length) 84 if (size < length)
85 return -ENOSPC; 85 return -ENOSPC;
86 86
87 memset(buffer, 0, length); 87 memset(buffer, 0, size);
88 88
89 ptr[0] = frame->type; 89 ptr[0] = frame->type;
90 ptr[1] = frame->version; 90 ptr[1] = frame->version;
@@ -186,7 +186,7 @@ ssize_t hdmi_spd_infoframe_pack(struct hdmi_spd_infoframe *frame, void *buffer,
186 if (size < length) 186 if (size < length)
187 return -ENOSPC; 187 return -ENOSPC;
188 188
189 memset(buffer, 0, length); 189 memset(buffer, 0, size);
190 190
191 ptr[0] = frame->type; 191 ptr[0] = frame->type;
192 ptr[1] = frame->version; 192 ptr[1] = frame->version;
@@ -251,7 +251,7 @@ ssize_t hdmi_audio_infoframe_pack(struct hdmi_audio_infoframe *frame,
251 if (size < length) 251 if (size < length)
252 return -ENOSPC; 252 return -ENOSPC;
253 253
254 memset(buffer, 0, length); 254 memset(buffer, 0, size);
255 255
256 if (frame->channels >= 2) 256 if (frame->channels >= 2)
257 channels = frame->channels - 1; 257 channels = frame->channels - 1;
@@ -308,7 +308,7 @@ ssize_t hdmi_vendor_infoframe_pack(struct hdmi_vendor_infoframe *frame,
308 if (size < length) 308 if (size < length)
309 return -ENOSPC; 309 return -ENOSPC;
310 310
311 memset(buffer, 0, length); 311 memset(buffer, 0, size);
312 312
313 ptr[0] = frame->type; 313 ptr[0] = frame->type;
314 ptr[1] = frame->version; 314 ptr[1] = frame->version;