[PATCH v2 2/8] drm/etnaviv: split out cmdbuf mapping into address space

Lucas Stach l.stach at pengutronix.de
Fri Aug 9 09:17:13 UTC 2019


Am Donnerstag, den 08.08.2019, 12:26 +0200 schrieb Guido Günther:
> Hi,
> On Fri, Jul 05, 2019 at 07:17:21PM +0200, Lucas Stach wrote:
> > This allows to decouple the cmdbuf suballocator create and mapping
> > the region into the GPU address space. Allowing multiple AS to share
> > a single cmdbuf suballoc.
> > 
> > > > Signed-off-by: Lucas Stach <l.stach at pengutronix.de>
> > ---
> >  drivers/gpu/drm/etnaviv/etnaviv_buffer.c | 23 ++++----
> >  drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.c | 35 ++++++------
> >  drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.h | 11 +++-
> >  drivers/gpu/drm/etnaviv/etnaviv_dump.c   |  6 +-
> >  drivers/gpu/drm/etnaviv/etnaviv_gpu.c    | 19 +++++--
> >  drivers/gpu/drm/etnaviv/etnaviv_gpu.h    |  3 +-
> >  drivers/gpu/drm/etnaviv/etnaviv_mmu.c    | 70 +++++++++++++++---------
> >  drivers/gpu/drm/etnaviv/etnaviv_mmu.h    | 12 ++--
> >  8 files changed, 114 insertions(+), 65 deletions(-)
[...]
> > --- a/drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.c
> > +++ b/drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.c
> > @@ -8,6 +8,7 @@
> >  #include <drm/drm_mm.h>
> >  
> >  #include "etnaviv_cmdbuf.h"
> > +#include "etnaviv_gem.h"
> >  #include "etnaviv_gpu.h"
> >  #include "etnaviv_mmu.h"
> >  
> > @@ -21,10 +22,6 @@ struct etnaviv_cmdbuf_suballoc {
> > > >  	void *vaddr;
> > > >  	dma_addr_t paddr;
> >  
> > > > -	/* GPU mapping */
> > > > -	u32 iova;
> > > > -	struct drm_mm_node vram_node; /* only used on MMUv2 */
> > -
> > > >  	/* allocation management */
> > > >  	struct mutex lock;
> > > >  	DECLARE_BITMAP(granule_map, SUBALLOC_GRANULES);
> > @@ -53,26 +50,31 @@ etnaviv_cmdbuf_suballoc_new(struct etnaviv_gpu * gpu)
> > > >  		goto free_suballoc;
> > > >  	}
> >  
> > > > -	ret = etnaviv_iommu_get_suballoc_va(gpu, suballoc->paddr,
> > > > -					    &suballoc->vram_node, SUBALLOC_SIZE,
> > > > -					    &suballoc->iova);
> > > > -	if (ret)
> > > > -		goto free_dma;
> > -
> 
> This removed ret all ret uses in that function so the declaration of ret
> can be dropped as well.

Actually, no. ret is still used in the allocation failure path.

Regards,
Lucas


More information about the dri-devel mailing list