At Fri, 20 Apr 2012 13:05:48 +0100, Dave Airlie wrote: > > On Thu, Apr 19, 2012 at 3:58 PM, Takashi Iwai <tiwai at suse.de> wrote: > > At Thu, 19 Apr 2012 14:03:58 +0200, > > Takashi Iwai wrote: > >> > >> At Tue, 17 Apr 2012 17:26:26 +0200, > >> Takashi Iwai wrote: > >> > > >> > At Fri, 13 Apr 2012 16:56:26 -0400, > >> > Adam Jackson wrote: > >> > > > >> > > On 4/13/12 4:33 PM, Adam Jackson wrote: > >> > > > Incorporates some feedback from Rodrigo and Takashi. ?Major themes of the > >> > > > series: > >> > > > > >> > > > - Fix the DMT list to include reduced-blanking modes > >> > > > - Add modes from DMT for any range descriptor type > >> > > > - Add an extra modes list for things not in DMT > >> > > > - For ranges that specify a formula, generate timings from the extra modes > >> > > > > >> > > > This still doesn't address the driver policy decision of "I know I have > >> > > > a scaler, add modes as if there were a range descriptor even if there's > >> > > > not one". ?But it should at least make clear what such a helper function > >> > > > should do. > >> > > > >> > > One minor buglet in this series that's not obvious from inspection (and > >> > > that I didn't realize until just now) is that putting 1366x768 in the > >> > > minimode list won't do what you want, since the mode you get back will > >> > > be 1368x768. ?Probably we should move the manual-underscan hack into the > >> > > timing generators themselves. > >> > > >> > Sounds like a good compromise. ?We have already hacks in drm_edid.c > >> > for HDMI TV, so one exception more isn't that bad ;) > > I've pulled the series into -next along with the NULL check fix. Thanks! > the only outstanding bit is the hack. Also the packed attributes are missing in the new structs. The fix patch is below. Takashi --- From: Takashi Iwai <tiwai at suse.de> Subject: [PATCH 2/2] drm/edid: Add packed attribute to new gtf2 and cvt structs The new structs added in struct detailed_data_monitor_range must be marked with packed attribute although the outer struct itself is already marked as packed. Otherwise these 7-bytes structs may be aligned, and give the wrong position and size for the data. Signed-off-by: Takashi Iwai <tiwai at suse.de> --- include/drm/drm_edid.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h index 8cefbbe..0cac551 100644 --- a/include/drm/drm_edid.h +++ b/include/drm/drm_edid.h @@ -99,7 +99,7 @@ struct detailed_data_monitor_range { __le16 m; u8 k; u8 j; /* need to divide by 2 */ - } gtf2; + } __attribute__((packed)) gtf2; struct { u8 version; u8 data1; /* high 6 bits: extra clock resolution */ @@ -108,7 +108,7 @@ struct detailed_data_monitor_range { u8 flags; /* preferred aspect and blanking support */ u8 supported_scalings; u8 preferred_refresh; - } cvt; + } __attribute__((packed)) cvt; } formula; } __attribute__((packed)); -- 1.7.9.2