drm/msm: Add adreno_gpu_write64()
authorJordan Crouse <jcrouse@codeaurora.org>
Mon, 28 Nov 2016 19:28:29 +0000 (12:28 -0700)
committerRob Clark <robdclark@gmail.com>
Mon, 28 Nov 2016 20:14:12 +0000 (15:14 -0500)
commitfb039981923950716c4e5bccef19d1716ffd298e
tree1f1d7626daba1bbc4a05ed7018c08f88f0d767f6
parentae53a829d5c9715b651ee33e266eaa4454e7f2ad
drm/msm: Add adreno_gpu_write64()

Add a new generic function to write a "64" bit value. This isn't
actually a 64 bit operation, it just writes the upper and lower
32 bit of a 64 bit value to a specified LO and HI register.  If
a particular target doesn't support one of the registers it can
mark that register as SKIP and writes/reads from that register
will be quietly dropped.

This can be immediately put in place for the ringbuffer base and
the RPTR address.  Both writes are converted to use
adreno_gpu_write64() with their respective high and low registers
and the high register appropriately marked as SKIP for both 32 bit
targets (a3xx and a4xx). When a5xx comes it will define valid target
registers for the 'hi' option and everything else will just work.

Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Rob Clark <robdclark@gmail.com>
drivers/gpu/drm/msm/adreno/a3xx_gpu.c
drivers/gpu/drm/msm/adreno/a4xx_gpu.c
drivers/gpu/drm/msm/adreno/adreno_gpu.c
drivers/gpu/drm/msm/adreno/adreno_gpu.h