From a0cea295e7b7f917c6b52221ab34c3a6111fb224 Mon Sep 17 00:00:00 2001 From: Deepak Nibade Date: Thu, 23 Nov 2017 04:52:43 -0800 Subject: gpu: nvgpu: initialize os-specific features on vgpu API to initialize os-specific features nvgpu_finalize_poweron_linux() does not get called for VGPU Add it to vgpu_pm_finalize_poweron() Jira NVGPU-395 Change-Id: I5488853aad36606c18b64a4fbe4076909a6b23f9 Signed-off-by: Deepak Nibade Reviewed-on: https://git-master.nvidia.com/r/1603913 GVS: Gerrit_Virtual_Submit Reviewed-by: Konsta Holtta Reviewed-by: svc-mobile-coverity Reviewed-by: Vijayakumar Subbu Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/common/linux/module.c | 2 +- drivers/gpu/nvgpu/common/linux/module.h | 2 ++ drivers/gpu/nvgpu/common/linux/vgpu/vgpu.c | 5 +++++ 3 files changed, 8 insertions(+), 1 deletion(-) (limited to 'drivers/gpu/nvgpu/common') diff --git a/drivers/gpu/nvgpu/common/linux/module.c b/drivers/gpu/nvgpu/common/linux/module.c index 5012d8b5..4af62d5f 100644 --- a/drivers/gpu/nvgpu/common/linux/module.c +++ b/drivers/gpu/nvgpu/common/linux/module.c @@ -186,7 +186,7 @@ static int nvgpu_init_os_linux_ops(struct nvgpu_os_linux *l) return 0; } -static int nvgpu_finalize_poweron_linux(struct nvgpu_os_linux *l) +int nvgpu_finalize_poweron_linux(struct nvgpu_os_linux *l) { struct gk20a *g = &l->g; int err; diff --git a/drivers/gpu/nvgpu/common/linux/module.h b/drivers/gpu/nvgpu/common/linux/module.h index 5814d63a..90dba804 100644 --- a/drivers/gpu/nvgpu/common/linux/module.h +++ b/drivers/gpu/nvgpu/common/linux/module.h @@ -19,8 +19,10 @@ struct gk20a; struct device; +struct nvgpu_os_linux; int gk20a_pm_finalize_poweron(struct device *dev); +int nvgpu_finalize_poweron_linux(struct nvgpu_os_linux *l); void gk20a_remove_support(struct gk20a *g); void gk20a_driver_start_unload(struct gk20a *g); int nvgpu_quiesce(struct gk20a *g); diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/vgpu.c b/drivers/gpu/nvgpu/common/linux/vgpu/vgpu.c index f261d2ca..10c2211e 100644 --- a/drivers/gpu/nvgpu/common/linux/vgpu/vgpu.c +++ b/drivers/gpu/nvgpu/common/linux/vgpu/vgpu.c @@ -460,6 +460,7 @@ static int vgpu_init_hal(struct gk20a *g) int vgpu_pm_finalize_poweron(struct device *dev) { struct gk20a *g = get_gk20a(dev); + struct nvgpu_os_linux *l = nvgpu_os_linux_from_gk20a(g); int err; gk20a_dbg_fn(""); @@ -501,6 +502,10 @@ int vgpu_pm_finalize_poweron(struct device *dev) goto done; } + err = nvgpu_finalize_poweron_linux(l); + if (err) + goto done; + gk20a_ctxsw_trace_init(g); gk20a_sched_ctrl_init(g); gk20a_channel_resume(g); -- cgit v1.2.2