summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/cde_gk20a.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/cde_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/cde_gk20a.c23
1 files changed, 4 insertions, 19 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/cde_gk20a.c b/drivers/gpu/nvgpu/gk20a/cde_gk20a.c
index 22a422a3..d9fe9ef1 100644
--- a/drivers/gpu/nvgpu/gk20a/cde_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/cde_gk20a.c
@@ -879,16 +879,8 @@ int gk20a_cde_reload(struct gk20a *g)
879 struct gk20a_cde_ctx *cde_ctx = cde_app->cde_ctx; 879 struct gk20a_cde_ctx *cde_ctx = cde_app->cde_ctx;
880 int err, i; 880 int err, i;
881 881
882 if (!cde_app->initialised) { 882 if (!cde_app->initialised)
883 err = gk20a_busy(g->dev); 883 return -ENOSYS;
884 if (err)
885 return err;
886 gk20a_init_cde_support(g);
887 gk20a_idle(g->dev);
888 if (!cde_app->initialised)
889 return -ENOSYS;
890 return 0;
891 }
892 884
893 err = gk20a_busy(g->dev); 885 err = gk20a_busy(g->dev);
894 if (err) 886 if (err)
@@ -1044,11 +1036,8 @@ static int gk20a_buffer_convert_gpu_to_cde(
1044 const int gridw = roundup(xtiles, xalign) / xalign; 1036 const int gridw = roundup(xtiles, xalign) / xalign;
1045 const int gridh = roundup(ytiles, yalign) / yalign; 1037 const int gridh = roundup(ytiles, yalign) / yalign;
1046 1038
1047 if (!g->cde_app.initialised) { 1039 if (!g->cde_app.initialised)
1048 err = gk20a_cde_reload(g); 1040 return -ENOSYS;
1049 if (err)
1050 return err;
1051 }
1052 1041
1053 if (xtiles > 4096 / 8 || ytiles > 4096 / 8) 1042 if (xtiles > 4096 / 8 || ytiles > 4096 / 8)
1054 gk20a_warn(&g->dev->dev, "cde: surface is exceptionally large (xtiles=%d, ytiles=%d)", 1043 gk20a_warn(&g->dev->dev, "cde: surface is exceptionally large (xtiles=%d, ytiles=%d)",
@@ -1087,16 +1076,12 @@ static int gk20a_buffer_convert_gpu_to_cde(
1087 err = gk20a_busy(g->dev); 1076 err = gk20a_busy(g->dev);
1088 if (err) 1077 if (err)
1089 return err; 1078 return err;
1090 err = gk20a_init_cde_support(g);
1091 if (err)
1092 goto out;
1093 err = gk20a_cde_convert(g, dmabuf, 1079 err = gk20a_cde_convert(g, dmabuf,
1094 0, /* dst kind */ 1080 0, /* dst kind */
1095 compbits_offset, 1081 compbits_offset,
1096 0, /* dst_size, 0 = auto */ 1082 0, /* dst_size, 0 = auto */
1097 fence_in, submit_flags, 1083 fence_in, submit_flags,
1098 params, param, fence_out); 1084 params, param, fence_out);
1099out:
1100 gk20a_idle(g->dev); 1085 gk20a_idle(g->dev);
1101 return err; 1086 return err;
1102} 1087}