drm_edid: There should be 6 Standard Timings
authorDan Carpenter <error27@gmail.com>
Fri, 14 May 2010 11:06:19 +0000 (13:06 +0200)
committerDave Airlie <airlied@redhat.com>
Tue, 18 May 2010 05:56:14 +0000 (15:56 +1000)
Smatch complained that we initialize 6 elements in add_detailed_modes()
but the timings[] array is declared with 5 elements.  Adam Jackson
verified that 6 is the correct number of timings.

On Mon, May 10, 2010 at 12:08:24PM -0400, Adam Jackson wrote:
> > >                 struct std_timing timings[5];
> > >                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> This decl is wrong, should be 6.  From the 1.4 spec:
>
> "Six additional Standard Timings may be listed as a display descriptor
> (tag #FAh)."
>
> The 1.3 spec is a little less explicit about it, but does show 6
> standard timing codes in the 0xFA detailed subblock, terminated by 0x0A
> in the 18th byte.  I don't have the docs for 1.2 or earlier, but we're
> paranoid enough about not adding broken timings that we should be fine.

This patch is basically a clean up, because timings[] is declared inside
a union and increasing the number of elements here doesn't change the
overall size of the union.

Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
include/drm/drm_edid.h

index d33c3e0..39e2cc5 100644 (file)
@@ -120,7 +120,7 @@ struct detailed_non_pixel {
                struct detailed_data_string str;
                struct detailed_data_monitor_range range;
                struct detailed_data_wpindex color;
-               struct std_timing timings[5];
+               struct std_timing timings[6];
                struct cvt_timing cvt[4];
        } data;
 } __attribute__((packed));