From 8feddd88d03c7f26adb856d4ff98f5e17e405a21 Mon Sep 17 00:00:00 2001 From: Chris Dragan Date: Fri, 20 Nov 2015 02:27:13 -0800 Subject: gpu: nvgpu: add API to extract GPU timeout mode Bug 1706457 Change-Id: Iab76bcb7cabc55d99b5acd932716d30da6f01b46 Signed-off-by: Chris Dragan Reviewed-on: http://git-master/r/835852 Reviewed-on: http://git-master/r/836454 Reviewed-by: Terje Bergstrom Tested-by: Terje Bergstrom --- drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c | 21 +++++++++++++++++++++ include/uapi/linux/nvgpu.h | 3 +++ 2 files changed, 24 insertions(+) diff --git a/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c b/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c index 1c351d9e..1397549e 100644 --- a/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c @@ -449,6 +449,22 @@ static int nvgpu_dbg_gpu_ioctl_timeout(struct dbg_session_gk20a *dbg_s, return err; } +static void nvgpu_dbg_gpu_ioctl_get_timeout(struct dbg_session_gk20a *dbg_s, + struct nvgpu_dbg_gpu_timeout_args *args) +{ + int status; + struct gk20a *g = get_gk20a(dbg_s->pdev); + + mutex_lock(&g->dbg_sessions_lock); + status = g->timeouts_enabled; + mutex_unlock(&g->dbg_sessions_lock); + + if (status) + args->enable = NVGPU_DBG_GPU_IOCTL_TIMEOUT_ENABLE; + else + args->enable = NVGPU_DBG_GPU_IOCTL_TIMEOUT_DISABLE; +} + long gk20a_dbg_gpu_dev_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) { @@ -531,6 +547,11 @@ long gk20a_dbg_gpu_dev_ioctl(struct file *filp, unsigned int cmd, (struct nvgpu_dbg_gpu_timeout_args *)buf); break; + case NVGPU_DBG_GPU_IOCTL_GET_TIMEOUT: + nvgpu_dbg_gpu_ioctl_get_timeout(dbg_s, + (struct nvgpu_dbg_gpu_timeout_args *)buf); + break; + default: gk20a_err(dev_from_gk20a(g), "unrecognized dbg gpu ioctl cmd: 0x%x", diff --git a/include/uapi/linux/nvgpu.h b/include/uapi/linux/nvgpu.h index 6eca445c..d93f5a27 100644 --- a/include/uapi/linux/nvgpu.h +++ b/include/uapi/linux/nvgpu.h @@ -596,6 +596,9 @@ struct nvgpu_dbg_gpu_timeout_args { #define NVGPU_DBG_GPU_IOCTL_TIMEOUT \ _IOW(NVGPU_DBG_GPU_IOCTL_MAGIC, 10, struct nvgpu_dbg_gpu_timeout_args) +#define NVGPU_DBG_GPU_IOCTL_GET_TIMEOUT \ + _IOR(NVGPU_DBG_GPU_IOCTL_MAGIC, 11, struct nvgpu_dbg_gpu_timeout_args) + #define NVGPU_DBG_GPU_IOCTL_LAST \ _IOC_NR(NVGPU_DBG_GPU_IOCTL_TIMEOUT) #define NVGPU_DBG_GPU_IOCTL_MAX_ARG_SIZE \ -- cgit v1.2.2