Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amdgpu: move dummy page functions to amdgpu_gart.c

It's the only place they are used.

Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

+47 -50
-3
drivers/gpu/drm/amd/amdgpu/amdgpu.h
··· 377 377 struct page *page; 378 378 dma_addr_t addr; 379 379 }; 380 - int amdgpu_dummy_page_init(struct amdgpu_device *adev); 381 - void amdgpu_dummy_page_fini(struct amdgpu_device *adev); 382 - 383 380 384 381 /* 385 382 * Clocks
-45
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
··· 724 724 return true; 725 725 } 726 726 727 - /** 728 - * amdgpu_dummy_page_init - init dummy page used by the driver 729 - * 730 - * @adev: amdgpu_device pointer 731 - * 732 - * Allocate the dummy page used by the driver (all asics). 733 - * This dummy page is used by the driver as a filler for gart entries 734 - * when pages are taken out of the GART 735 - * Returns 0 on sucess, -ENOMEM on failure. 736 - */ 737 - int amdgpu_dummy_page_init(struct amdgpu_device *adev) 738 - { 739 - if (adev->dummy_page.page) 740 - return 0; 741 - adev->dummy_page.page = alloc_page(GFP_DMA32 | GFP_KERNEL | __GFP_ZERO); 742 - if (adev->dummy_page.page == NULL) 743 - return -ENOMEM; 744 - adev->dummy_page.addr = pci_map_page(adev->pdev, adev->dummy_page.page, 745 - 0, PAGE_SIZE, PCI_DMA_BIDIRECTIONAL); 746 - if (pci_dma_mapping_error(adev->pdev, adev->dummy_page.addr)) { 747 - dev_err(&adev->pdev->dev, "Failed to DMA MAP the dummy page\n"); 748 - __free_page(adev->dummy_page.page); 749 - adev->dummy_page.page = NULL; 750 - return -ENOMEM; 751 - } 752 - return 0; 753 - } 754 - 755 - /** 756 - * amdgpu_dummy_page_fini - free dummy page used by the driver 757 - * 758 - * @adev: amdgpu_device pointer 759 - * 760 - * Frees the dummy page used by the driver (all asics). 761 - */ 762 - void amdgpu_dummy_page_fini(struct amdgpu_device *adev) 763 - { 764 - if (adev->dummy_page.page == NULL) 765 - return; 766 - pci_unmap_page(adev->pdev, adev->dummy_page.addr, 767 - PAGE_SIZE, PCI_DMA_BIDIRECTIONAL); 768 - __free_page(adev->dummy_page.page); 769 - adev->dummy_page.page = NULL; 770 - } 771 - 772 727 /* if we get transitioned to only one device, take VGA back */ 773 728 /** 774 729 * amdgpu_device_vga_set_decode - enable/disable vga decode
+47 -2
drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
··· 57 57 */ 58 58 59 59 /** 60 + * amdgpu_dummy_page_init - init dummy page used by the driver 61 + * 62 + * @adev: amdgpu_device pointer 63 + * 64 + * Allocate the dummy page used by the driver (all asics). 65 + * This dummy page is used by the driver as a filler for gart entries 66 + * when pages are taken out of the GART 67 + * Returns 0 on sucess, -ENOMEM on failure. 68 + */ 69 + static int amdgpu_gart_dummy_page_init(struct amdgpu_device *adev) 70 + { 71 + if (adev->dummy_page.page) 72 + return 0; 73 + adev->dummy_page.page = alloc_page(GFP_DMA32 | GFP_KERNEL | __GFP_ZERO); 74 + if (adev->dummy_page.page == NULL) 75 + return -ENOMEM; 76 + adev->dummy_page.addr = pci_map_page(adev->pdev, adev->dummy_page.page, 77 + 0, PAGE_SIZE, PCI_DMA_BIDIRECTIONAL); 78 + if (pci_dma_mapping_error(adev->pdev, adev->dummy_page.addr)) { 79 + dev_err(&adev->pdev->dev, "Failed to DMA MAP the dummy page\n"); 80 + __free_page(adev->dummy_page.page); 81 + adev->dummy_page.page = NULL; 82 + return -ENOMEM; 83 + } 84 + return 0; 85 + } 86 + 87 + /** 88 + * amdgpu_dummy_page_fini - free dummy page used by the driver 89 + * 90 + * @adev: amdgpu_device pointer 91 + * 92 + * Frees the dummy page used by the driver (all asics). 93 + */ 94 + static void amdgpu_gart_dummy_page_fini(struct amdgpu_device *adev) 95 + { 96 + if (adev->dummy_page.page == NULL) 97 + return; 98 + pci_unmap_page(adev->pdev, adev->dummy_page.addr, 99 + PAGE_SIZE, PCI_DMA_BIDIRECTIONAL); 100 + __free_page(adev->dummy_page.page); 101 + adev->dummy_page.page = NULL; 102 + } 103 + 104 + /** 60 105 * amdgpu_gart_table_vram_alloc - allocate vram for gart page table 61 106 * 62 107 * @adev: amdgpu_device pointer ··· 353 308 DRM_ERROR("Page size is smaller than GPU page size!\n"); 354 309 return -EINVAL; 355 310 } 356 - r = amdgpu_dummy_page_init(adev); 311 + r = amdgpu_gart_dummy_page_init(adev); 357 312 if (r) 358 313 return r; 359 314 /* Compute table size */ ··· 385 340 vfree(adev->gart.pages); 386 341 adev->gart.pages = NULL; 387 342 #endif 388 - amdgpu_dummy_page_fini(adev); 343 + amdgpu_gart_dummy_page_fini(adev); 389 344 }