misc: rockchip: pcie-rkep: Support BAR1 and BAR5 mmap

Change-Id: I59983fd9cd0153966eb0f539ae9b082f05dae5b1
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
This commit is contained in:
Jon Lin
2024-08-29 22:55:55 +08:00
committed by Tao Huang
parent b730a5ac78
commit a5ee25a6ff
2 changed files with 18 additions and 0 deletions

View File

@@ -558,6 +558,14 @@ static int pcie_rkep_mmap(struct file *file, struct vm_area_struct *vma)
}
addr = pci_resource_start(dev, 0);
break;
case PCIE_EP_MMAP_RESOURCE_BAR1:
bar_size = pci_resource_len(dev, 1);
if (size > bar_size) {
dev_warn(&pcie_rkep->pdev->dev, "bar1 mmap size is out of limitation\n");
return -EINVAL;
}
addr = pci_resource_start(dev, 1);
break;
case PCIE_EP_MMAP_RESOURCE_BAR2:
bar_size = pci_resource_len(dev, 2);
if (size > bar_size) {
@@ -574,6 +582,14 @@ static int pcie_rkep_mmap(struct file *file, struct vm_area_struct *vma)
}
addr = pci_resource_start(dev, 4);
break;
case PCIE_EP_MMAP_RESOURCE_BAR5:
bar_size = pci_resource_len(dev, 5);
if (size > bar_size) {
dev_warn(&pcie_rkep->pdev->dev, "bar5 mmap size is out of limitation\n");
return -EINVAL;
}
addr = pci_resource_start(dev, 5);
break;
case PCIE_EP_MMAP_RESOURCE_USER_MEM:
if (size > RKEP_USER_MEM_SIZE) {
dev_warn(&pcie_rkep->pdev->dev, "mmap size is out of limitation\n");

View File

@@ -69,6 +69,8 @@ enum pcie_ep_mmap_resource {
PCIE_EP_MMAP_RESOURCE_USER_MEM,
PCIE_EP_MMAP_RESOURCE_RK3568_RC_DBI,
PCIE_EP_MMAP_RESOURCE_RK3588_RC_DBI,
PCIE_EP_MMAP_RESOURCE_BAR1,
PCIE_EP_MMAP_RESOURCE_BAR5,
PCIE_EP_MMAP_RESOURCE_MAX,
};