All of lore.kernel.org
 help / color / mirror / Atom feed
From: Santosh Shilimkar <santosh.shilimkar-l0cyMroinI0@public.gmane.org>
To: arnd-r2nGTMty4D4@public.gmane.org
Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	magnus.damm-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
	linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
	grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
	robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	Santosh Shilimkar
	<santosh.shilimkar-l0cyMroinI0@public.gmane.org>,
	Russell King <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>,
	Olof Johansson <olof-nZhT3qVonbNeoWH0uzbU5w@public.gmane.org>
Subject: [PATCH v2 4/7] dma: of: introduce of_dma_is_coherent() helper
Date: Thu, 27 Feb 2014 16:17:49 -0500	[thread overview]
Message-ID: <1393535872-20915-5-git-send-email-santosh.shilimkar@ti.com> (raw)
In-Reply-To: <1393535872-20915-1-git-send-email-santosh.shilimkar-l0cyMroinI0@public.gmane.org>

The of_dma_is_coherent() helper parses the given DT device
node to see if the "dma-coherent" property is supported and
returns true or false accordingly.

Cc: Russell King <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>
Cc: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
Cc: Olof Johansson <olof-nZhT3qVonbNeoWH0uzbU5w@public.gmane.org>
Cc: Grant Likely <grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
Cc: Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar-l0cyMroinI0@public.gmane.org>
---
 drivers/dma/of-dma.c   |   22 ++++++++++++++++++++++
 include/linux/of_dma.h |    5 +++++
 2 files changed, 27 insertions(+)

diff --git a/drivers/dma/of-dma.c b/drivers/dma/of-dma.c
index 9b51768..c5958d1 100644
--- a/drivers/dma/of-dma.c
+++ b/drivers/dma/of-dma.c
@@ -304,3 +304,25 @@ out:
 	return ret;
 }
 EXPORT_SYMBOL_GPL(of_dma_get_range);
