• Hans de Goede's avatar
    drm/i915/dsi: Use unconditional msleep for the panel_on_delay when there is no... · 00cb645f
    Hans de Goede authored
    drm/i915/dsi: Use unconditional msleep for the panel_on_delay when there is no reset-deassert MIPI-sequence
    
    Commit 25b4620e ("drm/i915/dsi: Skip delays for v3 VBTs in vid-mode")
    added an intel_dsi_msleep() helper which skips sleeping if the
    MIPI-sequences have a version of 3 or newer and the panel is in vid-mode;
    and it moved a bunch of msleep-s over to this new helper.
    
    This was based on my reading of the big comment around line 730 which
    starts with "Panel enable/disable sequences from the VBT spec.",
    where the "v3 video mode seq" column does not have any wait t# entries.
    
    Given that this code has been used on a lot of different devices without
    issues until now, it seems that my interpretation of the spec here is
    mostly correct.
    
    But now I have encountered one device, an Acer Aspire Switch 10 E
    SW3-016, where the panel will not light up unless we do actually honor the
    panel_on_delay after exexuting the MIPI_SEQ_PANEL_ON sequence.
    
    What seems to set this model apart is that it is lacking a
    MIPI_SEQ_DEASSERT_RESET sequence, which is where the power-on
    delay usually happens.
    
    Fix the panel not lighting up on this model by using an unconditional
    msleep(panel_on_delay) instead of intel_dsi_msleep() when there is
    no MIPI_SEQ_DEASSERT_RESET sequence.
    
    Fixes: 25b4620e ("drm/i915/dsi: Skip delays for v3 VBTs in vid-mode")
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20201118124058.26021-1-hdegoede@redhat.com
    (cherry picked from commit 6fdb335f)
    Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
    00cb645f
vlv_dsi.c 60.4 KB