Re: [PATCH 1/2] drm/radeon: switch from 'pci_' to 'dma_' API
Applied. Thanks! Alex On Mon, Jul 27, 2020 at 9:42 AM Christian König wrote: > > Am 27.07.20 um 12:34 schrieb Christophe JAILLET: > > The wrappers in include/linux/pci-dma-compat.h should go away. > > > > The patch has been generated with the coccinelle script below and has been > > hand modified to replace GFP_ with a correct flag. > > It has been compile tested. > > > > When memory is allocated in 'radeon_gart_table_ram_alloc()' GFP_KERNEL > > can be used because its callers already use this flag. > > > > Both 'r100_pci_gart_init()' (r100.c) and 'rs400_gart_init()' (rs400.c) > > call 'radeon_gart_init()'. > > This function uses 'vmalloc'. > > > > > > @@ > > @@ > > -PCI_DMA_BIDIRECTIONAL > > +DMA_BIDIRECTIONAL > > > > @@ > > @@ > > -PCI_DMA_TODEVICE > > +DMA_TO_DEVICE > > > > @@ > > @@ > > -PCI_DMA_FROMDEVICE > > +DMA_FROM_DEVICE > > > > @@ > > @@ > > -PCI_DMA_NONE > > +DMA_NONE > > > > @@ > > expression e1, e2, e3; > > @@ > > -pci_alloc_consistent(e1, e2, e3) > > +dma_alloc_coherent(>dev, e2, e3, GFP_) > > > > @@ > > expression e1, e2, e3; > > @@ > > -pci_zalloc_consistent(e1, e2, e3) > > +dma_alloc_coherent(>dev, e2, e3, GFP_) > > > > @@ > > expression e1, e2, e3, e4; > > @@ > > -pci_free_consistent(e1, e2, e3, e4) > > +dma_free_coherent(>dev, e2, e3, e4) > > > > @@ > > expression e1, e2, e3, e4; > > @@ > > -pci_map_single(e1, e2, e3, e4) > > +dma_map_single(>dev, e2, e3, e4) > > > > @@ > > expression e1, e2, e3, e4; > > @@ > > -pci_unmap_single(e1, e2, e3, e4) > > +dma_unmap_single(>dev, e2, e3, e4) > > > > @@ > > expression e1, e2, e3, e4, e5; > > @@ > > -pci_map_page(e1, e2, e3, e4, e5) > > +dma_map_page(>dev, e2, e3, e4, e5) > > > > @@ > > expression e1, e2, e3, e4; > > @@ > > -pci_unmap_page(e1, e2, e3, e4) > > +dma_unmap_page(>dev, e2, e3, e4) > > > > @@ > > expression e1, e2, e3, e4; > > @@ > > -pci_map_sg(e1, e2, e3, e4) > > +dma_map_sg(>dev, e2, e3, e4) > > > > @@ > > expression e1, e2, e3, e4; > > @@ > > -pci_unmap_sg(e1, e2, e3, e4) > > +dma_unmap_sg(>dev, e2, e3, e4) > > > > @@ > > expression e1, e2, e3, e4; > > @@ > > -pci_dma_sync_single_for_cpu(e1, e2, e3, e4) > > +dma_sync_single_for_cpu(>dev, e2, e3, e4) > > > > @@ > > expression e1, e2, e3, e4; > > @@ > > -pci_dma_sync_single_for_device(e1, e2, e3, e4) > > +dma_sync_single_for_device(>dev, e2, e3, e4) > > > > @@ > > expression e1, e2, e3, e4; > > @@ > > -pci_dma_sync_sg_for_cpu(e1, e2, e3, e4) > > +dma_sync_sg_for_cpu(>dev, e2, e3, e4) > > > > @@ > > expression e1, e2, e3, e4; > > @@ > > -pci_dma_sync_sg_for_device(e1, e2, e3, e4) > > +dma_sync_sg_for_device(>dev, e2, e3, e4) > > > > @@ > > expression e1, e2; > > @@ > > -pci_dma_mapping_error(e1, e2) > > +dma_mapping_error(>dev, e2) > > > > @@ > > expression e1, e2; > > @@ > > -pci_set_dma_mask(e1, e2) > > +dma_set_mask(>dev, e2) > > > > @@ > > expression e1, e2; > > @@ > > -pci_set_consistent_dma_mask(e1, e2) > > +dma_set_coherent_mask(>dev, e2) > > > > Signed-off-by: Christophe JAILLET > > Reviewed-by: Christian König > > > --- > > If needed, see post from Christoph Hellwig on the kernel-janitors ML: > > https://marc.info/?l=kernel-janitors=158745678307186=4 > > --- > > drivers/gpu/drm/radeon/radeon_gart.c | 9 - > > 1 file changed, 4 insertions(+), 5 deletions(-) > > > > diff --git a/drivers/gpu/drm/radeon/radeon_gart.c > > b/drivers/gpu/drm/radeon/radeon_gart.c > > index f178ba321715..b7ce254e5663 100644 > > --- a/drivers/gpu/drm/radeon/radeon_gart.c > > +++ b/drivers/gpu/drm/radeon/radeon_gart.c > > @@ -72,8 +72,8 @@ int radeon_gart_table_ram_alloc(struct radeon_device > > *rdev) > > { > > void *ptr; > > > > - ptr = pci_alloc_consistent(rdev->pdev, rdev->gart.table_size, > > ->gart.table_addr); > > + ptr = dma_alloc_coherent(>pdev->dev, rdev->gart.table_size, > > + >gart.table_addr, GFP_KERNEL); > > if (ptr == NULL) { > > return -ENOMEM; > > } > > @@ -110,9 +110,8 @@ void radeon_gart_table_ram_free(struct radeon_device > > *rdev) > > rdev->gart.table_size >> PAGE_SHIFT); > > } > > #endif > > - pci_free_consistent(rdev->pdev, rdev->gart.table_size, > > - (void *)rdev->gart.ptr, > > - rdev->gart.table_addr); > > + dma_free_coherent(>pdev->dev, rdev->gart.table_size, > > + (void *)rdev->gart.ptr, rdev->gart.table_addr); > > rdev->gart.ptr = NULL; > > rdev->gart.table_addr = 0; > > } > > ___ > dri-devel mailing list > dri-de...@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel ___ amd-gfx mailing list amd-gfx@lists.freedesktop.org
Re: [PATCH 1/2] drm/radeon: switch from 'pci_' to 'dma_' API
Am 27.07.20 um 12:34 schrieb Christophe JAILLET: The wrappers in include/linux/pci-dma-compat.h should go away. The patch has been generated with the coccinelle script below and has been hand modified to replace GFP_ with a correct flag. It has been compile tested. When memory is allocated in 'radeon_gart_table_ram_alloc()' GFP_KERNEL can be used because its callers already use this flag. Both 'r100_pci_gart_init()' (r100.c) and 'rs400_gart_init()' (rs400.c) call 'radeon_gart_init()'. This function uses 'vmalloc'. @@ @@ -PCI_DMA_BIDIRECTIONAL +DMA_BIDIRECTIONAL @@ @@ -PCI_DMA_TODEVICE +DMA_TO_DEVICE @@ @@ -PCI_DMA_FROMDEVICE +DMA_FROM_DEVICE @@ @@ -PCI_DMA_NONE +DMA_NONE @@ expression e1, e2, e3; @@ -pci_alloc_consistent(e1, e2, e3) +dma_alloc_coherent(>dev, e2, e3, GFP_) @@ expression e1, e2, e3; @@ -pci_zalloc_consistent(e1, e2, e3) +dma_alloc_coherent(>dev, e2, e3, GFP_) @@ expression e1, e2, e3, e4; @@ -pci_free_consistent(e1, e2, e3, e4) +dma_free_coherent(>dev, e2, e3, e4) @@ expression e1, e2, e3, e4; @@ -pci_map_single(e1, e2, e3, e4) +dma_map_single(>dev, e2, e3, e4) @@ expression e1, e2, e3, e4; @@ -pci_unmap_single(e1, e2, e3, e4) +dma_unmap_single(>dev, e2, e3, e4) @@ expression e1, e2, e3, e4, e5; @@ -pci_map_page(e1, e2, e3, e4, e5) +dma_map_page(>dev, e2, e3, e4, e5) @@ expression e1, e2, e3, e4; @@ -pci_unmap_page(e1, e2, e3, e4) +dma_unmap_page(>dev, e2, e3, e4) @@ expression e1, e2, e3, e4; @@ -pci_map_sg(e1, e2, e3, e4) +dma_map_sg(>dev, e2, e3, e4) @@ expression e1, e2, e3, e4; @@ -pci_unmap_sg(e1, e2, e3, e4) +dma_unmap_sg(>dev, e2, e3, e4) @@ expression e1, e2, e3, e4; @@ -pci_dma_sync_single_for_cpu(e1, e2, e3, e4) +dma_sync_single_for_cpu(>dev, e2, e3, e4) @@ expression e1, e2, e3, e4; @@ -pci_dma_sync_single_for_device(e1, e2, e3, e4) +dma_sync_single_for_device(>dev, e2, e3, e4) @@ expression e1, e2, e3, e4; @@ -pci_dma_sync_sg_for_cpu(e1, e2, e3, e4) +dma_sync_sg_for_cpu(>dev, e2, e3, e4) @@ expression e1, e2, e3, e4; @@ -pci_dma_sync_sg_for_device(e1, e2, e3, e4) +dma_sync_sg_for_device(>dev, e2, e3, e4) @@ expression e1, e2; @@ -pci_dma_mapping_error(e1, e2) +dma_mapping_error(>dev, e2) @@ expression e1, e2; @@ -pci_set_dma_mask(e1, e2) +dma_set_mask(>dev, e2) @@ expression e1, e2; @@ -pci_set_consistent_dma_mask(e1, e2) +dma_set_coherent_mask(>dev, e2) Signed-off-by: Christophe JAILLET Reviewed-by: Christian König --- If needed, see post from Christoph Hellwig on the kernel-janitors ML: https://marc.info/?l=kernel-janitors=158745678307186=4 --- drivers/gpu/drm/radeon/radeon_gart.c | 9 - 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/radeon/radeon_gart.c b/drivers/gpu/drm/radeon/radeon_gart.c index f178ba321715..b7ce254e5663 100644 --- a/drivers/gpu/drm/radeon/radeon_gart.c +++ b/drivers/gpu/drm/radeon/radeon_gart.c @@ -72,8 +72,8 @@ int radeon_gart_table_ram_alloc(struct radeon_device *rdev) { void *ptr; - ptr = pci_alloc_consistent(rdev->pdev, rdev->gart.table_size, - >gart.table_addr); + ptr = dma_alloc_coherent(>pdev->dev, rdev->gart.table_size, +>gart.table_addr, GFP_KERNEL); if (ptr == NULL) { return -ENOMEM; } @@ -110,9 +110,8 @@ void radeon_gart_table_ram_free(struct radeon_device *rdev) rdev->gart.table_size >> PAGE_SHIFT); } #endif - pci_free_consistent(rdev->pdev, rdev->gart.table_size, - (void *)rdev->gart.ptr, - rdev->gart.table_addr); + dma_free_coherent(>pdev->dev, rdev->gart.table_size, + (void *)rdev->gart.ptr, rdev->gart.table_addr); rdev->gart.ptr = NULL; rdev->gart.table_addr = 0; } ___ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx
[PATCH 1/2] drm/radeon: switch from 'pci_' to 'dma_' API
The wrappers in include/linux/pci-dma-compat.h should go away. The patch has been generated with the coccinelle script below and has been hand modified to replace GFP_ with a correct flag. It has been compile tested. When memory is allocated in 'radeon_gart_table_ram_alloc()' GFP_KERNEL can be used because its callers already use this flag. Both 'r100_pci_gart_init()' (r100.c) and 'rs400_gart_init()' (rs400.c) call 'radeon_gart_init()'. This function uses 'vmalloc'. @@ @@ -PCI_DMA_BIDIRECTIONAL +DMA_BIDIRECTIONAL @@ @@ -PCI_DMA_TODEVICE +DMA_TO_DEVICE @@ @@ -PCI_DMA_FROMDEVICE +DMA_FROM_DEVICE @@ @@ -PCI_DMA_NONE +DMA_NONE @@ expression e1, e2, e3; @@ -pci_alloc_consistent(e1, e2, e3) +dma_alloc_coherent(>dev, e2, e3, GFP_) @@ expression e1, e2, e3; @@ -pci_zalloc_consistent(e1, e2, e3) +dma_alloc_coherent(>dev, e2, e3, GFP_) @@ expression e1, e2, e3, e4; @@ -pci_free_consistent(e1, e2, e3, e4) +dma_free_coherent(>dev, e2, e3, e4) @@ expression e1, e2, e3, e4; @@ -pci_map_single(e1, e2, e3, e4) +dma_map_single(>dev, e2, e3, e4) @@ expression e1, e2, e3, e4; @@ -pci_unmap_single(e1, e2, e3, e4) +dma_unmap_single(>dev, e2, e3, e4) @@ expression e1, e2, e3, e4, e5; @@ -pci_map_page(e1, e2, e3, e4, e5) +dma_map_page(>dev, e2, e3, e4, e5) @@ expression e1, e2, e3, e4; @@ -pci_unmap_page(e1, e2, e3, e4) +dma_unmap_page(>dev, e2, e3, e4) @@ expression e1, e2, e3, e4; @@ -pci_map_sg(e1, e2, e3, e4) +dma_map_sg(>dev, e2, e3, e4) @@ expression e1, e2, e3, e4; @@ -pci_unmap_sg(e1, e2, e3, e4) +dma_unmap_sg(>dev, e2, e3, e4) @@ expression e1, e2, e3, e4; @@ -pci_dma_sync_single_for_cpu(e1, e2, e3, e4) +dma_sync_single_for_cpu(>dev, e2, e3, e4) @@ expression e1, e2, e3, e4; @@ -pci_dma_sync_single_for_device(e1, e2, e3, e4) +dma_sync_single_for_device(>dev, e2, e3, e4) @@ expression e1, e2, e3, e4; @@ -pci_dma_sync_sg_for_cpu(e1, e2, e3, e4) +dma_sync_sg_for_cpu(>dev, e2, e3, e4) @@ expression e1, e2, e3, e4; @@ -pci_dma_sync_sg_for_device(e1, e2, e3, e4) +dma_sync_sg_for_device(>dev, e2, e3, e4) @@ expression e1, e2; @@ -pci_dma_mapping_error(e1, e2) +dma_mapping_error(>dev, e2) @@ expression e1, e2; @@ -pci_set_dma_mask(e1, e2) +dma_set_mask(>dev, e2) @@ expression e1, e2; @@ -pci_set_consistent_dma_mask(e1, e2) +dma_set_coherent_mask(>dev, e2) Signed-off-by: Christophe JAILLET --- If needed, see post from Christoph Hellwig on the kernel-janitors ML: https://marc.info/?l=kernel-janitors=158745678307186=4 --- drivers/gpu/drm/radeon/radeon_gart.c | 9 - 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/radeon/radeon_gart.c b/drivers/gpu/drm/radeon/radeon_gart.c index f178ba321715..b7ce254e5663 100644 --- a/drivers/gpu/drm/radeon/radeon_gart.c +++ b/drivers/gpu/drm/radeon/radeon_gart.c @@ -72,8 +72,8 @@ int radeon_gart_table_ram_alloc(struct radeon_device *rdev) { void *ptr; - ptr = pci_alloc_consistent(rdev->pdev, rdev->gart.table_size, - >gart.table_addr); + ptr = dma_alloc_coherent(>pdev->dev, rdev->gart.table_size, +>gart.table_addr, GFP_KERNEL); if (ptr == NULL) { return -ENOMEM; } @@ -110,9 +110,8 @@ void radeon_gart_table_ram_free(struct radeon_device *rdev) rdev->gart.table_size >> PAGE_SHIFT); } #endif - pci_free_consistent(rdev->pdev, rdev->gart.table_size, - (void *)rdev->gart.ptr, - rdev->gart.table_addr); + dma_free_coherent(>pdev->dev, rdev->gart.table_size, + (void *)rdev->gart.ptr, rdev->gart.table_addr); rdev->gart.ptr = NULL; rdev->gart.table_addr = 0; } -- 2.25.1 ___ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx