|
| 1 | +From 15acf7e9d055c32ec1f87643340febb9ea2fa7e6 Mon Sep 17 00:00:00 2001 |
| 2 | +From: Peter Colberg <peter.colberg@intel.com> |
| 3 | +Date: Mon, 19 Jun 2023 15:56:34 -0400 |
| 4 | +Subject: [PATCH] fpga: dfl: afu: use PFN_DOWN() and PFN_PHYS() helper macros |
| 5 | + |
| 6 | +Replace all shifts by PAGE_SHIFT with PFN_DOWN() and PFN_PHYS() helper |
| 7 | +macros to convert between physical addresses and page frame numbers. |
| 8 | + |
| 9 | +These changes are cosmetic only; no functional changes. |
| 10 | + |
| 11 | +Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> |
| 12 | +Signed-off-by: Peter Colberg <peter.colberg@intel.com> |
| 13 | +Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> |
| 14 | +--- |
| 15 | + drivers/fpga/dfl-afu-dma-region.c | 7 ++++--- |
| 16 | + drivers/fpga/dfl-afu-main.c | 5 +++-- |
| 17 | + 2 files changed, 7 insertions(+), 5 deletions(-) |
| 18 | + |
| 19 | +diff --git a/drivers/fpga/dfl-afu-dma-region.c b/drivers/fpga/dfl-afu-dma-region.c |
| 20 | +index 02b60fde0430..e8d54cfbb301 100644 |
| 21 | +--- a/drivers/fpga/dfl-afu-dma-region.c |
| 22 | ++++ b/drivers/fpga/dfl-afu-dma-region.c |
| 23 | +@@ -10,6 +10,7 @@ |
| 24 | + */ |
| 25 | + |
| 26 | + #include <linux/dma-mapping.h> |
| 27 | ++#include <linux/pfn.h> |
| 28 | + #include <linux/sched/signal.h> |
| 29 | + #include <linux/uaccess.h> |
| 30 | + #include <linux/mm.h> |
| 31 | +@@ -34,7 +35,7 @@ void afu_dma_region_init(struct dfl_feature_platform_data *pdata) |
| 32 | + static int afu_dma_pin_pages(struct dfl_feature_platform_data *pdata, |
| 33 | + struct dfl_afu_dma_region *region) |
| 34 | + { |
| 35 | +- int npages = region->length >> PAGE_SHIFT; |
| 36 | ++ int npages = PFN_DOWN(region->length); |
| 37 | + struct device *dev = &pdata->dev->dev; |
| 38 | + int ret, pinned; |
| 39 | + |
| 40 | +@@ -82,7 +83,7 @@ static int afu_dma_pin_pages(struct dfl_feature_platform_data *pdata, |
| 41 | + static void afu_dma_unpin_pages(struct dfl_feature_platform_data *pdata, |
| 42 | + struct dfl_afu_dma_region *region) |
| 43 | + { |
| 44 | +- long npages = region->length >> PAGE_SHIFT; |
| 45 | ++ long npages = PFN_DOWN(region->length); |
| 46 | + struct device *dev = &pdata->dev->dev; |
| 47 | + |
| 48 | + unpin_user_pages(region->pages, npages); |
| 49 | +@@ -101,7 +102,7 @@ static void afu_dma_unpin_pages(struct dfl_feature_platform_data *pdata, |
| 50 | + */ |
| 51 | + static bool afu_dma_check_continuous_pages(struct dfl_afu_dma_region *region) |
| 52 | + { |
| 53 | +- int npages = region->length >> PAGE_SHIFT; |
| 54 | ++ int npages = PFN_DOWN(region->length); |
| 55 | + int i; |
| 56 | + |
| 57 | + for (i = 0; i < npages - 1; i++) |
| 58 | +diff --git a/drivers/fpga/dfl-afu-main.c b/drivers/fpga/dfl-afu-main.c |
| 59 | +index 7f621e96d3b8..048c9b418c8b 100644 |
| 60 | +--- a/drivers/fpga/dfl-afu-main.c |
| 61 | ++++ b/drivers/fpga/dfl-afu-main.c |
| 62 | +@@ -16,6 +16,7 @@ |
| 63 | + |
| 64 | + #include <linux/kernel.h> |
| 65 | + #include <linux/module.h> |
| 66 | ++#include <linux/pfn.h> |
| 67 | + #include <linux/uaccess.h> |
| 68 | + #include <linux/fpga-dfl.h> |
| 69 | + |
| 70 | +@@ -816,7 +817,7 @@ static int afu_mmap(struct file *filp, struct vm_area_struct *vma) |
| 71 | + |
| 72 | + pdata = dev_get_platdata(&pdev->dev); |
| 73 | + |
| 74 | +- offset = vma->vm_pgoff << PAGE_SHIFT; |
| 75 | ++ offset = PFN_PHYS(vma->vm_pgoff); |
| 76 | + ret = afu_mmio_region_get_by_offset(pdata, offset, size, ®ion); |
| 77 | + if (ret) |
| 78 | + return ret; |
| 79 | +@@ -837,7 +838,7 @@ static int afu_mmap(struct file *filp, struct vm_area_struct *vma) |
| 80 | + vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); |
| 81 | + |
| 82 | + return remap_pfn_range(vma, vma->vm_start, |
| 83 | +- (region.phys + (offset - region.offset)) >> PAGE_SHIFT, |
| 84 | ++ PFN_DOWN(region.phys + (offset - region.offset)), |
| 85 | + size, vma->vm_page_prot); |
| 86 | + } |
| 87 | + |
0 commit comments