• Archit Taneja's avatar
    drm/msm/dsi: Use a better way to figure out DSI version · 648d5063
    Archit Taneja authored
    The current version checking mechanism works fine for DSI6G blocks. It
    doesn't work so well for older generation DSIv2 blocks.
    
    The initial read of REG_DSI_6G_HW_VERSION(offset 0x0) would result in a
    read of REG_DSI_CTRL for DSIv2. This register won't necessarily be 0 on
    DSIv2. It can be non zero if DSI was previously initialized by the
    bootloader.
    
    Instead of reading offset 0x0, we now read offset 0x1f0. For DSIv2, this
    register is DSI_VERSION, and is bound to be non-zero. On DSI6G, this
    register(offset 0x1f0) is SCRATCH_REGISTER_0, which no one ever seems to
    touch, and from all register dumps I'vc seen, holds 0 all the time.
    
    Modify dsi_get_version to read REG_DSI_VERSION to determine whether we
    are DSI6G or DSIv2.
    Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
    Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
    648d5063
dsi_host.c 49.3 KB