+
+/**
+ * of_dma_is_coherent - Check if device is coherent
+ * @np:	device node
+ *
+ * It returns true if "dma-coherent" property was found
+ * for this device in DT.
+ */
+bool of_dma_is_coherent(struct device_node *np)
+{
+	struct device_node *node = np;
+
+	while (node) {
+		if (of_property_read_bool(node, "dma-coherent")) {
+			of_node_put(node);
+			return true;
+		}
+		node = of_get_next_parent(node);
+	}
+	return false;
+}
+EXPORT_SYMBOL_GPL(of_dma_is_coherent);
diff --git a/include/linux/of_dma.h b/include/linux/of_dma.h
index f04171a..6191f02 100644
--- a/include/linux/of_dma.h
+++ b/include/linux/of_dma.h
@@ -44,6 +44,7 @@ extern struct dma_chan *of_dma_simple_xlate(struct of_phandle_args *dma_spec,
 
 extern int of_dma_get_range(struct device_node *np, dma_addr_t *dma_addr,
 		phys_addr_t *paddr, phys_addr_t *size);
+extern bool of_dma_is_coherent(struct device_node *np);
 #else
 static inline int of_dma_controller_register(struct device_node *np,
 		struct dma_chan *(*of_dma_xlate)
@@ -74,6 +75,10 @@ static inline int of_dma_get_range(struct device_node *np, dma_addr_t *dma_addr,
 {
 	return -ENODEV;
 }
+static inline bool of_dma_is_coherent(struct device_node *np)
+{
+	return false;
+}
 #endif
 
 #endif /* __LINUX_OF_DMA_H */
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: santosh.shilimkar@ti.com (Santosh Shilimkar)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 4/7] dma: of: introduce of_dma_is_coherent() helper
Date: Thu, 27 Feb 2014 16:17:49 -0500	[thread overview]
Message-ID: <1393535872-20915-5-git-send-email-santosh.shilimkar@ti.com> (raw)
In-Reply-To: <1393535872-20915-1-git-send-email-santosh.shilimkar@ti.com>

The of_dma_is_coherent() helper parses the given DT device
node to see if the "dma-coherent" property is supported and
returns true or false accordingly.

Cc: Russell King <linux@arm.linux.org.uk>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Olof Johansson <olof@lixom.net>
Cc: Grant Likely <grant.likely@linaro.org>
Cc: Rob Herring <robh+dt@kernel.org>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
---
 drivers/dma/of-dma.c   |   22 ++++++++++++++++++++++
 include/linux/of_dma.h |    5 +++++
 2 files changed, 27 insertions(+)

diff --git a/drivers/dma/of-dma.c b/drivers/dma/of-dma.c
index 9b51768..c5958d1 100644
--- a/drivers/dma/of-dma.c
+++ b/drivers/dma/of-dma.c
@@ -304,3 +304,25 @@ out:
 	return ret;
 }
 EXPORT_SYMBOL_GPL(of_dma_get_range);
+
+/**
+ * of_dma_is_coherent - Check if device is coherent
+ * @np:	device node
+ *
+ * It returns true if "dma-coherent" property was found
+ * for this device in DT.
+ */
+bool of_dma_is_coherent(struct device_node *np)
+{
+	struct device_node *node = np;
+
+	while (node) {
+		if (of_property_read_bool(node, "dma-coherent")) {
+			of_node_put(node);
+			return true;
+		}
+		node = of_get_next_parent(node);
+	}
+	return false;
+}
+EXPORT_SYMBOL_GPL(of_dma_is_coherent);
diff --git a/include/linux/of_dma.h b/include/linux/of_dma.h
index f04171a..6191f02 100644
--- a/include/linux/of_dma.h
+++ b/include/linux/of_dma.h
@@ -44,6 +44,7 @@ extern struct dma_chan *of_dma_simple_xlate(struct of_phandle_args *dma_spec,
 
 extern int of_dma_get_range(struct device_node *np, dma_addr_t *dma_addr,
 		phys_addr_t *paddr, phys_addr_t *size);
+extern bool of_dma_is_coherent(struct device_node *np);
 #else
 static inline int of_dma_controller_register(struct device_node *np,
 		struct dma_chan *(*of_dma_xlate)
@@ -74,6 +75,10 @@ static inline int of_dma_get_range(struct device_node *np, dma_addr_t *dma_addr,
 {
 	return -ENODEV;
 }
+static inline bool of_dma_is_coherent(struct device_node *np)
+{
+	return false;
+}
 #endif
 
 #endif /* __LINUX_OF_DMA_H */
-- 
1.7.9.5

  parent reply	other threads:[~2014-02-27 21:17 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-27 21:17 [PATCH v2 0/7] ARM: dma: Support dma-ranges and dma-coherent Santosh Shilimkar
2014-02-27 21:17 ` Santosh Shilimkar
2014-02-27 21:17 ` [PATCH v2 1/7] ARM: mm: Introduce archdata.dma_pfn_offset Santosh Shilimkar
2014-02-27 21:17   ` Santosh Shilimkar
     [not found]   ` <1393535872-20915-2-git-send-email-santosh.shilimkar-l0cyMroinI0@public.gmane.org>
2014-02-28  9:30     ` Arnd Bergmann
2014-02-28  9:30       ` Arnd Bergmann
2014-03-05  4:45     ` Linus Walleij
2014-03-05  4:45       ` Linus Walleij
     [not found]       ` <CACRpkdaRgf2yn51HYnJHBVKdrGdYhwSr0yf2GLmT3DwzmPbMDA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-03-05  6:37         ` Santosh Shilimkar
2014-03-05  6:37           ` Santosh Shilimkar
     [not found] ` <1393535872-20915-1-git-send-email-santosh.shilimkar-l0cyMroinI0@public.gmane.org>
2014-02-27 21:17   ` [PATCH v2 2/7] ARM: mm: Remove unsed dma_to_virt() Santosh Shilimkar
2014-02-27 21:17     ` Santosh Shilimkar
     [not found]     ` <1393535872-20915-3-git-send-email-santosh.shilimkar-l0cyMroinI0@public.gmane.org>
2014-02-28  9:31       ` Arnd Bergmann
2014-02-28  9:31         ` Arnd Bergmann
2014-03-07  5:59     ` Greg Ungerer
2014-03-07  5:59       ` Greg Ungerer
2014-02-27 21:17   ` [PATCH v2 3/7] dma: of: introduce of_dma_get_range() helper Santosh Shilimkar
2014-02-27 21:17     ` Santosh Shilimkar
2014-02-27 21:17   ` Santosh Shilimkar [this message]
2014-02-27 21:17     ` [PATCH v2 4/7] dma: of: introduce of_dma_is_coherent() helper Santosh Shilimkar
2014-02-28  9:39     ` Arnd Bergmann
2014-02-28  9:39       ` Arnd Bergmann
2014-02-28 14:17       ` Santosh Shilimkar
2014-02-28 14:17         ` Santosh Shilimkar
     [not found]         ` <53109A64.9030701-l0cyMroinI0@public.gmane.org>
2014-03-03  1:49           ` Catalin Marinas
2014-03-03  1:49             ` Catalin Marinas
2014-02-28 15:14       ` Rob Herring
2014-02-28 15:14         ` Rob Herring
     [not found]         ` <CAL_JsqL6-hoD4F7+adPhsOJXeM5f+wpEuBWg_6AWqj3k2v0NEw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-02-28 15:17           ` Santosh Shilimkar
2014-02-28 15:17             ` Santosh Shilimkar
2014-02-28 15:24           ` Arnd Bergmann
2014-02-28 15:24             ` Arnd Bergmann
2014-03-03 14:04             ` Rob Herring
2014-03-03 14:04               ` Rob Herring
2014-03-04 15:21               ` Will Deacon
2014-03-04 15:21                 ` Will Deacon
2014-02-27 21:17   ` [PATCH v2 5/7] ARM: of: introduce common routine for DMA configuration Santosh Shilimkar
2014-02-27 21:17     ` Santosh Shilimkar
2014-02-28 10:00     ` Arnd Bergmann
2014-02-28 10:00       ` Arnd Bergmann
2014-02-28 11:49       ` Grygorii Strashko
2014-02-28 11:49         ` Grygorii Strashko
2014-02-28 11:14         ` Arnd Bergmann
2014-02-28 11:14           ` Arnd Bergmann
2014-02-28 15:06       ` Santosh Shilimkar
2014-02-28 15:06         ` Santosh Shilimkar
     [not found]         ` <5310A5F1.9070901-l0cyMroinI0@public.gmane.org>
2014-02-28 15:31           ` Arnd Bergmann
2014-02-28 15:31             ` Arnd Bergmann
2014-02-28 15:35             ` Santosh Shilimkar
2014-02-28 15:35               ` Santosh Shilimkar
2014-03-07  3:15       ` Linus Walleij
2014-03-07  3:15         ` Linus Walleij
     [not found]     ` <1393535872-20915-6-git-send-email-santosh.shilimkar-l0cyMroinI0@public.gmane.org>
2014-02-28 14:56       ` Rob Herring
2014-02-28 14:56         ` Rob Herring
2014-02-27 21:17   ` [PATCH v2 6/7] ARM: dts: keystone: Use dma-ranges property Santosh Shilimkar
2014-02-27 21:17     ` Santosh Shilimkar
2014-02-27 21:17   ` [PATCH v2 7/7] ARM: dts: keystone: Udate USB node for dma properties Santosh Shilimkar
2014-02-27 21:17     ` Santosh Shilimkar

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=1393535872-20915-5-git-send-email-santosh.shilimkar@ti.com \
    --to=santosh.shilimkar-l0cymroini0@public.gmane.org \
    --cc=arnd-r2nGTMty4D4@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
    --cc=linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org \
    --cc=magnus.damm-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=olof-nZhT3qVonbNeoWH0uzbU5w@public.gmane.org \
    --cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.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.