summaryrefslogtreecommitdiff
path: root/drivers/gpu
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@quicinc.com>2017-07-04 01:20:54 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-07-04 01:20:54 -0700
commita8e21e678d36886db5eb85e0c9de5bf7418827eb (patch)
tree0229c44dceb1774756ecc3ebd2880ab6338167f1 /drivers/gpu
parent4a528fd7b8e00235d4f314a4cf30adacede764b4 (diff)
parent9d7874731a1df1bda90575174e2c1821e80b269a (diff)
Merge "drm/msm: Add a parameter query for the number of ringbuffers"
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/msm/adreno/a5xx_gpu.c14
-rw-r--r--drivers/gpu/drm/msm/adreno/adreno_gpu.c3
2 files changed, 11 insertions, 6 deletions
diff --git a/drivers/gpu/drm/msm/adreno/a5xx_gpu.c b/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
index 687ca96d0636..e27ea604ac5b 100644
--- a/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
@@ -125,7 +125,8 @@ static void a5xx_submit(struct msm_gpu *gpu, struct msm_gem_submit *submit)
struct msm_ringbuffer *ring = gpu->rb[submit->ring];
unsigned int i, ibs = 0;
unsigned long flags;
- u64 ktime, ticks;
+ u64 ticks;
+ ktime_t time;
a5xx_set_pagetable(gpu, ring, submit->aspace);
@@ -253,18 +254,19 @@ static void a5xx_submit(struct msm_gpu *gpu, struct msm_gem_submit *submit)
local_irq_save(flags);
ticks = gpu_read64(gpu, REG_A5XX_RBBM_ALWAYSON_COUNTER_LO,
REG_A5XX_RBBM_ALWAYSON_COUNTER_HI);
- ktime = ktime_get_raw_ns();
+ time = ktime_get_raw();
local_irq_restore(flags);
if (submit->profile_buf) {
- /* Write the data into the use-specified profile buffer */
+ struct timespec64 ts = ktime_to_timespec64(time);
- submit->profile_buf->queue_time = ktime;
- submit->profile_buf->submit_time = ktime;
+ /* Write the data into the user-specified profile buffer */
+ submit->profile_buf->time.tv_sec = ts.tv_sec;
+ submit->profile_buf->time.tv_nsec = ts.tv_nsec;
submit->profile_buf->ticks_queued = ticks;
}
- trace_msm_submitted(submit, ticks, ktime);
+ trace_msm_submitted(submit, ticks, ktime_to_ns(time));
a5xx_flush(gpu, ring);
diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
index 9f3d957499d3..2a5683e3034b 100644
--- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
@@ -51,6 +51,9 @@ int adreno_get_param(struct msm_gpu *gpu, uint32_t param, uint64_t *value)
if (adreno_gpu->funcs->get_timestamp)
return adreno_gpu->funcs->get_timestamp(gpu, value);
return -EINVAL;
+ case MSM_PARAM_NR_RINGS:
+ *value = gpu->nr_rings;
+ return 0;
default:
DBG("%s: invalid param: %u", gpu->name, param);
return -EINVAL;