From c6b846d34c1a3a92a856eed33c5a5175885a273a Mon Sep 17 00:00:00 2001 From: Richard Zhao Date: Thu, 1 Mar 2018 14:47:35 -0800 Subject: gpu: nvgpu: add gops.semaphore_wakeup HAL vserver handles semaphore differently from native, so it needs a callback to differentiate from native. Also created common function mc_gk20a_handle_intr_nonstall to handle all nonstall interrupts. Jira VQRM-2982 Change-Id: I1b3821717a4005ca4bf2a4dac5dcd335872f48f1 Signed-off-by: Richard Zhao Reviewed-on: https://git-master.nvidia.com/r/1656753 Reviewed-by: svc-mobile-coverity GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/vgpu/ce2_vgpu.c | 4 ++-- drivers/gpu/nvgpu/vgpu/fifo_vgpu.c | 2 +- drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c | 1 + drivers/gpu/nvgpu/vgpu/gr_vgpu.c | 2 +- drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c | 1 + 5 files changed, 6 insertions(+), 4 deletions(-) (limited to 'drivers/gpu/nvgpu/vgpu') diff --git a/drivers/gpu/nvgpu/vgpu/ce2_vgpu.c b/drivers/gpu/nvgpu/vgpu/ce2_vgpu.c index 914041ff..a552ad44 100644 --- a/drivers/gpu/nvgpu/vgpu/ce2_vgpu.c +++ b/drivers/gpu/nvgpu/vgpu/ce2_vgpu.c @@ -22,7 +22,7 @@ * DEALINGS IN THE SOFTWARE. */ -#include "gk20a/channel_gk20a.h" +#include "gk20a/gk20a.h" #include #include @@ -34,7 +34,7 @@ int vgpu_ce2_nonstall_isr(struct gk20a *g, switch (info->type) { case TEGRA_VGPU_CE2_NONSTALL_INTR_NONBLOCKPIPE: - gk20a_channel_semaphore_wakeup(g, true); + g->ops.semaphore_wakeup(g, true); break; default: WARN_ON(1); diff --git a/drivers/gpu/nvgpu/vgpu/fifo_vgpu.c b/drivers/gpu/nvgpu/vgpu/fifo_vgpu.c index 580bfb60..6406c0da 100644 --- a/drivers/gpu/nvgpu/vgpu/fifo_vgpu.c +++ b/drivers/gpu/nvgpu/vgpu/fifo_vgpu.c @@ -752,7 +752,7 @@ int vgpu_fifo_nonstall_isr(struct gk20a *g, switch (info->type) { case TEGRA_VGPU_FIFO_NONSTALL_INTR_CHANNEL: - gk20a_channel_semaphore_wakeup(g, false); + g->ops.semaphore_wakeup(g, false); break; default: WARN_ON(1); diff --git a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c b/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c index 861f6c00..5d618649 100644 --- a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c +++ b/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c @@ -562,6 +562,7 @@ int vgpu_gp10b_init_hal(struct gk20a *g) gops->chip_init_gpu_characteristics = vgpu_gp10b_ops.chip_init_gpu_characteristics; gops->get_litter_value = vgpu_gp10b_ops.get_litter_value; + gops->semaphore_wakeup = gk20a_channel_semaphore_wakeup; __nvgpu_set_enabled(g, NVGPU_GR_USE_DMA_FOR_FW_BOOTSTRAP, true); __nvgpu_set_enabled(g, NVGPU_PMU_PSTATE, false); diff --git a/drivers/gpu/nvgpu/vgpu/gr_vgpu.c b/drivers/gpu/nvgpu/vgpu/gr_vgpu.c index d04beb56..e61996a1 100644 --- a/drivers/gpu/nvgpu/vgpu/gr_vgpu.c +++ b/drivers/gpu/nvgpu/vgpu/gr_vgpu.c @@ -969,7 +969,7 @@ int vgpu_gr_nonstall_isr(struct gk20a *g, switch (info->type) { case TEGRA_VGPU_GR_NONSTALL_INTR_SEMAPHORE: - gk20a_channel_semaphore_wakeup(g, true); + g->ops.semaphore_wakeup(g, true); break; default: WARN_ON(1); diff --git a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c b/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c index 01b31976..a6a28225 100644 --- a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c +++ b/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c @@ -602,6 +602,7 @@ int vgpu_gv11b_init_hal(struct gk20a *g) gops->chip_init_gpu_characteristics = vgpu_gv11b_ops.chip_init_gpu_characteristics; gops->get_litter_value = vgpu_gv11b_ops.get_litter_value; + gops->semaphore_wakeup = gk20a_channel_semaphore_wakeup; g->name = "gv11b"; -- cgit v1.2.2