diff --git a/drivers/gpu/nvgpu/include/nvgpu/enabled.h b/drivers/gpu/nvgpu/include/nvgpu/enabled.h index 82f9e6d2f..f2b5dbf7d 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/enabled.h +++ b/drivers/gpu/nvgpu/include/nvgpu/enabled.h @@ -78,28 +78,28 @@ struct gk20a; /* NVGPU_IOCTL_CHANNEL_CYCLE_STATS_SNAPSHOT is available */ #define NVGPU_SUPPORT_CYCLE_STATS_SNAPSHOT 33 /* Both gpu driver and device support TSG */ -#define NVGPU_SUPPORT_TSG 33 +#define NVGPU_SUPPORT_TSG 34 /* Fast deterministic submits with no job tracking are supported */ -#define NVGPU_SUPPORT_DETERMINISTIC_SUBMIT_NO_JOBTRACKING 34 +#define NVGPU_SUPPORT_DETERMINISTIC_SUBMIT_NO_JOBTRACKING 35 /* Deterministic submits are supported even with job tracking */ -#define NVGPU_SUPPORT_DETERMINISTIC_SUBMIT_FULL 35 +#define NVGPU_SUPPORT_DETERMINISTIC_SUBMIT_FULL 36 /* NVGPU_SUBMIT_GPFIFO_FLAGS_RESCHEDULE_RUNLIST is available */ -#define NVGPU_SUPPORT_RESCHEDULE_RUNLIST 36 +#define NVGPU_SUPPORT_RESCHEDULE_RUNLIST 37 /* NVGPU_GPU_IOCTL_GET_EVENT_FD is available */ -#define NVGPU_SUPPORT_DEVICE_EVENTS 37 +#define NVGPU_SUPPORT_DEVICE_EVENTS 38 /* FECS context switch tracing is available */ -#define NVGPU_SUPPORT_FECS_CTXSW_TRACE 38 +#define NVGPU_SUPPORT_FECS_CTXSW_TRACE 39 /* NVGPU_GPU_IOCTL_SET_DETERMINISTIC_OPTS is available */ -#define NVGPU_SUPPORT_DETERMINISTIC_OPTS 39 +#define NVGPU_SUPPORT_DETERMINISTIC_OPTS 40 /* * Security flags */ -#define NVGPU_SEC_SECUREGPCCS 40 -#define NVGPU_SEC_PRIVSECURITY 41 +#define NVGPU_SEC_SECUREGPCCS 41 +#define NVGPU_SEC_PRIVSECURITY 42 /* * PMU flags. diff --git a/drivers/gpu/nvgpu/vgpu/gm20b/vgpu_gr_gm20b.c b/drivers/gpu/nvgpu/vgpu/gm20b/vgpu_gr_gm20b.c index 56b1edbcd..fca6525a8 100644 --- a/drivers/gpu/nvgpu/vgpu/gm20b/vgpu_gr_gm20b.c +++ b/drivers/gpu/nvgpu/vgpu/gm20b/vgpu_gr_gm20b.c @@ -30,10 +30,20 @@ void vgpu_gr_gm20b_init_cyclestats(struct gk20a *g) { #if defined(CONFIG_GK20A_CYCLE_STATS) - __nvgpu_set_enabled(g, NVGPU_SUPPORT_CYCLE_STATS, true); - __nvgpu_set_enabled(g, NVGPU_SUPPORT_CYCLE_STATS_SNAPSHOT, true); + bool snapshots_supported = true; + + /* cyclestats not supported on vgpu */ + __nvgpu_set_enabled(g, NVGPU_SUPPORT_CYCLE_STATS, false); + g->gpu_characteristics.max_css_buffer_size = vgpu_css_get_buffer_size(g); + + /* snapshots not supported if the buffer size is 0 */ + if (g->gpu_characteristics.max_css_buffer_size == 0) + snapshots_supported = false; + + __nvgpu_set_enabled(g, NVGPU_SUPPORT_CYCLE_STATS_SNAPSHOT, + snapshots_supported); #endif } diff --git a/drivers/gpu/nvgpu/vgpu/vgpu.c b/drivers/gpu/nvgpu/vgpu/vgpu.c index 2cd99e8c7..c753fd970 100644 --- a/drivers/gpu/nvgpu/vgpu/vgpu.c +++ b/drivers/gpu/nvgpu/vgpu/vgpu.c @@ -371,7 +371,6 @@ int vgpu_init_gpu_characteristics(struct gk20a *g) g->gpu_characteristics.map_buffer_batch_limit = 0; /* features vgpu does not support */ - __nvgpu_set_enabled(g, NVGPU_SUPPORT_CYCLE_STATS, false); __nvgpu_set_enabled(g, NVGPU_SUPPORT_RESCHEDULE_RUNLIST, false); return 0;