[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 3/4] drm/nouveau: stop using is_swiotlb_active
Reviewed-by: Lyude Paul <lyude@xxxxxxxxxx> Thanks for getting to this! On Thu, 2023-05-18 at 15:42 +0200, Christoph Hellwig wrote: > Drivers have no business looking into dma-mapping internals and check > what backend is used. Unfortunstely the DRM core is still broken and > tries to do plain page allocations instead of using DMA API allocators > by default and uses various bandaids on when to use dma_alloc_coherent. > > Switch nouveau to use the same (broken) scheme as amdgpu and radeon > to remove the last driver user of is_swiotlb_active. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > --- > drivers/gpu/drm/nouveau/nouveau_ttm.c | 10 +++------- > 1 file changed, 3 insertions(+), 7 deletions(-) > > diff --git a/drivers/gpu/drm/nouveau/nouveau_ttm.c > b/drivers/gpu/drm/nouveau/nouveau_ttm.c > index 1469a88910e45d..486f39f31a38df 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_ttm.c > +++ b/drivers/gpu/drm/nouveau/nouveau_ttm.c > @@ -24,9 +24,9 @@ > */ > > #include <linux/limits.h> > -#include <linux/swiotlb.h> > > #include <drm/ttm/ttm_range_manager.h> > +#include <drm/drm_cache.h> > > #include "nouveau_drv.h" > #include "nouveau_gem.h" > @@ -265,7 +265,6 @@ nouveau_ttm_init(struct nouveau_drm *drm) > struct nvkm_pci *pci = device->pci; > struct nvif_mmu *mmu = &drm->client.mmu; > struct drm_device *dev = drm->dev; > - bool need_swiotlb = false; > int typei, ret; > > ret = nouveau_ttm_init_host(drm, 0); > @@ -300,13 +299,10 @@ nouveau_ttm_init(struct nouveau_drm *drm) > drm->agp.cma = pci->agp.cma; > } > > -#if IS_ENABLED(CONFIG_SWIOTLB) && IS_ENABLED(CONFIG_X86) > - need_swiotlb = is_swiotlb_active(dev->dev); > -#endif > - > ret = ttm_device_init(&drm->ttm.bdev, &nouveau_bo_driver, drm->dev->dev, > dev->anon_inode->i_mapping, > - dev->vma_offset_manager, need_swiotlb, > + dev->vma_offset_manager, > + drm_need_swiotlb(drm->client.mmu.dmabits), > drm->client.mmu.dmabits <= 32); > if (ret) { > NV_ERROR(drm, "error initialising bo driver, %d\n", ret); -- Cheers, Lyude Paul (she/her) Software Engineer at Red Hat
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |