From: Boris Brezillon <boris.brezillon@bootlin.com> To: Janusz Krzysztofik <jmkrzyszt@gmail.com> Cc: Miquel Raynal <miquel.raynal@bootlin.com>, Tony Lindgren <tony@atomide.com>, Aaro Koskinen <aaro.koskinen@iki.fi>, Grygorii Strashko <grygorii.strashko@ti.com>, Santosh Shilimkar <ssantosh@kernel.org>, Kevin Hilman <khilman@kernel.org>, Linus Walleij <linus.walleij@linaro.org>, Richard Weinberger <richard@nod.at>, David Woodhouse <dwmw2@infradead.org>, Brian Norris <computersforpeace@gmail.com>, Marek Vasut <marek.vasut@gmail.com>, linux-mtd@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-omap@vger.kernel.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Artem Bityutskiy <artem.bityutskiy@linux.intel.com> Subject: Re: [RFC PATCH 7/8] mtd: rawnand: ams-delta: Check sanity of data GPIO resource Date: Thu, 19 Jul 2018 08:44:47 +0200 [thread overview] Message-ID: <20180719084447.239a1b92@bbrezillon> (raw) In-Reply-To: <20180718235710.18242-8-jmkrzyszt@gmail.com> On Thu, 19 Jul 2018 01:57:09 +0200 Janusz Krzysztofik <jmkrzyszt@gmail.com> wrote: > The plan is to replace data port readw()/writew() operations with GPIO > callbacks provided by gpio-omap driver. For acceptable performance the > GPIO chip must support get/set_multiple() GPIO callbacks. > > In order to avoid data corruption, we require the array of data GPIO > descriptors obtained with gpiod_get_array() to meet some strict > requirements: > - all pins must belong to the same single GPIO chip, You shouldn't care. The parallel NAND interface has WE/RE signals to trigger a write/read on the data bus, that means you can change data signals independently without risking data corruption as long as RE/WE stay high (or low, I don't remember the active state on these pins). Of course it's slower if you have to toggle data pins independently, but that's not your problem. It's up to the HW designer to route things correctly. > - array index of each pin descriptor must match its hardware number, Again, this is not really a problem. You'll just have to swap bits if this is not the case. Not a big deal. > - pin polarity must not be inverted, Why? > - pin hardware configuration must not be open drain nor open source. This should be taken care of when requesting the pins. > > Let's implement the above described sanity checks before replacing the > readw()/writew() operations witn GPIO callbacks. If a check fails, > return -EINVAL to indicate the board provided GPIO setup is invalid. > > Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com> > --- > drivers/mtd/nand/raw/ams-delta.c | 87 +++++++++++++++++++++++++++++++++++++++- > 1 file changed, 86 insertions(+), 1 deletion(-) > > diff --git a/drivers/mtd/nand/raw/ams-delta.c b/drivers/mtd/nand/raw/ams-delta.c > index ad62c0245458..bd501f385e78 100644 > --- a/drivers/mtd/nand/raw/ams-delta.c > +++ b/drivers/mtd/nand/raw/ams-delta.c > @@ -21,6 +21,7 @@ > #include <linux/module.h> > #include <linux/delay.h> > #include <linux/gpio/consumer.h> > +#include <linux/gpio/driver.h> Wow! This is a very very bad idea. There's a clear separation between the GPIO consumer and the GPIO driver API for a good reason, and you're violating this. linux/gpio/driver.h should only be included by GPIO controller drivers. > #include <linux/mtd/mtd.h> > #include <linux/mtd/rawnand.h> > #include <linux/mtd/partitions.h> > @@ -190,7 +191,9 @@ static int ams_delta_init(struct platform_device *pdev) > struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > void __iomem *io_base; > struct gpio_descs *data_gpiods; > - int err = 0; > + struct gpio_chip *data_gpioc; > + unsigned long mask, bits; > + int i, err = 0; > > if (!res) > return -ENXIO; > @@ -298,6 +301,88 @@ static int ams_delta_init(struct platform_device *pdev) > goto out_mtd; > } > > + /* Use GPIO chip of first data GPIO pin descriptor */ > + data_gpioc = gpiod_to_chip(data_gpiods->desc[0]); > + > + /* > + * For acceptable performance require the data GPIO > + * chip to support get/set_multiple() callbacks. > + */ > + if (!data_gpioc->get_multiple || !data_gpioc->set_multiple) { > + err = -EINVAL; > + dev_err(&pdev->dev, > + "data GPIO chip does not support get/set_multiple()\n"); > + goto out_mtd; > + } > + > + /* Verify if get_multiple() returns all pins low as initialized above */ > + mask = (1 << data_gpiods->ndescs) - 1; > + err = data_gpioc->get_multiple(data_gpioc, &mask, &bits); And this, you shouldn't do. You should instead go through the GPIO consumer API to get the pin state (gpiod_get_raw_array_value()). I guess you'd prefer to have the pin values in a bitmap instead of an array of integers. That's probably something you can discuss with Linus, see if he would accept to change the prototype of gpiod_get_raw_array_value(). > + if (err) { > + dev_err(&pdev->dev, > + "data GPIO chip get_multiple() failed: %d\n", err); > + goto out_mtd; > + } > + if (bits) { > + err = -EINVAL; > + dev_err(&pdev->dev, > + "mismmatch of data GPIO initial value: %lu\n", bits); > + goto out_mtd; > + } > + > + /* Verify each data GPIO pin */ > + for (i = 0; i < data_gpiods->ndescs; i++) { > + /* Require all pins belong to the same GPIO chip */ > + if (gpiod_to_chip(data_gpiods->desc[i]) != data_gpioc) { > + err = -EINVAL; > + dev_err(&pdev->dev, "GPIO chip mismatch of data bit %d\n", > + i); > + goto out_mtd; > + } > + > + /* Require all pins active high (not inverted) */ > + if (gpiod_is_active_low(data_gpiods->desc[i])) { > + err = -EINVAL; > + dev_err(&pdev->dev, > + "unsupported polarity of data GPIO bit %d\n", > + i); > + goto out_mtd; > + } > + > + /* > + * Require pin gpiod array index to match hardware pin number. > + * Verified by setting the pin high with gpiod_set_raw_value() > + * then reading it back with gpiochip->get() for comparison. > + */ > + gpiod_set_raw_value(data_gpiods->desc[i], 1); > + err = data_gpioc->get(data_gpioc, i); > + if (err < 0) { > + dev_err(&pdev->dev, > + "data bit %d GPIO chip get() failed: %d\n", i, > + err); > + goto out_mtd; > + } > + if (!err) { > + err = -EINVAL; > + dev_err(&pdev->dev, "mismatch of data GPIO bit %d value\n", > + i); > + goto out_mtd; > + } > + > + /* > + * Check for unsupported pin hardware configuration. Use > + * just verified gpiod array index as hardware pin number. > + */ > + if (gpiochip_line_is_open_drain(data_gpioc, i) || > + gpiochip_line_is_open_source(data_gpioc, i)) { > + err = -EINVAL; > + dev_err(&pdev->dev, > + "unsupported mode of data GPIO bit %d\n", > + i); > + goto out_mtd; > + } > + } > + > /* Scan to find existence of the device */ > err = nand_scan(mtd, 1); > if (err)
WARNING: multiple messages have this Message-ID (diff)
From: boris.brezillon@bootlin.com (Boris Brezillon) To: linux-arm-kernel@lists.infradead.org Subject: [RFC PATCH 7/8] mtd: rawnand: ams-delta: Check sanity of data GPIO resource Date: Thu, 19 Jul 2018 08:44:47 +0200 [thread overview] Message-ID: <20180719084447.239a1b92@bbrezillon> (raw) In-Reply-To: <20180718235710.18242-8-jmkrzyszt@gmail.com> On Thu, 19 Jul 2018 01:57:09 +0200 Janusz Krzysztofik <jmkrzyszt@gmail.com> wrote: > The plan is to replace data port readw()/writew() operations with GPIO > callbacks provided by gpio-omap driver. For acceptable performance the > GPIO chip must support get/set_multiple() GPIO callbacks. > > In order to avoid data corruption, we require the array of data GPIO > descriptors obtained with gpiod_get_array() to meet some strict > requirements: > - all pins must belong to the same single GPIO chip, You shouldn't care. The parallel NAND interface has WE/RE signals to trigger a write/read on the data bus, that means you can change data signals independently without risking data corruption as long as RE/WE stay high (or low, I don't remember the active state on these pins). Of course it's slower if you have to toggle data pins independently, but that's not your problem. It's up to the HW designer to route things correctly. > - array index of each pin descriptor must match its hardware number, Again, this is not really a problem. You'll just have to swap bits if this is not the case. Not a big deal. > - pin polarity must not be inverted, Why? > - pin hardware configuration must not be open drain nor open source. This should be taken care of when requesting the pins. > > Let's implement the above described sanity checks before replacing the > readw()/writew() operations witn GPIO callbacks. If a check fails, > return -EINVAL to indicate the board provided GPIO setup is invalid. > > Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com> > --- > drivers/mtd/nand/raw/ams-delta.c | 87 +++++++++++++++++++++++++++++++++++++++- > 1 file changed, 86 insertions(+), 1 deletion(-) > > diff --git a/drivers/mtd/nand/raw/ams-delta.c b/drivers/mtd/nand/raw/ams-delta.c > index ad62c0245458..bd501f385e78 100644 > --- a/drivers/mtd/nand/raw/ams-delta.c > +++ b/drivers/mtd/nand/raw/ams-delta.c > @@ -21,6 +21,7 @@ > #include <linux/module.h> > #include <linux/delay.h> > #include <linux/gpio/consumer.h> > +#include <linux/gpio/driver.h> Wow! This is a very very bad idea. There's a clear separation between the GPIO consumer and the GPIO driver API for a good reason, and you're violating this. linux/gpio/driver.h should only be included by GPIO controller drivers. > #include <linux/mtd/mtd.h> > #include <linux/mtd/rawnand.h> > #include <linux/mtd/partitions.h> > @@ -190,7 +191,9 @@ static int ams_delta_init(struct platform_device *pdev) > struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > void __iomem *io_base; > struct gpio_descs *data_gpiods; > - int err = 0; > + struct gpio_chip *data_gpioc; > + unsigned long mask, bits; > + int i, err = 0; > > if (!res) > return -ENXIO; > @@ -298,6 +301,88 @@ static int ams_delta_init(struct platform_device *pdev) > goto out_mtd; > } > > + /* Use GPIO chip of first data GPIO pin descriptor */ > + data_gpioc = gpiod_to_chip(data_gpiods->desc[0]); > + > + /* > + * For acceptable performance require the data GPIO > + * chip to support get/set_multiple() callbacks. > + */ > + if (!data_gpioc->get_multiple || !data_gpioc->set_multiple) { > + err = -EINVAL; > + dev_err(&pdev->dev, > + "data GPIO chip does not support get/set_multiple()\n"); > + goto out_mtd; > + } > + > + /* Verify if get_multiple() returns all pins low as initialized above */ > + mask = (1 << data_gpiods->ndescs) - 1; > + err = data_gpioc->get_multiple(data_gpioc, &mask, &bits); And this, you shouldn't do. You should instead go through the GPIO consumer API to get the pin state (gpiod_get_raw_array_value()). I guess you'd prefer to have the pin values in a bitmap instead of an array of integers. That's probably something you can discuss with Linus, see if he would accept to change the prototype of gpiod_get_raw_array_value(). > + if (err) { > + dev_err(&pdev->dev, > + "data GPIO chip get_multiple() failed: %d\n", err); > + goto out_mtd; > + } > + if (bits) { > + err = -EINVAL; > + dev_err(&pdev->dev, > + "mismmatch of data GPIO initial value: %lu\n", bits); > + goto out_mtd; > + } > + > + /* Verify each data GPIO pin */ > + for (i = 0; i < data_gpiods->ndescs; i++) { > + /* Require all pins belong to the same GPIO chip */ > + if (gpiod_to_chip(data_gpiods->desc[i]) != data_gpioc) { > + err = -EINVAL; > + dev_err(&pdev->dev, "GPIO chip mismatch of data bit %d\n", > + i); > + goto out_mtd; > + } > + > + /* Require all pins active high (not inverted) */ > + if (gpiod_is_active_low(data_gpiods->desc[i])) { > + err = -EINVAL; > + dev_err(&pdev->dev, > + "unsupported polarity of data GPIO bit %d\n", > + i); > + goto out_mtd; > + } > + > + /* > + * Require pin gpiod array index to match hardware pin number. > + * Verified by setting the pin high with gpiod_set_raw_value() > + * then reading it back with gpiochip->get() for comparison. > + */ > + gpiod_set_raw_value(data_gpiods->desc[i], 1); > + err = data_gpioc->get(data_gpioc, i); > + if (err < 0) { > + dev_err(&pdev->dev, > + "data bit %d GPIO chip get() failed: %d\n", i, > + err); > + goto out_mtd; > + } > + if (!err) { > + err = -EINVAL; > + dev_err(&pdev->dev, "mismatch of data GPIO bit %d value\n", > + i); > + goto out_mtd; > + } > + > + /* > + * Check for unsupported pin hardware configuration. Use > + * just verified gpiod array index as hardware pin number. > + */ > + if (gpiochip_line_is_open_drain(data_gpioc, i) || > + gpiochip_line_is_open_source(data_gpioc, i)) { > + err = -EINVAL; > + dev_err(&pdev->dev, > + "unsupported mode of data GPIO bit %d\n", > + i); > + goto out_mtd; > + } > + } > + > /* Scan to find existence of the device */ > err = nand_scan(mtd, 1); > if (err)
next prev parent reply other threads:[~2018-07-19 6:44 UTC|newest] Thread overview: 477+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-07-18 23:57 [RFC PATCH 0/8] mtd: rawnand: ams-delta: Use gpio-omap accessors for data I/O Janusz Krzysztofik 2018-07-18 23:57 ` Janusz Krzysztofik 2018-07-18 23:57 ` [RFC PATCH 1/8] mtd: rawnand: ams-delta: Use private structure Janusz Krzysztofik 2018-07-18 23:57 ` Janusz Krzysztofik 2018-07-19 6:17 ` Boris Brezillon 2018-07-19 6:17 ` Boris Brezillon 2018-07-20 17:57 ` Janusz Krzysztofik 2018-07-20 17:57 ` Janusz Krzysztofik 2018-07-18 23:57 ` [RFC PATCH 2/8] mtd: rawnand: ams-delta: Write protect device during probe Janusz Krzysztofik 2018-07-18 23:57 ` Janusz Krzysztofik 2018-07-19 6:22 ` Boris Brezillon 2018-07-19 6:22 ` Boris Brezillon 2018-07-20 18:02 ` Janusz Krzysztofik 2018-07-20 18:02 ` Janusz Krzysztofik 2018-07-18 23:57 ` [RFC PATCH 3/8] mtd: rawnand: ams-delta: Set port direction once per transfer Janusz Krzysztofik 2018-07-18 23:57 ` Janusz Krzysztofik 2018-07-19 6:23 ` Boris Brezillon 2018-07-19 6:23 ` Boris Brezillon 2018-07-20 18:12 ` Janusz Krzysztofik 2018-07-20 18:12 ` Janusz Krzysztofik 2018-07-20 19:29 ` Boris Brezillon 2018-07-20 19:29 ` Boris Brezillon 2018-07-18 23:57 ` [RFC PATCH 4/8] mtd: rawnand: ams-delta: Optimize pointer resolution on read/write Janusz Krzysztofik 2018-07-18 23:57 ` Janusz Krzysztofik 2018-07-19 6:25 ` Boris Brezillon 2018-07-19 6:25 ` Boris Brezillon 2018-07-20 18:14 ` Janusz Krzysztofik 2018-07-20 18:14 ` Janusz Krzysztofik 2018-07-20 19:29 ` Boris Brezillon 2018-07-20 19:29 ` Boris Brezillon 2018-07-18 23:57 ` [RFC PATCH 5/8] mtd: rawnand: ams-delta: Request data port GPIO resource Janusz Krzysztofik 2018-07-18 23:57 ` Janusz Krzysztofik 2018-07-19 6:28 ` Boris Brezillon 2018-07-19 6:28 ` Boris Brezillon 2018-07-18 23:57 ` [RFC PATCH 6/8] gpio: omap: Add get/set_multiple() callbacks Janusz Krzysztofik 2018-07-18 23:57 ` Janusz Krzysztofik 2018-07-29 20:29 ` Linus Walleij 2018-07-29 20:29 ` Linus Walleij 2018-08-03 1:52 ` Grygorii Strashko 2018-08-03 1:52 ` Grygorii Strashko 2018-08-03 1:52 ` Grygorii Strashko 2018-08-03 16:47 ` Linus Walleij 2018-08-03 16:47 ` Linus Walleij 2018-07-18 23:57 ` [RFC PATCH 7/8] mtd: rawnand: ams-delta: Check sanity of data GPIO resource Janusz Krzysztofik 2018-07-18 23:57 ` Janusz Krzysztofik 2018-07-19 6:44 ` Boris Brezillon [this message] 2018-07-19 6:44 ` Boris Brezillon 2018-07-29 20:36 ` Linus Walleij 2018-07-29 20:36 ` Linus Walleij 2018-07-29 21:16 ` Boris Brezillon 2018-07-29 21:16 ` Boris Brezillon 2018-07-29 20:33 ` Linus Walleij 2018-07-29 20:33 ` Linus Walleij 2018-07-18 23:57 ` [RFC PATCH 8/8] mtd: rawnand: ams-delta: Use GPIO callbacks for data I/O Janusz Krzysztofik 2018-07-18 23:57 ` Janusz Krzysztofik 2018-07-19 6:47 ` Boris Brezillon 2018-07-19 6:47 ` Boris Brezillon 2018-07-20 18:38 ` Janusz Krzysztofik 2018-07-20 18:38 ` Janusz Krzysztofik 2018-07-20 19:48 ` Boris Brezillon 2018-07-20 19:48 ` Boris Brezillon 2018-07-19 6:15 ` [RFC PATCH 0/8] mtd: rawnand: ams-delta: Use gpio-omap accessors " Boris Brezillon 2018-07-19 6:15 ` Boris Brezillon 2018-07-20 17:55 ` Janusz Krzysztofik 2018-07-20 17:55 ` Janusz Krzysztofik 2018-07-20 19:25 ` Boris Brezillon 2018-07-20 19:25 ` Boris Brezillon 2018-10-03 12:00 ` [RFC PATCH] mtd: rawnand: ams-delta: use ->exec_op() Janusz Krzysztofik 2018-10-03 12:30 ` Boris Brezillon 2018-10-03 13:55 ` Janusz Krzysztofik 2018-10-03 14:06 ` Boris Brezillon 2018-10-04 13:52 ` Janusz Krzysztofik 2018-10-04 13:59 ` Boris Brezillon 2018-10-04 14:11 ` Janusz Krzysztofik 2018-10-04 14:22 ` Boris Brezillon 2018-10-12 20:41 ` [PATCH v2 1/2] mtd: rawnand: Provide helper for polling GPIO R/B pin Janusz Krzysztofik 2018-10-12 20:41 ` [PATCH v2 2/2] mtd: rawnand: ams-delta: Use ->exec_op() Janusz Krzysztofik 2018-10-13 6:05 ` Boris Brezillon 2018-10-13 5:55 ` [PATCH v2 1/2] mtd: rawnand: Provide helper for polling GPIO R/B pin Boris Brezillon 2018-10-15 19:41 ` [PATCH v3 1/3] " Janusz Krzysztofik 2018-10-15 19:41 ` [PATCH v3 2/3] mtd: rawnand: ams-delta: Stop using legacy .IOADDR_R/W Janusz Krzysztofik 2018-10-15 19:41 ` [PATCH v3 3/3] mtd: rawnand: ams-delta: Convert the driver to ->exec_op() Janusz Krzysztofik 2018-11-11 20:53 ` [PATCH v3 1/3] mtd: rawnand: Provide helper for polling GPIO R/B pin Miquel Raynal 2018-08-06 22:29 ` [RFC PATCH v2] mtd: rawnand: ams-delta: Use GPIO API for data I/O Janusz Krzysztofik 2018-08-06 22:29 ` Janusz Krzysztofik 2018-08-06 22:29 ` Janusz Krzysztofik 2018-08-06 22:29 ` [RFC PATCH v2 01/12] mtd: rawnand: ams-delta: Assign mtd->dev.parent, not mtd->owner Janusz Krzysztofik 2018-08-06 22:29 ` Janusz Krzysztofik 2018-08-06 22:29 ` Janusz Krzysztofik 2018-08-06 23:54 ` Marek Vasut 2018-08-06 23:54 ` Marek Vasut 2018-08-06 23:54 ` Marek Vasut 2018-08-07 21:55 ` Janusz Krzysztofik 2018-08-07 21:55 ` Janusz Krzysztofik 2018-08-07 21:55 ` Janusz Krzysztofik 2018-08-07 16:57 ` Boris Brezillon 2018-08-07 16:57 ` Boris Brezillon 2018-08-07 16:57 ` Boris Brezillon 2018-08-06 22:29 ` [RFC PATCH v2 02/12] mtd: rawnand: ams-delta: Use private structure Janusz Krzysztofik 2018-08-06 22:29 ` Janusz Krzysztofik 2018-08-06 22:29 ` Janusz Krzysztofik 2018-08-07 16:59 ` Boris Brezillon 2018-08-07 16:59 ` Boris Brezillon 2018-08-07 16:59 ` Boris Brezillon 2018-08-06 22:29 ` [RFC PATCH v2 03/12] ARM: OMAP1: ams-delta: Provide GPIO lookup table for NAND data port Janusz Krzysztofik 2018-08-06 22:29 ` Janusz Krzysztofik 2018-08-06 22:29 ` Janusz Krzysztofik 2018-08-07 16:59 ` Boris Brezillon 2018-08-07 16:59 ` Boris Brezillon 2018-08-07 16:59 ` Boris Brezillon 2018-08-10 10:10 ` Linus Walleij 2018-08-10 10:10 ` Linus Walleij 2018-08-06 22:29 ` [RFC PATCH v2 04/12] mtd: rawnand: ams-delta: request data port GPIO resource Janusz Krzysztofik 2018-08-06 22:29 ` Janusz Krzysztofik 2018-08-06 22:29 ` Janusz Krzysztofik 2018-08-07 17:00 ` Boris Brezillon 2018-08-07 17:00 ` Boris Brezillon 2018-08-07 17:00 ` Boris Brezillon 2018-08-10 10:11 ` Linus Walleij 2018-08-10 10:11 ` Linus Walleij 2018-08-06 22:29 ` [RFC PATCH v2 05/12] mtd: rawnand: ams-delta: use GPIO API for data read/write Janusz Krzysztofik 2018-08-06 22:29 ` Janusz Krzysztofik 2018-08-06 22:29 ` Janusz Krzysztofik 2018-08-06 23:57 ` Marek Vasut 2018-08-06 23:57 ` Marek Vasut 2018-08-06 23:57 ` Marek Vasut 2018-08-07 17:06 ` Boris Brezillon 2018-08-07 17:06 ` Boris Brezillon 2018-08-07 17:06 ` Boris Brezillon 2018-08-07 17:11 ` Janusz Krzysztofik 2018-08-07 17:11 ` Janusz Krzysztofik 2018-08-07 17:11 ` Janusz Krzysztofik 2018-08-10 10:25 ` Linus Walleij 2018-08-10 10:25 ` Linus Walleij 2018-08-06 22:29 ` [RFC PATCH v2 06/12] ARM: OMAP1: ams-delta: drop obsolete NAND resources Janusz Krzysztofik 2018-08-06 22:29 ` Janusz Krzysztofik 2018-08-06 22:29 ` Janusz Krzysztofik 2018-08-06 22:29 ` [RFC PATCH v2 07/12] mtd: rawnand: ams-delta: Set port direction once per transfer Janusz Krzysztofik 2018-08-06 22:29 ` Janusz Krzysztofik 2018-08-06 22:29 ` Janusz Krzysztofik 2018-08-07 18:57 ` Boris Brezillon 2018-08-07 18:57 ` Boris Brezillon 2018-08-07 18:57 ` Boris Brezillon 2018-08-07 18:57 ` Boris Brezillon 2018-08-08 16:55 ` Janusz Krzysztofik 2018-08-08 16:55 ` Janusz Krzysztofik 2018-08-08 16:55 ` Janusz Krzysztofik 2018-08-08 17:42 ` Miquel Raynal 2018-08-08 17:42 ` Miquel Raynal 2018-08-08 17:42 ` Miquel Raynal 2018-08-06 22:29 ` [RFC PATCH v2 08/12] mtd: rawnand: ams-delta: Simplify pointer resolution on read/write Janusz Krzysztofik 2018-08-06 22:29 ` Janusz Krzysztofik 2018-08-06 22:29 ` Janusz Krzysztofik 2018-08-07 17:02 ` Boris Brezillon 2018-08-07 17:02 ` Boris Brezillon 2018-08-07 17:02 ` Boris Brezillon 2018-08-07 17:15 ` Janusz Krzysztofik 2018-08-07 17:15 ` Janusz Krzysztofik 2018-08-07 17:15 ` Janusz Krzysztofik 2018-08-06 22:29 ` [RFC PATCH v2 09/12] gpiolib: Identify GPIO descriptor arrays with direct mapping Janusz Krzysztofik 2018-08-06 22:29 ` Janusz Krzysztofik 2018-08-06 22:29 ` Janusz Krzysztofik 2018-08-06 23:29 ` Linus Walleij 2018-08-06 23:29 ` Linus Walleij 2018-08-06 23:29 ` Linus Walleij 2018-08-07 16:50 ` Janusz Krzysztofik 2018-08-07 16:50 ` Janusz Krzysztofik 2018-08-07 16:50 ` Janusz Krzysztofik 2018-08-07 17:10 ` Boris Brezillon 2018-08-07 17:10 ` Boris Brezillon 2018-08-07 17:10 ` Boris Brezillon 2018-08-07 17:14 ` Boris Brezillon 2018-08-07 17:14 ` Boris Brezillon 2018-08-07 17:14 ` Boris Brezillon 2018-08-07 17:19 ` Janusz Krzysztofik 2018-08-07 17:19 ` Janusz Krzysztofik 2018-08-07 17:19 ` Janusz Krzysztofik 2018-08-06 22:29 ` [RFC PATCH v2 10/12] gpiolib: Introduce bitmap get/set array API extension Janusz Krzysztofik 2018-08-06 22:29 ` Janusz Krzysztofik 2018-08-06 22:29 ` Janusz Krzysztofik 2018-08-06 22:29 ` [RFC PATCH v2 11/12] mtd: rawnand: ams-delta: Use GPIO API bitmap extension Janusz Krzysztofik 2018-08-06 22:29 ` Janusz Krzysztofik 2018-08-06 22:29 ` Janusz Krzysztofik 2018-08-06 22:29 ` [RFC PATCH v2 12/12] gpiolib: Add fast processing path to bitmap API functions Janusz Krzysztofik 2018-08-06 22:29 ` Janusz Krzysztofik 2018-08-06 22:29 ` Janusz Krzysztofik 2018-08-06 23:43 ` Linus Walleij 2018-08-06 23:43 ` Linus Walleij 2018-08-06 23:43 ` Linus Walleij 2018-08-07 17:29 ` Janusz Krzysztofik 2018-08-07 17:29 ` Janusz Krzysztofik 2018-08-07 17:29 ` Janusz Krzysztofik 2018-08-07 17:47 ` Boris Brezillon 2018-08-07 17:47 ` Boris Brezillon 2018-08-07 17:47 ` Boris Brezillon 2018-08-10 10:55 ` Linus Walleij 2018-08-10 10:55 ` Linus Walleij 2018-08-13 22:34 ` [PATCH v3 0/7] mtd: rawnand: ams-delta: Use GPIO API for data I/O Janusz Krzysztofik 2018-08-13 22:34 ` Janusz Krzysztofik 2018-08-13 22:34 ` [PATCH v3 1/7] mtd: rawnand: ams-delta: show parent device in sysfs Janusz Krzysztofik 2018-08-13 22:34 ` Janusz Krzysztofik 2018-08-13 22:34 ` [PATCH v3 2/7] mtd: rawnand: ams-delta: Use private structure Janusz Krzysztofik 2018-08-13 22:34 ` Janusz Krzysztofik 2018-08-13 22:34 ` [PATCH v3 3/7] ARM: OMAP1: ams-delta: Provide GPIO lookup table for NAND data port Janusz Krzysztofik 2018-08-13 22:34 ` Janusz Krzysztofik 2018-08-13 22:34 ` [PATCH v3 4/7] mtd: rawnand: ams-delta: request data port GPIO resource Janusz Krzysztofik 2018-08-13 22:34 ` Janusz Krzysztofik 2018-08-13 22:34 ` [PATCH v3 5/7] mtd: rawnand: ams-delta: Set port direction when needed Janusz Krzysztofik 2018-08-13 22:34 ` Janusz Krzysztofik 2018-08-16 7:30 ` Boris Brezillon 2018-08-16 7:30 ` Boris Brezillon 2018-08-13 22:34 ` [PATCH v3 6/7] mtd: rawnand: ams-delta: Simplify pointer resolution on read/write Janusz Krzysztofik 2018-08-13 22:34 ` Janusz Krzysztofik 2018-08-13 22:34 ` [PATCH v3 7/7] mtd: rawnand: ams-delta: use GPIO API for data I/O Janusz Krzysztofik 2018-08-13 22:34 ` Janusz Krzysztofik 2018-08-16 7:39 ` Boris Brezillon 2018-08-16 7:39 ` Boris Brezillon 2018-08-20 21:39 ` [PATCH v4 0/3] mtd: rawnand: ams-delta: Cleanups and optimizations Janusz Krzysztofik 2018-08-20 21:39 ` [PATCH v4 1/3] mtd: rawnand: ams-delta: show parent device in sysfs Janusz Krzysztofik 2018-08-20 21:39 ` [PATCH v4 2/3] mtd: rawnand: ams-delta: Use private structure Janusz Krzysztofik 2018-08-20 21:39 ` [PATCH v4 3/3] mtd: rawnand: ams-delta: Set port direction when needed Janusz Krzysztofik 2018-08-24 12:57 ` Boris Brezillon 2018-09-05 6:47 ` [PATCH v4 0/3] mtd: rawnand: ams-delta: Cleanups and optimizations Miquel Raynal 2018-09-05 20:53 ` Janusz Krzysztofik 2018-09-07 16:45 ` Tony Lindgren 2018-09-19 8:46 ` Miquel Raynal 2018-09-19 22:52 ` [PATCH v5 " Janusz Krzysztofik 2018-09-19 22:52 ` [PATCH v5 1/3] mtd: rawnand: ams-delta: show parent device in sysfs Janusz Krzysztofik 2018-09-19 22:52 ` [PATCH v5 2/3] mtd: rawnand: ams-delta: Use private structure Janusz Krzysztofik 2018-09-19 22:52 ` [PATCH v5 3/3] mtd: rawnand: ams-delta: Set port direction when needed Janusz Krzysztofik 2018-09-23 11:35 ` [PATCH v5 0/3] mtd: rawnand: ams-delta: Cleanups and optimizations Miquel Raynal 2018-08-20 23:43 ` [RFC RFT PATCH 0/4] gpiolib: speed up GPIO array processing Janusz Krzysztofik 2018-08-20 23:43 ` Janusz Krzysztofik 2018-08-20 23:43 ` Janusz Krzysztofik 2018-08-20 23:43 ` [RFC RFT PATCH v4 1/4] gpiolib: Pass bitmaps, not integer arrays, to get/set array Janusz Krzysztofik 2018-08-20 23:43 ` Janusz Krzysztofik 2018-08-21 6:49 ` Peter Rosin 2018-08-21 6:49 ` Peter Rosin 2018-08-21 6:52 ` Peter Rosin 2018-08-21 6:52 ` Peter Rosin 2018-08-29 12:03 ` Miguel Ojeda 2018-08-29 12:03 ` Miguel Ojeda 2018-08-29 12:03 ` Miguel Ojeda 2018-08-29 18:01 ` Janusz Krzysztofik 2018-08-29 18:01 ` Janusz Krzysztofik 2018-08-29 18:01 ` Janusz Krzysztofik 2018-08-20 23:43 ` [RFC RFT PATCH v4 2/4] gpiolib: Identify arrays matching GPIO hardware Janusz Krzysztofik 2018-08-20 23:43 ` Janusz Krzysztofik 2018-08-20 23:43 ` Janusz Krzysztofik 2018-08-20 23:43 ` [RFC RFT PATCH v4 3/4] gpiolib: Pass array info to get/set array functions Janusz Krzysztofik 2018-08-20 23:43 ` Janusz Krzysztofik 2018-08-20 23:43 ` Janusz Krzysztofik 2018-08-20 23:43 ` [RFC RFT PATCH v4 4/4] gpiolib: Implement fast processing path in get/set array Janusz Krzysztofik 2018-08-20 23:43 ` Janusz Krzysztofik 2018-08-29 9:06 ` [RFC RFT PATCH 0/4] gpiolib: speed up GPIO array processing Linus Walleij 2018-08-29 9:06 ` Linus Walleij 2018-08-29 9:06 ` Linus Walleij 2018-08-29 18:16 ` Janusz Krzysztofik 2018-08-29 18:16 ` Janusz Krzysztofik 2018-08-29 18:16 ` Janusz Krzysztofik 2018-08-29 10:19 ` Ulf Hansson 2018-08-29 10:19 ` Ulf Hansson 2018-08-29 20:48 ` [PATH v5 " Janusz Krzysztofik 2018-08-29 20:48 ` Janusz Krzysztofik 2018-08-29 20:48 ` Janusz Krzysztofik 2018-08-29 20:48 ` [PATCH v5 1/4] gpiolib: Pass bitmaps, not integer arrays, to get/set array Janusz Krzysztofik 2018-08-29 20:48 ` Janusz Krzysztofik 2018-08-29 20:48 ` Janusz Krzysztofik 2018-08-30 4:30 ` Peter Rosin 2018-08-30 4:30 ` Peter Rosin 2018-08-30 7:40 ` Geert Uytterhoeven 2018-08-30 7:40 ` Geert Uytterhoeven 2018-08-30 7:40 ` Geert Uytterhoeven 2018-08-30 11:10 ` Miguel Ojeda 2018-08-30 11:10 ` Miguel Ojeda 2018-08-30 11:10 ` Miguel Ojeda 2018-08-30 15:35 ` David Laight 2018-08-30 15:35 ` David Laight 2018-08-30 15:35 ` David Laight 2018-09-02 10:19 ` Janusz Krzysztofik 2018-09-02 10:19 ` Janusz Krzysztofik 2018-09-02 10:19 ` Janusz Krzysztofik 2018-08-31 9:14 ` Linus Walleij 2018-08-31 9:14 ` Linus Walleij 2018-08-29 20:48 ` [PATCH v5 2/4] gpiolib: Identify arrays matching GPIO hardware Janusz Krzysztofik 2018-08-29 20:48 ` Janusz Krzysztofik 2018-08-29 20:48 ` Janusz Krzysztofik 2018-08-29 20:48 ` [PATCH v5 3/4] gpiolib: Pass array info to get/set array functions Janusz Krzysztofik 2018-08-29 20:48 ` Janusz Krzysztofik 2018-08-29 20:48 ` Janusz Krzysztofik 2018-08-29 20:49 ` [PATCH v5 4/4] gpiolib: Implement fast processing path in get/set array Janusz Krzysztofik 2018-08-29 20:49 ` Janusz Krzysztofik 2018-08-29 20:49 ` Janusz Krzysztofik 2018-08-31 22:56 ` [PATH v6 0/4] gpiolib: speed up GPIO array processing Janusz Krzysztofik 2018-08-31 22:56 ` Janusz Krzysztofik 2018-08-31 22:56 ` Janusz Krzysztofik 2018-08-31 22:56 ` [PATCH v6 1/4] gpiolib: Pass bitmaps, not integer arrays, to get/set array Janusz Krzysztofik 2018-08-31 22:56 ` Janusz Krzysztofik 2018-08-31 22:56 ` Janusz Krzysztofik 2018-09-01 0:23 ` Peter Rosin 2018-09-01 0:23 ` Peter Rosin 2018-09-04 15:28 ` kbuild test robot 2018-09-04 15:28 ` kbuild test robot 2018-09-04 15:28 ` kbuild test robot 2018-09-04 15:28 ` kbuild test robot 2018-09-04 15:28 ` kbuild test robot 2018-09-04 15:28 ` kbuild test robot 2018-08-31 22:56 ` [PATCH v6 2/4] gpiolib: Identify arrays matching GPIO hardware Janusz Krzysztofik 2018-08-31 22:56 ` Janusz Krzysztofik 2018-08-31 22:56 ` Janusz Krzysztofik 2018-08-31 22:56 ` [PATCH v6 3/4] gpiolib: Pass array info to get/set array functions Janusz Krzysztofik 2018-08-31 22:56 ` Janusz Krzysztofik 2018-08-31 22:56 ` Janusz Krzysztofik 2018-09-04 15:27 ` kbuild test robot 2018-09-04 15:27 ` kbuild test robot 2018-09-04 15:27 ` kbuild test robot 2018-08-31 22:56 ` [PATCH v6 4/4] gpiolib: Implement fast processing path in get/set array Janusz Krzysztofik 2018-08-31 22:56 ` Janusz Krzysztofik 2018-08-31 22:56 ` Janusz Krzysztofik 2018-09-02 12:01 ` [PATCH v7 0/4] gpiolib: speed up GPIO array processing Janusz Krzysztofik 2018-09-02 12:01 ` Janusz Krzysztofik 2018-09-02 12:01 ` [PATCH v7 1/4] gpiolib: Pass bitmaps, not integer arrays, to get/set array Janusz Krzysztofik 2018-09-02 12:01 ` Janusz Krzysztofik 2018-09-02 13:21 ` Lukas Wunner 2018-09-02 13:21 ` Lukas Wunner 2018-09-02 13:21 ` Lukas Wunner 2018-09-03 4:31 ` Matthew Wilcox 2018-09-03 4:31 ` Matthew Wilcox 2018-09-03 4:31 ` Matthew Wilcox 2018-09-03 14:24 ` Geert Uytterhoeven 2018-09-03 14:24 ` Geert Uytterhoeven 2018-09-03 14:24 ` Geert Uytterhoeven 2018-09-03 15:07 ` Geert Uytterhoeven 2018-09-03 15:07 ` Geert Uytterhoeven 2018-09-03 15:07 ` Geert Uytterhoeven 2018-09-04 15:29 ` kbuild test robot 2018-09-04 15:29 ` kbuild test robot 2018-09-04 15:29 ` kbuild test robot 2018-09-05 6:46 ` kbuild test robot 2018-09-05 6:46 ` kbuild test robot 2018-09-05 6:46 ` kbuild test robot 2018-09-02 12:01 ` [PATCH v7 2/4] gpiolib: Identify arrays matching GPIO hardware Janusz Krzysztofik 2018-09-02 12:01 ` Janusz Krzysztofik 2018-09-02 12:01 ` Janusz Krzysztofik 2018-09-02 12:01 ` [PATCH v7 3/4] gpiolib: Pass array info to get/set array functions Janusz Krzysztofik 2018-09-02 12:01 ` Janusz Krzysztofik 2018-09-03 14:21 ` Geert Uytterhoeven 2018-09-03 14:21 ` Geert Uytterhoeven 2018-09-03 14:21 ` Geert Uytterhoeven 2018-09-04 15:23 ` kbuild test robot 2018-09-04 15:23 ` kbuild test robot 2018-09-04 15:23 ` kbuild test robot 2018-09-05 7:11 ` kbuild test robot 2018-09-05 7:11 ` kbuild test robot 2018-09-05 7:11 ` kbuild test robot 2018-09-02 12:01 ` [PATCH v7 4/4] gpiolib: Implement fast processing path in get/set array Janusz Krzysztofik 2018-09-02 12:01 ` Janusz Krzysztofik [not found] ` <CGME20180920101151eucas1p221f5a1715b8556bb9d99bf08fe09ce6f@eucas1p2.samsung.com> 2018-09-20 10:11 ` Marek Szyprowski 2018-09-20 10:11 ` Marek Szyprowski 2018-09-20 10:11 ` Marek Szyprowski 2018-09-20 15:48 ` Janusz Krzysztofik 2018-09-20 15:48 ` Janusz Krzysztofik 2018-09-20 15:48 ` Janusz Krzysztofik 2018-09-20 15:48 ` Janusz Krzysztofik 2018-09-20 16:21 ` Janusz Krzysztofik 2018-09-20 16:21 ` Janusz Krzysztofik 2018-09-20 16:21 ` Janusz Krzysztofik 2018-09-21 8:18 ` Marek Szyprowski 2018-09-21 8:18 ` Marek Szyprowski 2018-09-21 10:51 ` Janusz Krzysztofik 2018-09-21 10:51 ` Janusz Krzysztofik 2018-09-21 11:26 ` Janusz Krzysztofik 2018-09-21 11:26 ` Janusz Krzysztofik 2018-09-21 11:26 ` Janusz Krzysztofik 2018-09-21 14:14 ` Marek Szyprowski 2018-09-21 14:14 ` Marek Szyprowski 2018-09-21 14:14 ` Marek Szyprowski 2018-09-23 10:43 ` Janusz Krzysztofik 2018-09-23 10:43 ` Janusz Krzysztofik 2018-09-23 23:53 ` [PATCH 0/2] gpiolib: Fix issues introduced by fast bitmap processing path Janusz Krzysztofik 2018-09-23 23:53 ` Janusz Krzysztofik 2018-09-23 23:53 ` [PATCH 1/2] gpiolib: Fix missing updates of bitmap index Janusz Krzysztofik 2018-09-23 23:53 ` Janusz Krzysztofik 2018-09-23 23:53 ` Janusz Krzysztofik 2018-09-24 8:11 ` Linus Walleij 2018-09-24 8:11 ` Linus Walleij 2018-09-24 8:11 ` Linus Walleij 2018-09-29 12:20 ` [PATCH] gpiolib: Fix incorrect use of find_next_zero_bit() Janusz Krzysztofik 2018-09-29 12:20 ` Janusz Krzysztofik 2018-10-01 6:46 ` Marek Szyprowski 2018-10-01 6:46 ` Marek Szyprowski 2018-10-01 9:37 ` Linus Walleij 2018-10-01 9:37 ` Linus Walleij 2018-10-01 9:37 ` Linus Walleij 2018-09-23 23:53 ` [PATCH 2/2] gpiolib: Fix array members of same chip processed separately Janusz Krzysztofik 2018-09-23 23:53 ` Janusz Krzysztofik 2018-09-23 23:53 ` Janusz Krzysztofik 2018-09-24 8:13 ` Linus Walleij 2018-09-24 8:13 ` Linus Walleij 2018-09-24 8:13 ` Linus Walleij 2018-09-24 9:43 ` [PATCH 0/2] gpiolib: Fix issues introduced by fast bitmap processing path Marek Szyprowski 2018-09-24 9:43 ` Marek Szyprowski 2018-09-24 9:43 ` Marek Szyprowski 2018-09-24 11:08 ` Janusz Krzysztofik 2018-09-24 11:08 ` Janusz Krzysztofik 2018-09-24 11:38 ` Marek Szyprowski 2018-09-24 11:38 ` Marek Szyprowski 2018-09-24 11:38 ` Marek Szyprowski 2018-09-24 14:18 ` Janusz Krzysztofik 2018-09-24 14:18 ` Janusz Krzysztofik 2018-09-24 14:18 ` Janusz Krzysztofik 2018-09-25 19:24 ` [PATCH] mmc: pwrseq_simple: Fix incorrect handling of GPIO bitmap Janusz Krzysztofik 2018-09-26 7:50 ` Linus Walleij 2018-09-26 8:14 ` Marek Szyprowski [not found] ` <7a4906d9-ffb1-f2af-07e7-d5815dcd0d8c@samsung.com> 2018-09-26 8:27 ` Marek Szyprowski 2018-10-12 19:09 ` [RFT PATCH] " Janusz Krzysztofik 2018-10-12 19:09 ` Janusz Krzysztofik 2018-10-12 19:09 ` Janusz Krzysztofik 2018-10-12 19:09 ` Janusz Krzysztofik 2018-10-15 8:32 ` Marek Szyprowski 2018-10-15 8:32 ` Marek Szyprowski 2018-10-15 8:32 ` Marek Szyprowski 2018-10-15 8:32 ` Marek Szyprowski 2018-10-15 10:29 ` Ulf Hansson 2018-10-15 10:29 ` Ulf Hansson 2018-10-15 10:29 ` Ulf Hansson 2018-10-15 10:29 ` Ulf Hansson 2018-10-15 14:27 ` Linus Walleij 2018-10-15 14:27 ` Linus Walleij 2018-10-15 14:27 ` Linus Walleij 2018-10-15 14:27 ` Linus Walleij 2018-09-20 18:05 ` [PATCH v7 4/4] gpiolib: Implement fast processing path in get/set array Dan Carpenter 2018-09-20 18:05 ` Dan Carpenter 2018-09-20 15:49 ` Linus Walleij 2018-09-20 15:49 ` Linus Walleij 2018-09-20 15:49 ` Linus Walleij 2018-09-05 21:50 ` [PATCH v8 0/4] gpiolib: speed up GPIO array processing Janusz Krzysztofik 2018-09-05 21:50 ` Janusz Krzysztofik 2018-09-05 21:50 ` Janusz Krzysztofik 2018-09-05 21:50 ` [PATCH v8 1/4] gpiolib: Pass bitmaps, not integer arrays, to get/set array Janusz Krzysztofik 2018-09-05 21:50 ` Janusz Krzysztofik 2018-09-05 21:50 ` [PATCH v8 2/4] gpiolib: Identify arrays matching GPIO hardware Janusz Krzysztofik 2018-09-05 21:50 ` Janusz Krzysztofik 2018-09-05 21:50 ` [PATCH v8 3/4] gpiolib: Pass array info to get/set array functions Janusz Krzysztofik 2018-09-05 21:50 ` Janusz Krzysztofik 2018-09-05 21:50 ` Janusz Krzysztofik 2018-09-05 21:50 ` [PATCH v8 4/4] gpiolib: Implement fast processing path in get/set array Janusz Krzysztofik 2018-09-05 21:50 ` Janusz Krzysztofik 2018-09-05 21:50 ` Janusz Krzysztofik 2018-09-13 9:22 ` [PATCH v8 0/4] gpiolib: speed up GPIO array processing Linus Walleij 2018-09-13 9:22 ` Linus Walleij 2018-09-13 9:22 ` Linus Walleij 2018-09-19 18:08 ` Linus Walleij 2018-09-19 18:08 ` Linus Walleij 2018-09-19 18:08 ` Linus Walleij 2018-11-21 11:08 ` Subject: [PATCH v4 0/4] mtd: rawnand: ams-delta: Use GPIO API for data I/O Janusz Krzysztofik 2018-11-21 11:08 ` Janusz Krzysztofik 2018-11-21 11:08 ` [PATCH v4 1/4] ARM: OMAP1: ams-delta: Provide GPIO lookup table for NAND data port Janusz Krzysztofik 2018-11-21 11:08 ` Janusz Krzysztofik 2018-11-23 17:02 ` Tony Lindgren 2018-11-23 17:02 ` Tony Lindgren 2018-11-21 11:08 ` [PATCH v4 2/4] mtd: rawnand: ams-delta: Request data port GPIO resource Janusz Krzysztofik 2018-11-21 11:08 ` Janusz Krzysztofik 2018-11-21 11:08 ` [PATCH v4 3/4] mtd: rawnand: ams-delta: Use GPIO API for data I/O Janusz Krzysztofik 2018-11-21 11:08 ` Janusz Krzysztofik 2018-11-21 14:53 ` Boris Brezillon 2018-11-21 14:53 ` Boris Brezillon 2018-11-21 11:08 ` [PATCH v4 4/4] ARM: OMAP1: ams-delta: Drop obsolete NAND resources Janusz Krzysztofik 2018-11-21 11:08 ` Janusz Krzysztofik 2018-11-21 14:56 ` Subject: [PATCH v4 0/4] mtd: rawnand: ams-delta: Use GPIO API for data I/O Boris Brezillon 2018-11-21 14:56 ` Boris Brezillon 2018-11-23 17:03 ` Tony Lindgren 2018-11-23 17:03 ` Tony Lindgren 2018-12-07 8:04 ` Miquel Raynal 2018-12-07 8:04 ` Miquel Raynal 2018-12-07 16:10 ` Tony Lindgren 2018-12-07 16:10 ` Tony Lindgren
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=20180719084447.239a1b92@bbrezillon \ --to=boris.brezillon@bootlin.com \ --cc=aaro.koskinen@iki.fi \ --cc=artem.bityutskiy@linux.intel.com \ --cc=computersforpeace@gmail.com \ --cc=dwmw2@infradead.org \ --cc=grygorii.strashko@ti.com \ --cc=jmkrzyszt@gmail.com \ --cc=khilman@kernel.org \ --cc=linus.walleij@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-gpio@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mtd@lists.infradead.org \ --cc=linux-omap@vger.kernel.org \ --cc=marek.vasut@gmail.com \ --cc=miquel.raynal@bootlin.com \ --cc=richard@nod.at \ --cc=ssantosh@kernel.org \ --cc=tony@atomide.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: linkBe 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.