Patch "drm/edid: Fix off-by-one in DispID DTD pixel clock" has been added to the 5.6-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    drm/edid: Fix off-by-one in DispID DTD pixel clock

to the 5.6-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     drm-edid-fix-off-by-one-in-dispid-dtd-pixel-clock.patch
and it can be found in the queue-5.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 95ed0220946a0b6a5b9c1210f2825215116e74ee
Author: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Date:   Thu Apr 23 18:17:43 2020 +0300

    drm/edid: Fix off-by-one in DispID DTD pixel clock
    
    commit 6292b8efe32e6be408af364132f09572aed14382 upstream.
    
    The DispID DTD pixel clock is documented as:
    "00 00 00 h â?? FF FF FF h | Pixel clock ÷ 10,000 0.01 â?? 167,772.16 Mega Pixels per Sec"
    Which seems to imply that we to add one to the raw value.
    
    Reality seems to agree as there are tiled displays in the wild
    which currently show a 10kHz difference in the pixel clock
    between the tiles (one tile gets its mode from the base EDID,
    the other from the DispID block).
    
    Cc: stable@xxxxxxxxxxxxxxx
    References: https://gitlab.freedesktop.org/drm/intel/-/issues/27
    Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
    Link: https://patchwork.freedesktop.org/patch/msgid/20200423151743.18767-1-ville.syrjala@xxxxxxxxxxxxxxx
    Reviewed-by: Manasi Navare <manasi.d.navare@xxxxxxxxx>
    Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 805fb004c8eb9..079800a07d6e9 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -5009,7 +5009,7 @@ static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *d
 	struct drm_display_mode *mode;
 	unsigned pixel_clock = (timings->pixel_clock[0] |
 				(timings->pixel_clock[1] << 8) |
-				(timings->pixel_clock[2] << 16));
+				(timings->pixel_clock[2] << 16)) + 1;
 	unsigned hactive = (timings->hactive[0] | timings->hactive[1] << 8) + 1;
 	unsigned hblank = (timings->hblank[0] | timings->hblank[1] << 8) + 1;
 	unsigned hsync = (timings->hsync[0] | (timings->hsync[1] & 0x7f) << 8) + 1;



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux