From 8aadf311d5a46601cb9d3f0232c90b10ec171994 Mon Sep 17 00:00:00 2001 From: Srikar Srimath Tirumala Date: Wed, 4 Jan 2017 11:56:39 -0800 Subject: gpu: nvgpu: allow defer probing to work Platform probe can return a EDEFER_PROBE, perform user init only if platform probe is successful so that all the device objects are created only once. Bug 200233943 Change-Id: If6f41af13c29d070743896f26e6650228153027b Signed-off-by: Srikar Srimath Tirumala Reviewed-on: http://git-master/r/1280831 Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/nvgpu_common.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'drivers/gpu/nvgpu/nvgpu_common.c') diff --git a/drivers/gpu/nvgpu/nvgpu_common.c b/drivers/gpu/nvgpu/nvgpu_common.c index 7c12616f..3e57c83d 100644 --- a/drivers/gpu/nvgpu/nvgpu_common.c +++ b/drivers/gpu/nvgpu/nvgpu_common.c @@ -125,10 +125,6 @@ int nvgpu_probe(struct gk20a *g, nvgpu_init_timeslice(g); nvgpu_init_pm_vars(g); - err = gk20a_user_init(g->dev, interface_name, class); - if (err) - return err; - /* Initialize the platform interface. */ err = platform->probe(g->dev); if (err) { @@ -136,6 +132,12 @@ int nvgpu_probe(struct gk20a *g, return err; } + /* platform probe can defer do user init only if probe succeeds */ + err = gk20a_user_init(g->dev, interface_name, class); + if (err) + return err; + + /* Initialise scaling */ if (IS_ENABLED(CONFIG_GK20A_DEVFREQ)) gk20a_scale_init(g->dev); -- cgit v1.2.2