On Fri, 2019-07-05 at 19:17 +0200, Lucas Stach wrote: > Remember if the GPU has been sucessfully initialized. Only in that case > do we need to clean up various structures in the unbind path. If the > GPU hasn't been sucessfully initialized all the cleanups should happen > in the failure paths of the init function. > > Signed-off-by: Lucas Stach <l.st...@pengutronix.de> > --- > drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 20 +++++++------------- > drivers/gpu/drm/etnaviv/etnaviv_gpu.h | 1 + > 2 files changed, 8 insertions(+), 13 deletions(-) > > diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c > b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c > index 4822549500ee..e84a0ed904aa 100644 > --- a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c > +++ b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c > @@ -799,17 +799,16 @@ int etnaviv_gpu_init(struct etnaviv_gpu *gpu) > pm_runtime_mark_last_busy(gpu->dev); > pm_runtime_put_autosuspend(gpu->dev); > > + gpu->initialized = true; > + > return 0; > > free_buffer: > etnaviv_cmdbuf_free(&gpu->buffer); > - gpu->buffer.suballoc = NULL; > destroy_suballoc: > etnaviv_cmdbuf_suballoc_destroy(gpu->cmdbuf_suballoc); > - gpu->cmdbuf_suballoc = NULL; > destroy_iommu: > etnaviv_iommu_destroy(gpu->mmu); > - gpu->mmu = NULL; > fail: > pm_runtime_mark_last_busy(gpu->dev); > pm_runtime_put_autosuspend(gpu->dev); > @@ -1521,7 +1520,7 @@ int etnaviv_gpu_wait_idle(struct etnaviv_gpu *gpu, > unsigned int timeout_ms) > > static int etnaviv_gpu_hw_suspend(struct etnaviv_gpu *gpu) > { > - if (gpu->buffer.suballoc) { > + if (gpu->initialized) { > /* Replace the last WAIT with END */ > mutex_lock(&gpu->lock); > etnaviv_buffer_end(gpu); > @@ -1680,19 +1679,14 @@ static void etnaviv_gpu_unbind(struct device *dev, > struct device *master, > etnaviv_gpu_hw_suspend(gpu); > #endif > > - if (gpu->buffer.suballoc) > + if (gpu->initialized) { > etnaviv_cmdbuf_free(&gpu->buffer); > - > - if (gpu->cmdbuf_suballoc) { > etnaviv_cmdbuf_suballoc_destroy(gpu->cmdbuf_suballoc); > - gpu->cmdbuf_suballoc = NULL; > - } > - > - if (gpu->mmu) { > etnaviv_iommu_destroy(gpu->mmu); > - gpu->mmu = NULL; > + gpu->initialized = false; > } > > +
Superfluous whitespace, apart from that Reviewed-by: Philipp Zabel <p.za...@pengutronix.de> regards Philipp _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel