mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Ray Jui <rjui@broadcom.com>
To: Mark Brown <broonie@kernel.org>
Cc: <linux-spi@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	JD Zheng <jdzheng@broadcom.com>,
	Scott Branden <sbranden@broadcom.com>,
	"Geert Uytterhoeven" <geert.uytterhoeven@gmail.com>,
	Ray Jui <rjui@broadcom.com>
Subject: [PATCH] spi: spidev: Use separate TX and RX bounce buffers
Date: Thu, 9 Oct 2014 11:19:25 -0700	[thread overview]
Message-ID: <1412878765-29088-1-git-send-email-rjui@broadcom.com> (raw)
In-Reply-To: <Ray Jui <rjui@broadcom.com>

By using separate TX and RX bounce buffers, we avoid potential cache
flush and invalidation sequence issue that may be encountered when a
single bounce buffer is shared between TX and RX

Signed-off-by: Ray Jui <rjui@broadcom.com>
Reviewed-by: JD (Jiandong) Zheng <jdzheng@broadcom.com>
---
 drivers/spi/spidev.c |   79 +++++++++++++++++++++++++++++++++-----------------
 1 file changed, 52 insertions(+), 27 deletions(-)

diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c
index e3bc23b..e50039f 100644
--- a/drivers/spi/spidev.c
+++ b/drivers/spi/spidev.c
@@ -82,10 +82,11 @@ struct spidev_data {
 	struct spi_device	*spi;
 	struct list_head	device_entry;
 
-	/* buffer is NULL unless this device is open (users > 0) */
+	/* TX/RX buffers are NULL unless this device is open (users > 0) */
 	struct mutex		buf_lock;
 	unsigned		users;
-	u8			*buffer;
+	u8			*tx_buffer;
+	u8			*rx_buffer;
 };
 
 static LIST_HEAD(device_list);
@@ -135,7 +136,7 @@ static inline ssize_t
 spidev_sync_write(struct spidev_data *spidev, size_t len)
 {
 	struct spi_transfer	t = {
-			.tx_buf		= spidev->buffer,
+			.tx_buf		= spidev->tx_buffer,
 			.len		= len,
 		};
 	struct spi_message	m;
@@ -149,7 +150,7 @@ static inline ssize_t
 spidev_sync_read(struct spidev_data *spidev, size_t len)
 {
 	struct spi_transfer	t = {
-			.rx_buf		= spidev->buffer,
+			.rx_buf		= spidev->rx_buffer,
 			.len		= len,
 		};
 	struct spi_message	m;
@@ -179,7 +180,7 @@ spidev_read(struct file *filp, char __user *buf, size_t count, loff_t *f_pos)
 	if (status > 0) {
 		unsigned long	missing;
 
-		missing = copy_to_user(buf, spidev->buffer, status);
+		missing = copy_to_user(buf, spidev->rx_buffer, status);
 		if (missing == status)
 			status = -EFAULT;
 		else
@@ -206,7 +207,7 @@ spidev_write(struct file *filp, const char __user *buf,
 	spidev = filp->private_data;
 
 	mutex_lock(&spidev->buf_lock);
-	missing = copy_from_user(spidev->buffer, buf, count);
+	missing = copy_from_user(spidev->tx_buffer, buf, count);
 	if (missing == 0)
 		status = spidev_sync_write(spidev, count);
 	else
@@ -224,7 +225,7 @@ static int spidev_message(struct spidev_data *spidev,
 	struct spi_transfer	*k_tmp;
 	struct spi_ioc_transfer *u_tmp;
 	unsigned		n, total;
-	u8			*buf;
+	u8			*tx_buf, *rx_buf;
 	int			status = -EFAULT;
 
 	spi_message_init(&msg);
@@ -236,7 +237,8 @@ static int spidev_message(struct spidev_data *spidev,
 	 * We walk the array of user-provided transfers, using each one
 	 * to initialize a kernel version of the same transfer.
 	 */
-	buf = spidev->buffer;
+	tx_buf = spidev->tx_buffer;
+	rx_buf = spidev->rx_buffer;
 	total = 0;
 	for (n = n_xfers, k_tmp = k_xfers, u_tmp = u_xfers;
 			n;
@@ -250,20 +252,21 @@ static int spidev_message(struct spidev_data *spidev,
 		}
 
 		if (u_tmp->rx_buf) {
-			k_tmp->rx_buf = buf;
+			k_tmp->rx_buf = rx_buf;
 			if (!access_ok(VERIFY_WRITE, (u8 __user *)
 						(uintptr_t) u_tmp->rx_buf,
 						u_tmp->len))
 				goto done;
 		}
 		if (u_tmp->tx_buf) {
-			k_tmp->tx_buf = buf;
-			if (copy_from_user(buf, (const u8 __user *)
+			k_tmp->tx_buf = tx_buf;
+			if (copy_from_user(tx_buf, (const u8 __user *)
 						(uintptr_t) u_tmp->tx_buf,
 					u_tmp->len))
 				goto done;
 		}
-		buf += k_tmp->len;
+		tx_buf += k_tmp->len;
+		rx_buf += k_tmp->len;
 
 		k_tmp->cs_change = !!u_tmp->cs_change;
 		k_tmp->tx_nbits = u_tmp->tx_nbits;
@@ -290,17 +293,17 @@ static int spidev_message(struct spidev_data *spidev,
 		goto done;
 
 	/* copy any rx data out of bounce buffer */
-	buf = spidev->buffer;
+	rx_buf = spidev->rx_buffer;
 	for (n = n_xfers, u_tmp = u_xfers; n; n--, u_tmp++) {
 		if (u_tmp->rx_buf) {
 			if (__copy_to_user((u8 __user *)
-					(uintptr_t) u_tmp->rx_buf, buf,
+					(uintptr_t) u_tmp->rx_buf, rx_buf,
 					u_tmp->len)) {
 				status = -EFAULT;
 				goto done;
 			}
 		}
-		buf += u_tmp->len;
+		rx_buf += u_tmp->len;
 	}
 	status = total;
 
@@ -508,22 +511,41 @@ static int spidev_open(struct inode *inode, struct file *filp)
 			break;
 		}
 	}
-	if (status == 0) {
-		if (!spidev->buffer) {
-			spidev->buffer = kmalloc(bufsiz, GFP_KERNEL);
-			if (!spidev->buffer) {
+
+	if (status) {
+		pr_debug("spidev: nothing for minor %d\n", iminor(inode));
+		goto err_find_dev;
+	}
+
+	if (!spidev->tx_buffer) {
+		spidev->tx_buffer = kmalloc(bufsiz, GFP_KERNEL);
+		if (!spidev->tx_buffer) {
 				dev_dbg(&spidev->spi->dev, "open/ENOMEM\n");
 				status = -ENOMEM;
+			goto err_find_dev;
 			}
 		}
-		if (status == 0) {
-			spidev->users++;
-			filp->private_data = spidev;
-			nonseekable_open(inode, filp);
+
+	if (!spidev->rx_buffer) {
+		spidev->rx_buffer = kmalloc(bufsiz, GFP_KERNEL);
+		if (!spidev->rx_buffer) {
+			dev_dbg(&spidev->spi->dev, "open/ENOMEM\n");
+			status = -ENOMEM;
+			goto err_alloc_rx_buf;
 		}
-	} else
-		pr_debug("spidev: nothing for minor %d\n", iminor(inode));
+	}
+
+	spidev->users++;
+	filp->private_data = spidev;
+	nonseekable_open(inode, filp);
+
+	mutex_unlock(&device_list_lock);
+	return 0;
 
+err_alloc_rx_buf:
+	kfree(spidev->tx_buffer);
+	spidev->tx_buffer = NULL;
+err_find_dev:
 	mutex_unlock(&device_list_lock);
 	return status;
 }
@@ -542,8 +564,11 @@ static int spidev_release(struct inode *inode, struct file *filp)
 	if (!spidev->users) {
 		int		dofree;
 
-		kfree(spidev->buffer);
-		spidev->buffer = NULL;
+		kfree(spidev->tx_buffer);
+		spidev->tx_buffer = NULL;
+
+		kfree(spidev->rx_buffer);
+		spidev->rx_buffer = NULL;
 
 		/* ... after we unbound from the underlying device? */
 		spin_lock_irq(&spidev->spi_lock);
-- 
1.7.9.5


  parent reply	other threads:[~2014-10-09 18:18 UTC|newest]

Thread overview: 355+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <Ray Jui <rjui@broadcom.com>
2014-10-08  0:35 ` [PATCH] serial: 8250_dw: Add DMA support for non-ACPI platforms Ray Jui
2014-10-09 13:20   ` Heikki Krogerus
2014-10-08  4:38 ` [PATCH] spi: pl022: Fix broken spidev when DMA is enabled Ray Jui
2014-10-08 11:21   ` Mark Brown
2014-10-08 16:14     ` Ray Jui
2014-10-08 18:21       ` Mark Brown
2014-10-08 18:31         ` Ray Jui
2014-10-09 13:59         ` Geert Uytterhoeven
2014-10-09 18:19 ` Ray Jui [this message]
2014-10-13 11:07   ` [PATCH] spi: spidev: Use separate TX and RX bounce buffers Mark Brown
2014-10-14  3:05     ` Ray Jui
2014-10-09 18:44 ` [PATCH] spi: pl022: Fix incorrect dma_unmap_sg Ray Jui
2014-10-13 11:08   ` Mark Brown
2014-10-14  3:05     ` Ray Jui
2014-10-17  0:48 ` [PATCH] dmaengine: pl330: use subsys_initcall Ray Jui
2014-10-17  7:45   ` Lars-Peter Clausen
2014-10-17  7:35     ` Vinod Koul
2014-10-17 11:15       ` Lars-Peter Clausen
2014-10-17 16:18         ` Ray Jui
2014-10-17 16:39           ` Lars-Peter Clausen
2014-10-17 16:56             ` Ray Jui
2014-10-21 10:45             ` Vinod Koul
2014-10-21 16:17               ` Ray Jui
2014-10-21 10:43         ` Vinod Koul
2014-10-17  9:44   ` Krzysztof Kozłowski
2014-11-27 23:46 ` [PATCH 0/4] Add pinctrl support to Broadcom Cygnus SoC Ray Jui
2014-11-27 23:46   ` [PATCH 1/4] pinctrl: Broadcom Cygnus pinctrl device tree binding Ray Jui
2015-01-09 10:12     ` Linus Walleij
2015-01-09 18:26       ` Ray Jui
2015-01-13  8:20         ` Linus Walleij
2015-01-13 17:14           ` Ray Jui
2015-01-23  2:14           ` Ray Jui
2015-01-23  6:49             ` Ray Jui
2015-01-30 14:18               ` Linus Walleij
2015-01-30 17:01                 ` Ray Jui
2015-01-30 13:54             ` Linus Walleij
2014-11-27 23:46   ` [PATCH 2/4] pinctrl: cygnus: add initial pinctrl support Ray Jui
2015-01-09 11:03     ` Linus Walleij
2015-01-09 18:38       ` Ray Jui
2015-01-13  8:25         ` Linus Walleij
2015-01-13 17:17           ` Ray Jui
2014-11-27 23:46   ` [PATCH 3/4] ARM: mach-bcm: enable pinctrl support for Cygnus Ray Jui
2014-11-27 23:46   ` [PATCH 4/4] ARM: dts: enable pinctrl for Broadcom Cygnus Ray Jui
2014-11-28  1:27 ` [PATCH 0/4] Add common clock support for Broadcom iProc architecture Ray Jui
2014-11-28  1:27   ` [PATCH 1/4] clk: iproc: define Broadcom iProc clock binding Ray Jui
2014-11-28  1:27   ` [PATCH 2/4] clk: iproc: add initial common clock support Ray Jui
2014-11-28  1:27   ` [PATCH 3/4] clk: cygnus: add clock support for Broadcom Cygnus Ray Jui
2014-11-28  1:27   ` [PATCH 4/4] ARM: dts: enable " Ray Jui
2014-12-04 21:43 ` [PATCH 0/4] Add common clock support for Broadcom iProc architecture Ray Jui
2014-12-04 21:43   ` [PATCH 1/4] clk: iproc: define Broadcom iProc clock binding Ray Jui
2014-12-04 21:43   ` [PATCH 2/4] clk: iproc: add initial common clock support Ray Jui
2014-12-06 22:20     ` Tim Kryger
2014-12-08  1:38       ` Ray Jui
2014-12-04 21:43   ` [PATCH 3/4] clk: cygnus: add clock support for Broadcom Cygnus Ray Jui
2014-12-04 21:43   ` [PATCH 4/4] ARM: dts: enable " Ray Jui
2014-12-04 21:56 ` [PATCH 0/4] Add pinctrl support to Broadcom Cygnus SoC Ray Jui
2014-12-04 21:56   ` [PATCH 1/4] pinctrl: Broadcom Cygnus pinctrl device tree binding Ray Jui
2014-12-04 22:16     ` Belisko Marek
2014-12-04 22:35       ` Ray Jui
2014-12-04 21:56   ` [PATCH 2/4] pinctrl: cygnus: add initial pinctrl support Ray Jui
2014-12-04 21:56   ` [PATCH 3/4] ARM: mach-bcm: enable pinctrl support for Cygnus Ray Jui
2014-12-04 21:56   ` [PATCH 4/4] ARM: dts: enable pinctrl for Broadcom Cygnus Ray Jui
2014-12-05 19:51 ` [PATCH v2 0/4] Add pinctrl support to Broadcom Cygnus SoC Ray Jui
2014-12-05 19:51   ` [PATCH v2 1/4] pinctrl: Broadcom Cygnus pinctrl device tree binding Ray Jui
2014-12-05 19:51   ` [PATCH v2 2/4] pinctrl: cygnus: add initial pinctrl support Ray Jui
2014-12-05 19:51   ` [PATCH v2 3/4] ARM: mach-bcm: enable pinctrl support for Cygnus Ray Jui
2014-12-05 19:51   ` [PATCH v2 4/4] ARM: dts: enable pinctrl for Broadcom Cygnus Ray Jui
2014-12-06  0:40 ` [PATCH 0/5] Add gpio support to Broadcom Cygnus SoC Ray Jui
2014-12-06  0:40   ` [PATCH 1/5] gpio: Cygnus: define Broadcom Cygnus GPIO binding Ray Jui
2015-01-13  7:57     ` Linus Walleij
2015-01-13 17:07       ` Ray Jui
2014-12-06  0:40   ` [PATCH 2/5] gpio: Cygnus: add GPIO driver Ray Jui
2014-12-06  1:28     ` Joe Perches
2014-12-06  2:14       ` Ray Jui
2014-12-06  2:34         ` Joe Perches
2014-12-06  3:41           ` Ray Jui
2014-12-06  4:24             ` Joe Perches
2014-12-08  1:34               ` Ray Jui
2014-12-08  1:59         ` Ray Jui
2014-12-06  0:40   ` [PATCH 3/5] ARM: mach-bcm: Enable GPIO support for Cygnus Ray Jui
2014-12-06  0:40   ` [PATCH 4/5] ARM: dts: enable GPIO for Broadcom Cygnus Ray Jui
2014-12-06  0:40   ` [PATCH 5/5] MAINTAINERS: Entry for Cygnus GPIO driver Ray Jui
2014-12-08  2:38 ` [PATCH v2 0/5] Add gpio support to Broadcom Cygnus SoC Ray Jui
2014-12-08  2:38   ` [PATCH v2 1/5] gpio: Cygnus: define Broadcom Cygnus GPIO binding Ray Jui
2014-12-08 11:22     ` Arnd Bergmann
2014-12-08 16:55       ` Ray Jui
2014-12-08 17:11         ` Arnd Bergmann
2014-12-08  2:38   ` [PATCH v2 2/5] gpio: Cygnus: add GPIO driver Ray Jui
2014-12-08  2:38   ` [PATCH v2 3/5] ARM: mach-bcm: Enable GPIO support for Cygnus Ray Jui
2014-12-08  2:38   ` [PATCH v2 4/5] ARM: dts: enable GPIO for Broadcom Cygnus Ray Jui
2014-12-08  2:38   ` [PATCH v2 5/5] MAINTAINERS: Entry for Cygnus GPIO driver Ray Jui
2014-12-08 18:47 ` [PATCH v3 0/5] Add gpio support to Broadcom Cygnus SoC Ray Jui
2014-12-08 18:47   ` [PATCH v2 " Ray Jui
2014-12-08 18:48     ` Ray Jui
2014-12-08 18:47   ` [PATCH v3 1/5] gpio: Cygnus: define Broadcom Cygnus GPIO binding Ray Jui
2014-12-08 19:38     ` Arnd Bergmann
2014-12-08 19:45       ` Ray Jui
2014-12-08 18:47   ` [PATCH v3 2/5] gpio: Cygnus: add GPIO driver Ray Jui
2014-12-08 18:47   ` [PATCH v3 3/5] ARM: mach-bcm: Enable GPIO support for Cygnus Ray Jui
2014-12-08 18:47   ` [PATCH v3 4/5] ARM: dts: enable GPIO for Broadcom Cygnus Ray Jui
2014-12-08 18:47   ` [PATCH v3 5/5] MAINTAINERS: Entry for Cygnus GPIO driver Ray Jui
2014-12-08 20:41 ` [PATCH v4 0/5] Add gpio support to Broadcom Cygnus SoC Ray Jui
2014-12-08 20:41   ` [PATCH v4 1/5] gpio: Cygnus: define Broadcom Cygnus GPIO binding Ray Jui
2014-12-08 20:41   ` [PATCH v4 2/5] gpio: Cygnus: add GPIO driver Ray Jui
2014-12-10 10:34     ` Alexandre Courbot
2014-12-11  1:30       ` Ray Jui
2014-12-08 20:41   ` [PATCH v4 3/5] ARM: mach-bcm: Enable GPIO support for Cygnus Ray Jui
2014-12-08 20:41   ` [PATCH v4 4/5] ARM: dts: enable GPIO for Broadcom Cygnus Ray Jui
2014-12-08 20:41   ` [PATCH v4 5/5] MAINTAINERS: Entry for Cygnus GPIO driver Ray Jui
2014-12-10  0:04 ` [PATCH 0/4] Add PCIe support to Broadcom iProc Ray Jui
2014-12-10  0:04   ` [PATCH 1/4] pci: iProc: define Broadcom iProc PCIe binding Ray Jui
2014-12-10 10:30     ` Lucas Stach
2014-12-11  1:37       ` Ray Jui
2014-12-10  0:04   ` [PATCH 2/4] PCI: iproc: Add Broadcom iProc PCIe driver Ray Jui
2014-12-10 11:31     ` Arnd Bergmann
2014-12-10 16:46       ` Scott Branden
2014-12-10 18:46         ` Florian Fainelli
2014-12-10 20:26           ` Hauke Mehrtens
2014-12-10 20:40             ` Ray Jui
2014-12-11  9:44           ` Arend van Spriel
2014-12-10  0:04   ` [PATCH 3/4] ARM: mach-bcm: Enable PCIe support for iProc Ray Jui
2014-12-10  0:04   ` [PATCH 4/4] ARM: dts: enable PCIe for Broadcom Cygnus Ray Jui
2014-12-10  0:54 ` [PATCH 0/4] Add I2C support to Broadcom iProc Ray Jui
2014-12-10  0:54   ` [PATCH 1/4] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
2014-12-10  1:27     ` Varka Bhadram
2014-12-10  1:35       ` Ray Jui
     [not found]         ` <CAEUmHyb_wu1kVj-G5LQj8Q_A1Tid1gSGbU=cGeBf4EXZgXChbg@mail.gmail.com>
2014-12-10  3:27           ` Ray Jui
2014-12-10  0:54   ` [PATCH 2/4] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
2014-12-10  1:33     ` Varka Bhadram
2014-12-10  1:41       ` Ray Jui
     [not found]         ` <CAEUmHyZ+VqjzL4LkQozGJtnictPNXHYWM2qMKvD=LmfQdcT8iQ@mail.gmail.com>
     [not found]           ` <CAEUmHyZ86r=7KzJzfE9_upv45vN7geW9woqMkaGaBPwfp3xbMQ@mail.gmail.com>
2014-12-10  3:31             ` Ray Jui
2014-12-10  0:54   ` [PATCH 3/4] ARM: mach-bcm: Enable I2C support for iProc Ray Jui
2014-12-10  0:54   ` [PATCH 4/4] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
2014-12-10  2:18 ` [PATCH v2 0/4] Add I2C support to Broadcom iProc Ray Jui
2014-12-10  2:18   ` [PATCH v2 1/4] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
2014-12-10  2:18   ` [PATCH v2 2/4] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
2014-12-10  2:18   ` [PATCH v2 3/4] ARM: mach-bcm: Enable I2C support for iProc Ray Jui
2014-12-10  2:20     ` Florian Fainelli
2014-12-10  2:24       ` Ray Jui
2014-12-10  3:20         ` Florian Fainelli
2014-12-10  3:58           ` Ray Jui
2014-12-10  2:18   ` [PATCH v2 4/4] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
2014-12-10  3:57 ` [PATCH v3 0/3] Add I2C support to Broadcom iProc Ray Jui
2014-12-10  3:57   ` [PATCH v3 1/3] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
2014-12-10  3:57   ` [PATCH v3 2/3] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
2015-01-13 22:50     ` Uwe Kleine-König
2015-01-14  2:14       ` Ray Jui
2015-01-14  7:51         ` Uwe Kleine-König
2015-01-14 20:05           ` Ray Jui
2015-01-15 11:59         ` Wolfram Sang
2015-01-16 22:51           ` Ray Jui
2014-12-10  3:57   ` [PATCH v3 3/3] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
2014-12-12  0:05 ` [PATCH v5 0/3] Add gpio support to Broadcom Cygnus SoC Ray Jui
2014-12-12  0:05   ` [PATCH v5 1/3] gpio: Cygnus: define Broadcom Cygnus GPIO binding Ray Jui
2014-12-12 12:08     ` Arnd Bergmann
2014-12-12 13:05       ` Alexandre Courbot
2014-12-12 15:28         ` Arnd Bergmann
2014-12-15 21:35           ` Ray Jui
2014-12-15 21:57             ` Arnd Bergmann
2014-12-16  0:08               ` Ray Jui
2014-12-17  2:52               ` Alexandre Courbot
2015-01-13  8:01               ` Linus Walleij
2014-12-17  2:45           ` Alexandre Courbot
2014-12-17 10:26             ` Arnd Bergmann
2014-12-17 13:16               ` Alexandre Courbot
2014-12-17 10:44             ` Russell King - ARM Linux
2014-12-17 13:13               ` Alexandre Courbot
2015-01-13  8:06               ` Linus Walleij
2015-01-13 11:41                 ` Russell King - ARM Linux
2015-01-16 10:18                   ` Linus Walleij
2014-12-12 17:17         ` Ray Jui
2014-12-12  0:05   ` [PATCH v5 2/3] gpio: Cygnus: add GPIO driver Ray Jui
2014-12-12  0:05   ` [PATCH v5 3/3] ARM: dts: enable GPIO for Broadcom Cygnus Ray Jui
2014-12-12  2:36 ` [PATCH v2 0/4] Add PCIe support to Broadcom iProc Ray Jui
2014-12-12  2:36   ` [PATCH v2 1/4] pci: iProc: define Broadcom iProc PCIe binding Ray Jui
2014-12-12 12:14     ` Arnd Bergmann
2014-12-12 16:53       ` Ray Jui
2014-12-12 17:14         ` Arnd Bergmann
2014-12-13 10:05           ` Arend van Spriel
2014-12-13 19:46             ` Arnd Bergmann
2014-12-14  9:48               ` Arend van Spriel
2014-12-14 16:29                 ` Arnd Bergmann
2014-12-12  2:36   ` [PATCH v2 2/4] PCI: iproc: Add Broadcom iProc PCIe driver Ray Jui
2014-12-12 12:29     ` Arnd Bergmann
2014-12-12 17:08       ` Ray Jui
2014-12-12 17:21         ` Arnd Bergmann
2014-12-15 19:16           ` Ray Jui
2014-12-15 21:37             ` Arnd Bergmann
2014-12-16  0:28               ` Ray Jui
2014-12-12  2:36   ` [PATCH v2 3/4] ARM: mach-bcm: Enable PCIe support for iProc Ray Jui
2014-12-12 12:15     ` Arnd Bergmann
2014-12-12 16:56       ` Ray Jui
2014-12-12 17:02         ` Arnd Bergmann
2014-12-12 17:09           ` Ray Jui
2014-12-12  2:36   ` [PATCH v2 4/4] ARM: dts: enable PCIe for Broadcom Cygnus Ray Jui
2014-12-16  2:18 ` [PATCH v6 0/3] Add gpio support to Broadcom Cygnus SoC Ray Jui
2014-12-16  2:18   ` [PATCH v6 1/3] gpio: Cygnus: define Broadcom Cygnus GPIO binding Ray Jui
2014-12-16  2:18   ` [PATCH v6 2/3] gpio: Cygnus: add GPIO driver Ray Jui
2015-01-13  8:53     ` Linus Walleij
2015-01-13 17:05       ` Ray Jui
2015-01-16 10:14         ` Linus Walleij
2015-01-17  0:11           ` Ray Jui
2015-01-20  9:53             ` Linus Walleij
2015-01-20 19:17               ` Ray Jui
2014-12-16  2:18   ` [PATCH v6 3/3] ARM: dts: enable GPIO for Broadcom Cygnus Ray Jui
2014-12-16  8:56   ` [PATCH v6 0/3] Add gpio support to Broadcom Cygnus SoC Arnd Bergmann
2014-12-17  8:06   ` Alexandre Courbot
2015-01-05 23:21 ` [PATCH v2 0/5] Add common clock support for Broadcom iProc architecture Ray Jui
2015-01-05 23:21   ` [PATCH v2 1/5] clk: iproc: define Broadcom iProc clock binding Ray Jui
2015-01-05 23:21   ` [PATCH v2 2/5] clk: iproc: add initial common clock support Ray Jui
2015-01-05 23:21   ` [PATCH v2 3/5] clk: Change bcm clocks build dependency Ray Jui
2015-01-05 23:21   ` [PATCH v2 4/5] clk: cygnus: add clock support for Broadcom Cygnus Ray Jui
2015-01-06 20:21     ` Arnd Bergmann
2015-01-07  2:29       ` Ray Jui
2015-01-07  9:11         ` Arnd Bergmann
2015-01-07 17:33           ` Ray Jui
2015-01-05 23:21   ` [PATCH v2 5/5] ARM: dts: enable " Ray Jui
2015-01-07 19:22 ` [PATCH v3 0/5] Add common clock support for Broadcom iProc architecture Ray Jui
2015-01-07 19:22   ` [PATCH v3 1/5] clk: iproc: define Broadcom iProc clock binding Ray Jui
2015-01-07 19:22   ` [PATCH v3 2/5] clk: iproc: add initial common clock support Ray Jui
2015-01-07 19:22   ` [PATCH v3 3/5] clk: Change bcm clocks build dependency Ray Jui
2015-01-07 19:22   ` [PATCH v3 4/5] clk: cygnus: add clock support for Broadcom Cygnus Ray Jui
2015-01-07 19:22   ` [PATCH v3 5/5] ARM: dts: enable " Ray Jui
2015-01-07 19:26   ` [PATCH v3 0/5] Add common clock support for Broadcom iProc architecture Arnd Bergmann
2015-01-14 22:23 ` [PATCH v4 0/3] Add I2C support to Broadcom iProc Ray Jui
2015-01-14 22:23   ` [PATCH v4 1/3] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
2015-01-14 22:23   ` [PATCH v4 2/3] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
2015-01-15  8:41     ` Uwe Kleine-König
2015-01-15 12:07       ` Wolfram Sang
2015-01-15 16:32         ` Uwe Kleine-König
2015-01-16 22:52         ` Ray Jui
2015-01-16 22:09       ` Ray Jui
2015-01-17 16:01         ` Uwe Kleine-König
2015-01-17 19:58           ` Ray Jui
2015-01-17 20:18             ` Uwe Kleine-König
2015-01-17 20:51               ` Ray Jui
2015-01-17 21:10                 ` Uwe Kleine-König
2015-01-17 21:26                   ` Ray Jui
2015-01-17 22:40                     ` Russell King - ARM Linux
2015-01-18  0:30                       ` Ray Jui
2015-01-19 19:28                         ` Russell King - ARM Linux
2015-01-19 21:25                           ` Ray Jui
2015-01-14 22:23   ` [PATCH v4 3/3] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
2015-01-15  8:44     ` Uwe Kleine-König
2015-01-16 19:24       ` Ray Jui
2015-01-16 19:48         ` Uwe Kleine-König
2015-01-16 23:18           ` Ray Jui
2015-01-16 23:42 ` [PATCH v5 0/3] Add I2C support to Broadcom iProc Ray Jui
2015-01-16 23:42   ` [PATCH v5 1/3] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
2015-01-16 23:42   ` [PATCH v5 2/3] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
2015-01-18  9:14     ` Arend van Spriel
2015-01-18  9:47       ` Uwe Kleine-König
2015-01-18 11:06         ` Wolfram Sang
2015-01-18 11:17           ` Uwe Kleine-König
2015-01-18 11:42             ` Wolfram Sang
2015-01-18 11:46             ` Arend van Spriel
2015-01-18 11:56               ` Uwe Kleine-König
2015-01-18 12:13                 ` Arend van Spriel
2015-01-19 19:15                   ` Ray Jui
2015-01-16 23:42   ` [PATCH v5 3/3] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
2015-01-19 19:23 ` [PATCH v6 0/3] Add I2C support to Broadcom iProc Ray Jui
2015-01-19 19:23   ` [PATCH v6 1/3] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
2015-01-19 19:23   ` [PATCH v6 2/3] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
2015-01-19 19:44     ` Russell King - ARM Linux
2015-01-19 21:31       ` Ray Jui
2015-01-19 19:23   ` [PATCH v6 3/3] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
2015-01-19 21:51 ` [PATCH v7 0/3] Add I2C support to Broadcom iProc Ray Jui
2015-01-19 21:51   ` [PATCH v7 1/3] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
2015-01-19 21:51   ` [PATCH v7 2/3] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
2015-02-06 22:31     ` [v7,2/3] " Kevin Cernekee
2015-02-06 22:48       ` Dmitry Torokhov
2015-02-06 23:01         ` Kevin Cernekee
2015-02-07  0:54       ` Ray Jui
2015-01-19 21:51   ` [PATCH v7 3/3] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
2015-02-03  2:01 ` [PATCH v3 0/4] Add pinctrl support to Broadcom Cygnus SoC Ray Jui
2015-02-03  2:01   ` [PATCH v3 1/4] pinctrl: bcm: consolidate Broadcom pinctrl drivers Ray Jui
2015-02-03  2:01   ` [PATCH v3 2/4] pinctrl: Broadcom Cygnus pinctrl device tree binding Ray Jui
2015-02-03  2:01   ` [PATCH v3 3/4] pinctrl: cygnus: add initial IOMUX driver support Ray Jui
2015-02-03 17:40     ` Dmitry Torokhov
2015-02-03 19:29       ` Ray Jui
2015-02-03 20:00         ` Dmitry Torokhov
2015-02-03 20:16           ` Ray Jui
2015-02-03  2:01   ` [PATCH v3 4/4] ARM: dts: enable IOMUX for Broadcom Cygnus Ray Jui
2015-02-03 18:33 ` [PATCH v4 0/5] Add common clock support for Broadcom iProc architecture Ray Jui
2015-02-03 18:33   ` [PATCH v4 1/5] clk: iproc: define Broadcom iProc clock binding Ray Jui
2015-02-03 18:33   ` [PATCH v4 2/5] clk: iproc: add initial common clock support Ray Jui
2015-02-04 23:13     ` Stephen Boyd
2015-02-04 23:33       ` Ray Jui
2015-02-04 23:36         ` Stephen Boyd
2015-02-03 18:33   ` [PATCH v4 3/5] clk: Change bcm clocks build dependency Ray Jui
2015-02-03 18:33   ` [PATCH v4 4/5] clk: cygnus: add clock support for Broadcom Cygnus Ray Jui
2015-02-03 18:33   ` [PATCH v4 5/5] ARM: dts: enable " Ray Jui
2015-02-04  1:09 ` [PATCH v7 0/4] Add gpio/pinconf support to Broadcom Cygnus SoC Ray Jui
2015-02-04  1:09   ` [PATCH v7 1/4] pinctrl: Cygnus: define Broadcom Cygnus GPIO/PINCONF binding Ray Jui
2015-02-04  1:09   ` [PATCH v7 2/4] pinctrl: cygnus: add gpio/pinconf driver Ray Jui
2015-02-04  1:41     ` Dmitry Torokhov
2015-02-04  2:19       ` Ray Jui
2015-02-04  1:09   ` [PATCH v7 3/4] ARM: dts: enable GPIO for Broadcom Cygnus Ray Jui
2015-02-04  1:09   ` [PATCH v7 4/4] ARM: dts: cygnus: enable GPIO based hook detection Ray Jui
2015-02-04  2:09 ` [PATCH v4 0/4] Add pinctrl support to Broadcom Cygnus SoC Ray Jui
2015-02-04  2:09   ` [PATCH v4 1/4] pinctrl: bcm: consolidate Broadcom pinctrl drivers Ray Jui
2015-03-04  9:07     ` Linus Walleij
2015-03-04 17:31       ` Ray Jui
2015-02-04  2:09   ` [PATCH v4 2/4] pinctrl: Broadcom Cygnus pinctrl device tree binding Ray Jui
2015-02-04  2:10   ` [PATCH v4 3/4] pinctrl: cygnus: add initial IOMUX driver support Ray Jui
2015-02-04  2:10   ` [PATCH v4 4/4] ARM: dts: enable IOMUX for Broadcom Cygnus Ray Jui
2015-02-25 19:29   ` [PATCH v4 0/4] Add pinctrl support to Broadcom Cygnus SoC Dmitry Torokhov
2015-02-04 17:20 ` [PATCH v8 0/4] Add gpio/pinconf " Ray Jui
2015-02-04 17:21   ` [PATCH v8 1/4] pinctrl: Cygnus: define Broadcom Cygnus GPIO/PINCONF binding Ray Jui
2015-02-04 17:21   ` [PATCH v8 2/4] pinctrl: cygnus: add gpio/pinconf driver Ray Jui
2015-02-09 19:20     ` Dmitry Torokhov
2015-02-10 21:47       ` Ray Jui
2015-02-04 17:21   ` [PATCH v8 3/4] ARM: dts: enable GPIO for Broadcom Cygnus Ray Jui
2015-02-04 17:21   ` [PATCH v8 4/4] ARM: dts: cygnus: enable GPIO based hook detection Ray Jui
2015-02-05  0:54 ` [PATCH v5 0/6] Add common clock support for Broadcom iProc architecture Ray Jui
2015-02-05  0:55   ` [PATCH v5 1/6] clk: add of_clk_get_parent_rate function Ray Jui
2015-02-25 22:09     ` Stephen Boyd
2015-02-26  5:54     ` Sascha Hauer
2015-02-26  6:13       ` Ray Jui
2015-02-26  6:51         ` Sascha Hauer
2015-02-26  7:42           ` Ray Jui
2015-02-26  8:43             ` Sascha Hauer
2015-03-06 19:55               ` Mike Turquette
2015-03-06 20:07                 ` Ray Jui
2015-03-06 22:57                   ` Mike Turquette
2015-02-05  0:55   ` [PATCH v5 2/6] clk: iproc: define Broadcom iProc clock binding Ray Jui
2015-02-05  0:55   ` [PATCH v5 3/6] clk: iproc: add initial common clock support Ray Jui
2015-02-05  0:55   ` [PATCH v5 4/6] clk: Change bcm clocks build dependency Ray Jui
2015-02-05  0:55   ` [PATCH v5 5/6] clk: cygnus: add clock support for Broadcom Cygnus Ray Jui
2015-02-05  0:55   ` [PATCH v5 6/6] ARM: dts: enable " Ray Jui
2015-02-25 19:33   ` [PATCH v5 0/6] Add common clock support for Broadcom iProc architecture Dmitry Torokhov
2015-02-07  1:28 ` [PATCH v8 0/3] Add I2C support to Broadcom iProc Ray Jui
2015-02-07  1:28   ` [PATCH v8 1/3] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
2015-02-07  1:28   ` [PATCH v8 2/3] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
2015-02-07 17:50     ` Wolfram Sang
2015-02-08  5:08       ` Ray Jui
2015-02-08 11:03         ` Wolfram Sang
2015-02-08 18:10           ` Ray Jui
2015-02-09 10:03             ` Wolfram Sang
2015-02-07  1:28   ` [PATCH v8 3/3] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
2015-02-08  5:25 ` [PATCH v9 0/3] Add I2C support to Broadcom iProc Ray Jui
2015-02-08  5:25   ` [PATCH v9 1/3] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
2015-02-09 12:09     ` Wolfram Sang
2015-02-08  5:25   ` [PATCH v9 2/3] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
2015-02-08 16:29     ` Wolfram Sang
2015-02-08 17:56       ` Ray Jui
2015-02-09 12:10     ` Wolfram Sang
2015-02-10  5:23       ` Ray Jui
2015-02-10  8:33         ` Wolfram Sang
2015-02-10 17:10           ` Ray Jui
2015-02-08  5:25   ` [PATCH v9 3/3] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
2015-02-09 12:11     ` Wolfram Sang
2015-02-10  5:24       ` Ray Jui
2015-02-10  5:34         ` Florian Fainelli
2015-02-10  5:36           ` Ray Jui

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=1412878765-29088-1-git-send-email-rjui@broadcom.com \
    --to=rjui@broadcom.com \
    --cc=broonie@kernel.org \
    --cc=geert.uytterhoeven@gmail.com \
    --cc=jdzheng@broadcom.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=sbranden@broadcom.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome