• Hans de Goede's avatar
    drm/i915/vlv: Add cdclk workaround for DSI · c8dae55a
    Hans de Goede authored
    At least on the Chuwi Vi8 (non pro/plus) the LCD panel will show an image
    shifted aprox. 20% to the left (with wraparound) and sometimes also wrong
    colors, showing that the panel controller is starting with sampling the
    datastream somewhere mid-line. This happens after the first blanking and
    re-init of the panel.
    
    After looking at drm.debug output I noticed that initially we inherit the
    cdclk of 333333 KHz set by the GOP, but after the re-init we picked 266667
    KHz, which turns out to be the cause of this problem, a quick hack to hard
    code the cdclk to 333333 KHz makes the problem go away.
    
    I've tested this on various Bay Trail devices, to make sure this not does
    cause regressions on other devices and the higher cdclk does not cause
    any problems on the following devices:
    -GP-electronic T701      1024x600   333333 KHz cdclk after this patch
    -PEAQ C1010              1920x1200  333333 KHz cdclk after this patch
    -PoV mobii-wintab-800w    800x1280  333333 KHz cdclk after this patch
    -Asus Transformer-T100TA 1368x768   320000 KHz cdclk after this patch
    
    Also interesting wrt this is the comment in vlv_calc_cdclk about the
    existing workaround to avoid 200 Mhz as clock because that causes issues
    in some cases.
    
    This commit extends the "do not use 200 Mhz" workaround with an extra
    check to require atleast 320000 KHz (avoiding 266667 KHz) when a DSI
    panel is active.
    
    Changes in v2:
    -Change the commit message and the code comment to not treat the GOP as
     a reference, the GOP should not be treated as a reference
    Acked-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171220105017.11259-1-hdegoede@redhat.com
    c8dae55a
intel_cdclk.c 63.1 KB