From 9c17175a357e3be0f3a881f30095c961c12c196f Mon Sep 17 00:00:00 2001 From: Lauri Peltonen Date: Wed, 10 Sep 2014 13:29:27 +0300 Subject: gpu: nvgpu: Defer CDE app initialization Defer CDE app initialization to the point where we actually need to launch the app. This allows us to use the compression state API also on T124 where we never use the CDE app. Also return the error code correctly from gk20a_prepare_compressible_read. Bug 1524301 Change-Id: If79fbe161e8dc9353b9f5fa0dfcd7f30b00d29b4 Signed-off-by: Lauri Peltonen Reviewed-on: http://git-master/r/497351 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Jussi Rasanen Tested-by: Jussi Rasanen Reviewed-by: Arto Merilainen Reviewed-by: Terje Bergstrom --- drivers/gpu/nvgpu/gk20a/cde_gk20a.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'drivers/gpu') diff --git a/drivers/gpu/nvgpu/gk20a/cde_gk20a.c b/drivers/gpu/nvgpu/gk20a/cde_gk20a.c index 24e2a778..2fad2f64 100644 --- a/drivers/gpu/nvgpu/gk20a/cde_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/cde_gk20a.c @@ -1002,6 +1002,12 @@ static int gk20a_buffer_convert_gpu_to_cde( const int gridw = roundup(tilepitch, wgx) / wgx; const int gridh = roundup(ytilesaligned, wgy) / wgy; + if (!g->cde_app.initialised) { + err = gk20a_cde_reload(g); + if (err) + return err; + } + if (xtiles > 4096 / 8 || ytiles > 4096 / 8) gk20a_warn(&g->dev->dev, "cde: surface is exceptionally large (xtiles=%d, ytiles=%d)", xtiles, ytiles); @@ -1070,12 +1076,6 @@ int gk20a_prepare_compressible_read( struct dma_buf *dmabuf; u32 missing_bits; - if (!g->cde_app.initialised) { - err = gk20a_cde_reload(g); - if (err) - return err; - } - dmabuf = dma_buf_get(buffer_fd); if (IS_ERR(dmabuf)) return -EINVAL; @@ -1145,7 +1145,7 @@ int gk20a_prepare_compressible_read( out: mutex_unlock(&state->lock); dma_buf_put(dmabuf); - return 0; + return err; } int gk20a_mark_compressible_write(struct gk20a *g, u32 buffer_fd, -- cgit v1.2.2