From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Blum Subject: Wrong vsync offset calculation in drm_edid.c Date: Thu, 07 Mar 2013 16:41:20 +0100 Message-ID: <5138B520.40903@lxco.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: Received: from europa.linuxwerkstatt.net (europa.linuxwerkstatt.net [85.214.20.210]) by gabe.freedesktop.org (Postfix) with ESMTP id B8B44E5D0C for ; Thu, 7 Mar 2013 07:50:57 -0800 (PST) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org This patch is a bug fix for the file drm_edid.c of the kernel 3.8. The vsync offset is calculated wrong from the EDID set because of the wrong shift direction. We could measure the bad old setting and also the good new setting after the bug fix. Signed-off-by: Peter Blum diff -Naur a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c --- a/drivers/gpu/drm/drm_edid.c 2013-02-19 00:58:34.000000000 +0100 +++ b/drivers/gpu/drm/drm_edid.c 2013-03-07 12:04:24.527609783 +0100 @@ -893,7 +893,7 @@ unsigned vblank = (pt->vactive_vblank_hi & 0xf) << 8 | pt->vblank_lo; unsigned hsync_offset = (pt->hsync_vsync_offset_pulse_width_hi & 0xc0) << 2 | pt->hsync_offset_lo; unsigned hsync_pulse_width = (pt->hsync_vsync_offset_pulse_width_hi & 0x30) << 4 | pt->hsync_pulse_width_lo; - unsigned vsync_offset = (pt->hsync_vsync_offset_pulse_width_hi & 0xc) >> 2 | pt->vsync_offset_pulse_width_lo >> 4; + unsigned vsync_offset = (pt->hsync_vsync_offset_pulse_width_hi & 0xc) << 2 | pt->vsync_offset_pulse_width_lo >> 4; unsigned vsync_pulse_width = (pt->hsync_vsync_offset_pulse_width_hi & 0x3) << 4 | (pt->vsync_offset_pulse_width_lo & 0xf); /* ignore tiny modes */