diff options
author | Kumar Gala <galak@kernel.crashing.org> | 2012-03-14 04:49:34 (GMT) |
---|---|---|
committer | Emil Medve <Emilian.Medve@Freescale.com> | 2013-04-01 20:01:25 (GMT) |
commit | bc902cf1a0351d9d6c43bc9bdd9548431240a385 (patch) | |
tree | 9a2a5929ae63bac412478be4ed1e1bb1df432406 /drivers/uio/uio.c | |
parent | c781ee40b6efbcedf2b719fb746c3346ace5342f (diff) | |
download | linux-fsl-qoriq-bc902cf1a0351d9d6c43bc9bdd9548431240a385.tar.xz |
uio: Allow drivers to override the pgprot for mmap()
For some devices, the default behavior of pgprot_noncached() is not
appropriate for all of its mappable regions. This provides a means for
the kernel side of the UIO driver to override the flags without having
to implement its own full mmap callback.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Geoff Thorpe <geoff@geoffthorpe.net>
Signed-off-by: Emil Medve <Emilian.Medve@Freescale.com>
Diffstat (limited to 'drivers/uio/uio.c')
-rw-r--r-- | drivers/uio/uio.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c index 5110f36..68614d3 100644 --- a/drivers/uio/uio.c +++ b/drivers/uio/uio.c @@ -653,7 +653,11 @@ static int uio_mmap_physical(struct vm_area_struct *vma) if (mi < 0) return -EINVAL; - vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); + if (idev->info->set_pgprot) + vma->vm_page_prot = idev->info->set_pgprot(idev->info, mi, + vma->vm_page_prot); + else + vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); return remap_pfn_range(vma, vma->vm_start, |