drm/msm/dsi: Use a better way to figure out DSI version
authorArchit Taneja <architt@codeaurora.org>
Fri, 9 Oct 2015 05:40:59 +0000 (11:10 +0530)
committerRob Clark <robdclark@gmail.com>
Mon, 14 Dec 2015 15:40:18 +0000 (10:40 -0500)
commit648d5063727ae3f555317baf6a5d2dc1e8e8d2a5
tree64b6f2048b4bbd3dc8acd36c7c94d453aa3b73da
parentc6538de8dd5e08a5f2aac80900b170f2523711fb
drm/msm/dsi: Use a better way to figure out DSI version

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: Archit Taneja <architt@codeaurora.org>
Signed-off-by: Rob Clark <robdclark@gmail.com>
drivers/gpu/drm/msm/dsi/dsi_host.c