From c01072d4a9aa8c0287cca204f3198428c12420c7 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Mon, 25 Jan 2016 15:44:32 -0800 Subject: video: fbdev: mxsfb: fix pixelclock polarity The PIXDATA flags of the display_flags enum are controller centric, e.g. NEGEDGE means the controller shall drive the data signals on pixelclocks negative edge. However, the drivers flag is display centric: Sample the data on negative (falling) edge. Therefore, change the if statement to check for the POSEDGE flag (which is typically not set): Drive on positive edge => sample on negative edge Signed-off-by: Stefan Agner Acked-by: Max Krummenacher (cherry picked from commit 5652dc1ad78303fb246f050ba23c563319d823cf) --- drivers/video/fbdev/mxsfb.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/video/fbdev/mxsfb.c b/drivers/video/fbdev/mxsfb.c index 3864fbf60e0b..71ea8df544f1 100644 --- a/drivers/video/fbdev/mxsfb.c +++ b/drivers/video/fbdev/mxsfb.c @@ -1434,7 +1434,16 @@ static int mxsfb_init_fbinfo_dt(struct mxsfb_info *host) if (!(vm.flags & DISPLAY_FLAGS_DE_HIGH)) fb_vm.sync |= FB_SYNC_OE_LOW_ACT; - if (vm.flags & DISPLAY_FLAGS_PIXDATA_NEGEDGE) + + /* + * The PIXDATA flags of the display_flags enum are controller + * centric, e.g. NEGEDGE means drive data on negative edge. + * However, the drivers flag is display centric: Sample the + * data on negative (falling) edge. Therefore, check for the + * POSEDGE flag: + * drive on positive edge => sample on negative edge + */ + if (vm.flags & DISPLAY_FLAGS_PIXDATA_POSEDGE) fb_vm.sync |= FB_SYNC_CLK_LAT_FALL; if (i == timings->native_mode) { -- cgit v1.2.3