From 0334628275fa4e74981a6e3fdff8b40579536e62 Mon Sep 17 00:00:00 2001 From: Jon Lin Date: Thu, 13 Apr 2023 11:10:30 +0800 Subject: [PATCH] PCI: rockchip: dw_ep: mmap normal_wc for bar2 mapped memory Bar2 mapped memory resource do not have outbound configured and can be used as general memory, using write buffer to improve data transform rate. Change-Id: I0b1e86ec47432e1cd13ee10db4895eca071db45d Signed-off-by: Jon Lin --- drivers/pci/controller/dwc/pcie-dw-ep-rockchip.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/pci/controller/dwc/pcie-dw-ep-rockchip.c b/drivers/pci/controller/dwc/pcie-dw-ep-rockchip.c index a86f23c8bd15..fd01beeb78fb 100644 --- a/drivers/pci/controller/dwc/pcie-dw-ep-rockchip.c +++ b/drivers/pci/controller/dwc/pcie-dw-ep-rockchip.c @@ -1056,7 +1056,11 @@ static int pcie_ep_mmap(struct file *file, struct vm_area_struct *vma) vma->vm_flags |= VM_IO; vma->vm_flags |= (VM_DONTEXPAND | VM_DONTDUMP); - vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); + + if (rockchip->cur_mmap_res == PCIE_EP_MMAP_RESOURCE_BAR2) + vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot); + else + vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); err = remap_pfn_range(vma, vma->vm_start, __phys_to_pfn(addr),