On 03/10/2014 10:47 AM, Rob Clark wrote: > Some of the w/a or different behavior of userspace blob driver seem to > be keyed to gpu patch revision, rather than gpu-id. So expose the full > chip-id to userspace so it can DTRT.
It is all chip-id all the time in the blob - we used to try to be clever with unique GPU IDs and such with it but we discovered over time that there is just too much drama. > Signed-off-by: Rob Clark <robdclark at gmail.com> Acked-by: Jordan Crouse <jcrouse at codeaurora.org> > --- > drivers/gpu/drm/msm/adreno/adreno_gpu.c | 6 ++++++ > include/uapi/drm/msm_drm.h | 1 + > 2 files changed, 7 insertions(+) > > diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c > b/drivers/gpu/drm/msm/adreno/adreno_gpu.c > index 7a11563..28ca8cd 100644 > --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c > +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c > @@ -73,6 +73,12 @@ int adreno_get_param(struct msm_gpu *gpu, uint32_t param, > uint64_t *value) > case MSM_PARAM_GMEM_SIZE: > *value = adreno_gpu->gmem; > return 0; > + case MSM_PARAM_CHIP_ID: > + *value = adreno_gpu->rev.patchid | > + (adreno_gpu->rev.minor << 8) | > + (adreno_gpu->rev.major << 16) | > + (adreno_gpu->rev.core << 24); > + return 0; > default: > DBG("%s: invalid param: %u", gpu->name, param); > return -EINVAL; > diff --git a/include/uapi/drm/msm_drm.h b/include/uapi/drm/msm_drm.h > index d3c6207..bf91a78 100644 > --- a/include/uapi/drm/msm_drm.h > +++ b/include/uapi/drm/msm_drm.h > @@ -50,6 +50,7 @@ struct drm_msm_timespec { > > #define MSM_PARAM_GPU_ID 0x01 > #define MSM_PARAM_GMEM_SIZE 0x02 > +#define MSM_PARAM_CHIP_ID 0x03 > > struct drm_msm_param { > uint32_t pipe; /* in, MSM_PIPE_x */ > -- The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation