From: gregkh@linuxfoundation.org (Greg Kroah-Hartman)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/5] uio: Add new UIO_MEM_PHYS_CACHE type for mem regions
Date: Tue, 9 Sep 2014 12:29:10 -0700 [thread overview]
Message-ID: <20140909192910.GA7885@kroah.com> (raw)
In-Reply-To: <1410256619-3213-2-git-send-email-ankit.jindal@linaro.org>
On Tue, Sep 09, 2014 at 03:26:55PM +0530, Ankit Jindal wrote:
> Currently, three types of mem regions are supported: UIO_MEM_PHYS,
> UIO_MEM_LOGICAL and UIO_MEM_VIRTUAL. Among these UIO_MEM_PHYS helps
> UIO driver export physcial memory to user space as non-cacheable
> user memory. Typcially memory-mapped registers of a device are exported
> to user space as UIO_MEM_PHYS type mem region. The UIO_MEM_PHYS type
> is not useful if dma-capable devices are capable of maintaining coherency
> with CPU caches becasue we can allow cacheable access to memory shared
> between such devices and user space.
>
> This patch adds new type UIO_MEM_PHYS_CACHE for mem regions to enable
> cacheable access to physical memory from user space.
>
> Signed-off-by: Ankit Jindal <ankit.jindal@linaro.org>
> Signed-off-by: Tushar Jagad <tushar.jagad@linaro.org>
> ---
> drivers/uio/uio.c | 22 +++++++++++++---------
> include/linux/uio_driver.h | 7 ++++---
> 2 files changed, 17 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c
> index a673e5b..ff5b6c0 100644
> --- a/drivers/uio/uio.c
> +++ b/drivers/uio/uio.c
> @@ -644,7 +644,7 @@ static const struct vm_operations_struct uio_physical_vm_ops = {
> #endif
> };
>
> -static int uio_mmap_physical(struct vm_area_struct *vma)
> +static int uio_mmap_physical(struct vm_area_struct *vma, bool cacheable)
> {
> struct uio_device *idev = vma->vm_private_data;
> int mi = uio_find_mem_index(vma);
> @@ -659,7 +659,9 @@ static int uio_mmap_physical(struct vm_area_struct *vma)
> return -EINVAL;
>
> vma->vm_ops = &uio_physical_vm_ops;
> - vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
> +
> + if (!cacheable)
> + vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
>
> /*
> * We cannot use the vm_iomap_memory() helper here,
> @@ -706,13 +708,15 @@ static int uio_mmap(struct file *filep, struct vm_area_struct *vma)
> }
>
> switch (idev->info->mem[mi].memtype) {
> - case UIO_MEM_PHYS:
> - return uio_mmap_physical(vma);
> - case UIO_MEM_LOGICAL:
> - case UIO_MEM_VIRTUAL:
> - return uio_mmap_logical(vma);
> - default:
> - return -EINVAL;
> + case UIO_MEM_PHYS:
> + return uio_mmap_physical(vma, false);
> + case UIO_MEM_LOGICAL:
> + case UIO_MEM_VIRTUAL:
> + return uio_mmap_logical(vma);
> + case UIO_MEM_PHYS_CACHE:
> + return uio_mmap_physical(vma, true);
> + default:
> + return -EINVAL;
Please don't do code style cleanups in the same patch you are adding new
functionality. I can't take this because of this, sorry.
greg k-h
WARNING: multiple messages have this Message-ID (diff)
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Ankit Jindal <ankit.jindal@linaro.org>
Cc: linux-kernel@vger.kernel.org, "Hans J. Koch" <hjk@hansjkoch.de>,
patches@apm.com, linux-arm-kernel@lists.infradead.org,
Rob Herring <robh+dt@kernel.org>,
Tushar Jagad <tushar.jagad@linaro.org>
Subject: Re: [PATCH 1/5] uio: Add new UIO_MEM_PHYS_CACHE type for mem regions
Date: Tue, 9 Sep 2014 12:29:10 -0700 [thread overview]
Message-ID: <20140909192910.GA7885@kroah.com> (raw)
In-Reply-To: <1410256619-3213-2-git-send-email-ankit.jindal@linaro.org>
On Tue, Sep 09, 2014 at 03:26:55PM +0530, Ankit Jindal wrote:
> Currently, three types of mem regions are supported: UIO_MEM_PHYS,
> UIO_MEM_LOGICAL and UIO_MEM_VIRTUAL. Among these UIO_MEM_PHYS helps
> UIO driver export physcial memory to user space as non-cacheable
> user memory. Typcially memory-mapped registers of a device are exported
> to user space as UIO_MEM_PHYS type mem region. The UIO_MEM_PHYS type
> is not useful if dma-capable devices are capable of maintaining coherency
> with CPU caches becasue we can allow cacheable access to memory shared
> between such devices and user space.
>
> This patch adds new type UIO_MEM_PHYS_CACHE for mem regions to enable
> cacheable access to physical memory from user space.
>
> Signed-off-by: Ankit Jindal <ankit.jindal@linaro.org>
> Signed-off-by: Tushar Jagad <tushar.jagad@linaro.org>
> ---
> drivers/uio/uio.c | 22 +++++++++++++---------
> include/linux/uio_driver.h | 7 ++++---
> 2 files changed, 17 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c
> index a673e5b..ff5b6c0 100644
> --- a/drivers/uio/uio.c
> +++ b/drivers/uio/uio.c
> @@ -644,7 +644,7 @@ static const struct vm_operations_struct uio_physical_vm_ops = {
> #endif
> };
>
> -static int uio_mmap_physical(struct vm_area_struct *vma)
> +static int uio_mmap_physical(struct vm_area_struct *vma, bool cacheable)
> {
> struct uio_device *idev = vma->vm_private_data;
> int mi = uio_find_mem_index(vma);
> @@ -659,7 +659,9 @@ static int uio_mmap_physical(struct vm_area_struct *vma)
> return -EINVAL;
>
> vma->vm_ops = &uio_physical_vm_ops;
> - vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
> +
> + if (!cacheable)
> + vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
>
> /*
> * We cannot use the vm_iomap_memory() helper here,
> @@ -706,13 +708,15 @@ static int uio_mmap(struct file *filep, struct vm_area_struct *vma)
> }
>
> switch (idev->info->mem[mi].memtype) {
> - case UIO_MEM_PHYS:
> - return uio_mmap_physical(vma);
> - case UIO_MEM_LOGICAL:
> - case UIO_MEM_VIRTUAL:
> - return uio_mmap_logical(vma);
> - default:
> - return -EINVAL;
> + case UIO_MEM_PHYS:
> + return uio_mmap_physical(vma, false);
> + case UIO_MEM_LOGICAL:
> + case UIO_MEM_VIRTUAL:
> + return uio_mmap_logical(vma);
> + case UIO_MEM_PHYS_CACHE:
> + return uio_mmap_physical(vma, true);
> + default:
> + return -EINVAL;
Please don't do code style cleanups in the same patch you are adding new
functionality. I can't take this because of this, sorry.
greg k-h
next prev parent reply other threads:[~2014-09-09 19:29 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-09 9:56 [PATCH 0/5] UIO driver for APM X-Gene QMTM Ankit Jindal
2014-09-09 9:56 ` Ankit Jindal
2014-09-09 9:56 ` [PATCH 1/5] uio: Add new UIO_MEM_PHYS_CACHE type for mem regions Ankit Jindal
2014-09-09 9:56 ` Ankit Jindal
2014-09-09 19:29 ` Greg Kroah-Hartman [this message]
2014-09-09 19:29 ` Greg Kroah-Hartman
2014-09-14 17:28 ` Ankit Jindal
2014-09-14 17:28 ` Ankit Jindal
2014-09-09 9:56 ` [PATCH 2/5] Documentation: Update documentation for UIO_MEM_PHYS_CACHE Ankit Jindal
2014-09-09 9:56 ` Ankit Jindal
2014-09-14 20:01 ` Russell King - ARM Linux
2014-09-14 20:01 ` Russell King - ARM Linux
2014-09-18 0:03 ` Ankit Jindal
2014-09-18 0:03 ` Ankit Jindal
2014-09-09 9:56 ` [PATCH 3/5] drivers: uio: Add Xgene QMTM UIO driver Ankit Jindal
2014-09-09 9:56 ` Ankit Jindal
2014-09-14 20:23 ` Russell King - ARM Linux
2014-09-14 20:23 ` Russell King - ARM Linux
2014-09-18 0:04 ` Ankit Jindal
2014-09-18 0:04 ` Ankit Jindal
2014-09-09 9:56 ` [PATCH 4/5] dt-bindings: Add binding info for " Ankit Jindal
2014-09-09 9:56 ` Ankit Jindal
2014-09-09 10:53 ` Mark Rutland
2014-09-09 10:53 ` Mark Rutland
2014-09-09 10:53 ` Mark Rutland
2014-09-14 17:57 ` Ankit Jindal
2014-09-14 17:57 ` Ankit Jindal
2014-09-14 17:57 ` Ankit Jindal
2014-09-09 9:56 ` [PATCH 5/5] MAINTAINERS: Add entry for APM " Ankit Jindal
2014-09-09 9:56 ` Ankit Jindal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140909192910.GA7885@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.