From f57cf74d57718c672b1af8dd957cc8bd9ea3bb6c Mon Sep 17 00:00:00 2001 From: Debarshi Dutta Date: Thu, 29 Aug 2019 23:02:25 -0700 Subject: Revert "gpu: nvgpu: Fix the race between runtime PM and L2 flush" This patch results in a flaw that doesn't clear the GPU cache. This reverts commit 47f6bc0c2e85d0a8ff943b88c81108ca1bfc588e. Bug 2687410 Change-Id: If78bd7ca29eb5621d4369cbddf21320e2a77a41a Signed-off-by: Debarshi Dutta Reviewed-on: https://git-master.nvidia.com/r/2186886 GVS: Gerrit_Virtual_Submit Reviewed-by: Bibek Basu Reviewed-by: Deepak Nibade Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/include/nvgpu/gk20a.h | 1 - drivers/gpu/nvgpu/os/linux/ioctl_ctrl.c | 13 ++----------- drivers/gpu/nvgpu/os/linux/module.c | 5 ----- 3 files changed, 2 insertions(+), 17 deletions(-) (limited to 'drivers/gpu') diff --git a/drivers/gpu/nvgpu/include/nvgpu/gk20a.h b/drivers/gpu/nvgpu/include/nvgpu/gk20a.h index 873fa826..47a04f16 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/gk20a.h +++ b/drivers/gpu/nvgpu/include/nvgpu/gk20a.h @@ -1753,7 +1753,6 @@ enum { #define GK20A_SIM_IORESOURCE_MEM 2 void gk20a_busy_noresume(struct gk20a *g); -int gk20a_busy_try_noresume(struct gk20a *g); void gk20a_idle_nosuspend(struct gk20a *g); int __must_check gk20a_busy(struct gk20a *g); void gk20a_idle(struct gk20a *g); diff --git a/drivers/gpu/nvgpu/os/linux/ioctl_ctrl.c b/drivers/gpu/nvgpu/os/linux/ioctl_ctrl.c index cb24c30c..9b4f50a5 100644 --- a/drivers/gpu/nvgpu/os/linux/ioctl_ctrl.c +++ b/drivers/gpu/nvgpu/os/linux/ioctl_ctrl.c @@ -593,28 +593,19 @@ static int gk20a_ctrl_get_fbp_l2_masks( static int nvgpu_gpu_ioctl_l2_fb_ops(struct gk20a *g, struct nvgpu_gpu_l2_fb_args *args) { - int ret = 0; + int err = 0; if ((!args->l2_flush && !args->fb_flush) || (!args->l2_flush && args->l2_invalidate)) return -EINVAL; - ret = gk20a_busy_try_noresume(g); - - /* return if device is already powered off */ - if (ret == 0) - return 0; - if (args->l2_flush) g->ops.mm.l2_flush(g, args->l2_invalidate ? true : false); if (args->fb_flush) g->ops.mm.fb_flush(g); - if (ret > 0) - gk20a_idle_nosuspend(g); - - return 0; + return err; } static int nvgpu_gpu_ioctl_set_mmu_debug_mode( diff --git a/drivers/gpu/nvgpu/os/linux/module.c b/drivers/gpu/nvgpu/os/linux/module.c index d580d064..7653f607 100644 --- a/drivers/gpu/nvgpu/os/linux/module.c +++ b/drivers/gpu/nvgpu/os/linux/module.c @@ -110,11 +110,6 @@ void gk20a_busy_noresume(struct gk20a *g) pm_runtime_get_noresume(dev_from_gk20a(g)); } -int gk20a_busy_try_noresume(struct gk20a *g) -{ - return pm_runtime_get_if_in_use(dev_from_gk20a(g)); -} - /* * Check if the device can go busy. */ -- cgit v1.2.2