summaryrefslogtreecommitdiff
path: root/drivers/uio/uio.c
diff options
context:
space:
mode:
authorKumar Gala <galak@kernel.crashing.org>2012-03-14 04:49:34 (GMT)
committerEmil Medve <Emilian.Medve@Freescale.com>2013-04-01 20:01:25 (GMT)
commitbc902cf1a0351d9d6c43bc9bdd9548431240a385 (patch)
tree9a2a5929ae63bac412478be4ed1e1bb1df432406 /drivers/uio/uio.c
parentc781ee40b6efbcedf2b719fb746c3346ace5342f (diff)
downloadlinux-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.c6
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,