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 <dnibade@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1603913
GVS: Gerrit_Virtual_Submit
Reviewed-by: Konsta Holtta <kholtta@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Deepak Nibade
2017-11-23 04:52:43 -08:00
committed by mobile promotions
parent 5b41eb839a
commit a0cea295e7
3 changed files with 8 additions and 1 deletions

View File

@@ -186,7 +186,7 @@ static int nvgpu_init_os_linux_ops(struct nvgpu_os_linux *l)
return 0; 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; struct gk20a *g = &l->g;
int err; int err;

View File

@@ -19,8 +19,10 @@
struct gk20a; struct gk20a;
struct device; struct device;
struct nvgpu_os_linux;
int gk20a_pm_finalize_poweron(struct device *dev); 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_remove_support(struct gk20a *g);
void gk20a_driver_start_unload(struct gk20a *g); void gk20a_driver_start_unload(struct gk20a *g);
int nvgpu_quiesce(struct gk20a *g); int nvgpu_quiesce(struct gk20a *g);

View File

@@ -460,6 +460,7 @@ static int vgpu_init_hal(struct gk20a *g)
int vgpu_pm_finalize_poweron(struct device *dev) int vgpu_pm_finalize_poweron(struct device *dev)
{ {
struct gk20a *g = get_gk20a(dev); struct gk20a *g = get_gk20a(dev);
struct nvgpu_os_linux *l = nvgpu_os_linux_from_gk20a(g);
int err; int err;
gk20a_dbg_fn(""); gk20a_dbg_fn("");
@@ -501,6 +502,10 @@ int vgpu_pm_finalize_poweron(struct device *dev)
goto done; goto done;
} }
err = nvgpu_finalize_poweron_linux(l);
if (err)
goto done;
gk20a_ctxsw_trace_init(g); gk20a_ctxsw_trace_init(g);
gk20a_sched_ctrl_init(g); gk20a_sched_ctrl_init(g);
gk20a_channel_resume(g); gk20a_channel_resume(g);