mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 12:17:12 +09:00
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:
@@ -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");
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user