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>,
Richard Weinberger <richard@nod.at>,
David Woodhouse <dwmw2@infradead.org>,
Brian Norris <computersforpeace@gmail.com>,
Marek Vasut <marek.vasut@gmail.com>,
Linus Walleij <linus.walleij@linaro.org>,
linux-mtd@lists.infradead.org, linux-omap@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 3/4] mtd: rawnand: ams-delta: Use GPIO API for data I/O
Date: Wed, 21 Nov 2018 15:53:35 +0100 [thread overview]
Message-ID: <20181121155335.7375f827@bbrezillon> (raw)
In-Reply-To: <20181121110806.32076-4-jmkrzyszt@gmail.com>
On Wed, 21 Nov 2018 12:08:05 +0100
Janusz Krzysztofik <jmkrzyszt@gmail.com> wrote:
> Don't readw()/writew() data directly from/to GPIO port which is under
> control of gpio-omap driver, use GPIO consumer API instead.
>
> The driver should now work with any 8-bit bidirectional GPIO port, not
> only OMAP.
>
> Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
> Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Boris Brezillon <boris.brezillon@bootlin.com>
And thanks a lot for keeping up with that. I like the new ams-delta
driver, and I wonder if we couldn't extend it to replace the gpio-nand
driver.
> ---
> drivers/mtd/nand/raw/ams-delta.c | 109 +++++++++++++++++--------------
> 1 file changed, 61 insertions(+), 48 deletions(-)
>
> diff --git a/drivers/mtd/nand/raw/ams-delta.c b/drivers/mtd/nand/raw/ams-delta.c
> index bb50dda05654..8312182088c1 100644
> --- a/drivers/mtd/nand/raw/ams-delta.c
> +++ b/drivers/mtd/nand/raw/ams-delta.c
> @@ -18,11 +18,10 @@
> #include <linux/module.h>
> #include <linux/delay.h>
> #include <linux/gpio/consumer.h>
> -#include <linux/io.h>
> #include <linux/mtd/mtd.h>
> #include <linux/mtd/rawnand.h>
> #include <linux/mtd/partitions.h>
> -#include <linux/platform_data/gpio-omap.h>
> +#include <linux/platform_device.h>
> #include <linux/sizes.h>
>
> /*
> @@ -38,7 +37,7 @@ struct ams_delta_nand {
> struct gpio_desc *gpiod_nwe;
> struct gpio_desc *gpiod_ale;
> struct gpio_desc *gpiod_cle;
> - void __iomem *io_base;
> + struct gpio_descs *data_gpiods;
> bool data_in;
> };
>
> @@ -67,42 +66,78 @@ static const struct mtd_partition partition_info[] = {
> .size = 3 * SZ_256K },
> };
>
> -static void ams_delta_io_write(struct ams_delta_nand *priv, u8 byte)
> +static void ams_delta_write_commit(struct ams_delta_nand *priv)
> {
> - writew(byte, priv->io_base + OMAP_MPUIO_OUTPUT);
> gpiod_set_value(priv->gpiod_nwe, 0);
> ndelay(40);
> gpiod_set_value(priv->gpiod_nwe, 1);
> }
>
> +static void ams_delta_io_write(struct ams_delta_nand *priv, u8 byte)
> +{
> + struct gpio_descs *data_gpiods = priv->data_gpiods;
> + DECLARE_BITMAP(values, BITS_PER_TYPE(byte)) = { byte, };
> +
> + gpiod_set_raw_array_value(data_gpiods->ndescs, data_gpiods->desc,
> + data_gpiods->info, values);
> +
> + ams_delta_write_commit(priv);
> +}
> +
> +static void ams_delta_dir_output(struct ams_delta_nand *priv, u8 byte)
> +{
> + struct gpio_descs *data_gpiods = priv->data_gpiods;
> + DECLARE_BITMAP(values, BITS_PER_TYPE(byte)) = { byte, };
> + int i;
> +
> + for (i = 0; i < data_gpiods->ndescs; i++)
> + gpiod_direction_output_raw(data_gpiods->desc[i],
> + test_bit(i, values));
> +
> + ams_delta_write_commit(priv);
> +
> + priv->data_in = false;
> +}
> +
> static u8 ams_delta_io_read(struct ams_delta_nand *priv)
> {
> u8 res;
> + struct gpio_descs *data_gpiods = priv->data_gpiods;
> + DECLARE_BITMAP(values, BITS_PER_TYPE(res)) = { 0, };
>
> gpiod_set_value(priv->gpiod_nre, 0);
> ndelay(40);
> - res = readw(priv->io_base + OMAP_MPUIO_INPUT_LATCH);
> +
> + gpiod_get_raw_array_value(data_gpiods->ndescs, data_gpiods->desc,
> + data_gpiods->info, values);
> +
> gpiod_set_value(priv->gpiod_nre, 1);
>
> + res = values[0];
> return res;
> }
>
> -static void ams_delta_dir_input(struct ams_delta_nand *priv, bool in)
> +static void ams_delta_dir_input(struct ams_delta_nand *priv)
> {
> - writew(in ? ~0 : 0, priv->io_base + OMAP_MPUIO_IO_CNTL);
> - priv->data_in = in;
> + struct gpio_descs *data_gpiods = priv->data_gpiods;
> + int i;
> +
> + for (i = 0; i < data_gpiods->ndescs; i++)
> + gpiod_direction_input(data_gpiods->desc[i]);
> +
> + priv->data_in = true;
> }
>
> static void ams_delta_write_buf(struct ams_delta_nand *priv, const u8 *buf,
> int len)
> {
> - int i;
> + int i = 0;
>
> - if (priv->data_in)
> - ams_delta_dir_input(priv, false);
> + if (len > 0 && priv->data_in)
> + ams_delta_dir_output(priv, buf[i++]);
>
> - for (i = 0; i < len; i++)
> - ams_delta_io_write(priv, buf[i]);
> + while (i < len)
> + ams_delta_io_write(priv, buf[i++]);
> }
>
> static void ams_delta_read_buf(struct ams_delta_nand *priv, u8 *buf, int len)
> @@ -110,7 +145,7 @@ static void ams_delta_read_buf(struct ams_delta_nand *priv, u8 *buf, int len)
> int i;
>
> if (!priv->data_in)
> - ams_delta_dir_input(priv, true);
> + ams_delta_dir_input(priv);
>
> for (i = 0; i < len; i++)
> buf[i] = ams_delta_io_read(priv);
> @@ -188,14 +223,9 @@ static int ams_delta_init(struct platform_device *pdev)
> struct ams_delta_nand *priv;
> struct nand_chip *this;
> struct mtd_info *mtd;
> - struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> - void __iomem *io_base;
> struct gpio_descs *data_gpiods;
> int err = 0;
>
> - if (!res)
> - return -ENXIO;
> -
> /* Allocate memory for MTD device structure and private data */
> priv = devm_kzalloc(&pdev->dev, sizeof(struct ams_delta_nand),
> GFP_KERNEL);
> @@ -207,25 +237,13 @@ static int ams_delta_init(struct platform_device *pdev)
> mtd = nand_to_mtd(this);
> mtd->dev.parent = &pdev->dev;
>
> - /*
> - * Don't try to request the memory region from here,
> - * it should have been already requested from the
> - * gpio-omap driver and requesting it again would fail.
> - */
> - io_base = ioremap(res->start, resource_size(res));
> - if (!io_base) {
> - dev_err(&pdev->dev, "ioremap failed\n");
> - return -EIO;
> - }
> -
> - priv->io_base = io_base;
> nand_set_controller_data(this, priv);
>
> priv->gpiod_rdy = devm_gpiod_get_optional(&pdev->dev, "rdy", GPIOD_IN);
> if (IS_ERR(priv->gpiod_rdy)) {
> err = PTR_ERR(priv->gpiod_rdy);
> dev_warn(&pdev->dev, "RDY GPIO request failed (%d)\n", err);
> - goto err_unmap;
> + return err;
> }
>
> this->ecc.mode = NAND_ECC_SOFT;
> @@ -238,42 +256,42 @@ static int ams_delta_init(struct platform_device *pdev)
> if (IS_ERR(priv->gpiod_nwp)) {
> err = PTR_ERR(priv->gpiod_nwp);
> dev_err(&pdev->dev, "NWP GPIO request failed (%d)\n", err);
> - goto err_unmap;
> + return err;
> }
>
> priv->gpiod_nce = devm_gpiod_get(&pdev->dev, "nce", GPIOD_OUT_HIGH);
> if (IS_ERR(priv->gpiod_nce)) {
> err = PTR_ERR(priv->gpiod_nce);
> dev_err(&pdev->dev, "NCE GPIO request failed (%d)\n", err);
> - goto err_unmap;
> + return err;
> }
>
> priv->gpiod_nre = devm_gpiod_get(&pdev->dev, "nre", GPIOD_OUT_HIGH);
> if (IS_ERR(priv->gpiod_nre)) {
> err = PTR_ERR(priv->gpiod_nre);
> dev_err(&pdev->dev, "NRE GPIO request failed (%d)\n", err);
> - goto err_unmap;
> + return err;
> }
>
> priv->gpiod_nwe = devm_gpiod_get(&pdev->dev, "nwe", GPIOD_OUT_HIGH);
> if (IS_ERR(priv->gpiod_nwe)) {
> err = PTR_ERR(priv->gpiod_nwe);
> dev_err(&pdev->dev, "NWE GPIO request failed (%d)\n", err);
> - goto err_unmap;
> + return err;
> }
>
> priv->gpiod_ale = devm_gpiod_get(&pdev->dev, "ale", GPIOD_OUT_LOW);
> if (IS_ERR(priv->gpiod_ale)) {
> err = PTR_ERR(priv->gpiod_ale);
> dev_err(&pdev->dev, "ALE GPIO request failed (%d)\n", err);
> - goto err_unmap;
> + return err;
> }
>
> priv->gpiod_cle = devm_gpiod_get(&pdev->dev, "cle", GPIOD_OUT_LOW);
> if (IS_ERR(priv->gpiod_cle)) {
> err = PTR_ERR(priv->gpiod_cle);
> dev_err(&pdev->dev, "CLE GPIO request failed (%d)\n", err);
> - goto err_unmap;
> + return err;
> }
>
> /* Request array of data pins, initialize them as input */
> @@ -281,8 +299,9 @@ static int ams_delta_init(struct platform_device *pdev)
> if (IS_ERR(data_gpiods)) {
> err = PTR_ERR(data_gpiods);
> dev_err(&pdev->dev, "data GPIO request failed: %d\n", err);
> - goto err_unmap;
> + return err;
> }
> + priv->data_gpiods = data_gpiods;
> priv->data_in = true;
>
> /* Initialize the NAND controller object embedded in ams_delta_nand. */
> @@ -293,7 +312,7 @@ static int ams_delta_init(struct platform_device *pdev)
> /* Scan to find existence of the device */
> err = nand_scan(this, 1);
> if (err)
> - goto err_unmap;
> + return err;
>
> /* Register the partitions */
> err = mtd_device_register(mtd, partition_info,
> @@ -306,9 +325,6 @@ static int ams_delta_init(struct platform_device *pdev)
> err_nand_cleanup:
> nand_cleanup(this);
>
> -err_unmap:
> - iounmap(io_base);
> -
> return err;
> }
>
> @@ -319,13 +335,10 @@ static int ams_delta_cleanup(struct platform_device *pdev)
> {
> struct ams_delta_nand *priv = platform_get_drvdata(pdev);
> struct mtd_info *mtd = nand_to_mtd(&priv->nand_chip);
> - void __iomem *io_base = priv->io_base;
>
> - /* Release resources, unregister device */
> + /* Unregister device */
> nand_release(mtd_to_nand(mtd));
>
> - iounmap(io_base);
> -
> return 0;
> }
>
WARNING: multiple messages have this Message-ID (diff)
From: boris.brezillon@bootlin.com (Boris Brezillon)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 3/4] mtd: rawnand: ams-delta: Use GPIO API for data I/O
Date: Wed, 21 Nov 2018 15:53:35 +0100 [thread overview]
Message-ID: <20181121155335.7375f827@bbrezillon> (raw)
In-Reply-To: <20181121110806.32076-4-jmkrzyszt@gmail.com>
On Wed, 21 Nov 2018 12:08:05 +0100
Janusz Krzysztofik <jmkrzyszt@gmail.com> wrote:
> Don't readw()/writew() data directly from/to GPIO port which is under
> control of gpio-omap driver, use GPIO consumer API instead.
>
> The driver should now work with any 8-bit bidirectional GPIO port, not
> only OMAP.
>
> Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
> Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Boris Brezillon <boris.brezillon@bootlin.com>
And thanks a lot for keeping up with that. I like the new ams-delta
driver, and I wonder if we couldn't extend it to replace the gpio-nand
driver.
> ---
> drivers/mtd/nand/raw/ams-delta.c | 109 +++++++++++++++++--------------
> 1 file changed, 61 insertions(+), 48 deletions(-)
>
> diff --git a/drivers/mtd/nand/raw/ams-delta.c b/drivers/mtd/nand/raw/ams-delta.c
> index bb50dda05654..8312182088c1 100644
> --- a/drivers/mtd/nand/raw/ams-delta.c
> +++ b/drivers/mtd/nand/raw/ams-delta.c
> @@ -18,11 +18,10 @@
> #include <linux/module.h>
> #include <linux/delay.h>
> #include <linux/gpio/consumer.h>
> -#include <linux/io.h>
> #include <linux/mtd/mtd.h>
> #include <linux/mtd/rawnand.h>
> #include <linux/mtd/partitions.h>
> -#include <linux/platform_data/gpio-omap.h>
> +#include <linux/platform_device.h>
> #include <linux/sizes.h>
>
> /*
> @@ -38,7 +37,7 @@ struct ams_delta_nand {
> struct gpio_desc *gpiod_nwe;
> struct gpio_desc *gpiod_ale;
> struct gpio_desc *gpiod_cle;
> - void __iomem *io_base;
> + struct gpio_descs *data_gpiods;
> bool data_in;
> };
>
> @@ -67,42 +66,78 @@ static const struct mtd_partition partition_info[] = {
> .size = 3 * SZ_256K },
> };
>
> -static void ams_delta_io_write(struct ams_delta_nand *priv, u8 byte)
> +static void ams_delta_write_commit(struct ams_delta_nand *priv)
> {
> - writew(byte, priv->io_base + OMAP_MPUIO_OUTPUT);
> gpiod_set_value(priv->gpiod_nwe, 0);
> ndelay(40);
> gpiod_set_value(priv->gpiod_nwe, 1);
> }
>
> +static void ams_delta_io_write(struct ams_delta_nand *priv, u8 byte)
> +{
> + struct gpio_descs *data_gpiods = priv->data_gpiods;
> + DECLARE_BITMAP(values, BITS_PER_TYPE(byte)) = { byte, };
> +
> + gpiod_set_raw_array_value(data_gpiods->ndescs, data_gpiods->desc,
> + data_gpiods->info, values);
> +
> + ams_delta_write_commit(priv);
> +}
> +
> +static void ams_delta_dir_output(struct ams_delta_nand *priv, u8 byte)
> +{
> + struct gpio_descs *data_gpiods = priv->data_gpiods;
> + DECLARE_BITMAP(values, BITS_PER_TYPE(byte)) = { byte, };
> + int i;
> +
> + for (i = 0; i < data_gpiods->ndescs; i++)
> + gpiod_direction_output_raw(data_gpiods->desc[i],
> + test_bit(i, values));
> +
> + ams_delta_write_commit(priv);
> +
> + priv->data_in = false;
> +}
> +
> static u8 ams_delta_io_read(struct ams_delta_nand *priv)
> {
> u8 res;
> + struct gpio_descs *data_gpiods = priv->data_gpiods;
> + DECLARE_BITMAP(values, BITS_PER_TYPE(res)) = { 0, };
>
> gpiod_set_value(priv->gpiod_nre, 0);
> ndelay(40);
> - res = readw(priv->io_base + OMAP_MPUIO_INPUT_LATCH);
> +
> + gpiod_get_raw_array_value(data_gpiods->ndescs, data_gpiods->desc,
> + data_gpiods->info, values);
> +
> gpiod_set_value(priv->gpiod_nre, 1);
>
> + res = values[0];
> return res;
> }
>
> -static void ams_delta_dir_input(struct ams_delta_nand *priv, bool in)
> +static void ams_delta_dir_input(struct ams_delta_nand *priv)
> {
> - writew(in ? ~0 : 0, priv->io_base + OMAP_MPUIO_IO_CNTL);
> - priv->data_in = in;
> + struct gpio_descs *data_gpiods = priv->data_gpiods;
> + int i;
> +
> + for (i = 0; i < data_gpiods->ndescs; i++)
> + gpiod_direction_input(data_gpiods->desc[i]);
> +
> + priv->data_in = true;
> }
>
> static void ams_delta_write_buf(struct ams_delta_nand *priv, const u8 *buf,
> int len)
> {
> - int i;
> + int i = 0;
>
> - if (priv->data_in)
> - ams_delta_dir_input(priv, false);
> + if (len > 0 && priv->data_in)
> + ams_delta_dir_output(priv, buf[i++]);
>
> - for (i = 0; i < len; i++)
> - ams_delta_io_write(priv, buf[i]);
> + while (i < len)
> + ams_delta_io_write(priv, buf[i++]);
> }
>
> static void ams_delta_read_buf(struct ams_delta_nand *priv, u8 *buf, int len)
> @@ -110,7 +145,7 @@ static void ams_delta_read_buf(struct ams_delta_nand *priv, u8 *buf, int len)
> int i;
>
> if (!priv->data_in)
> - ams_delta_dir_input(priv, true);
> + ams_delta_dir_input(priv);
>
> for (i = 0; i < len; i++)
> buf[i] = ams_delta_io_read(priv);
> @@ -188,14 +223,9 @@ static int ams_delta_init(struct platform_device *pdev)
> struct ams_delta_nand *priv;
> struct nand_chip *this;
> struct mtd_info *mtd;
> - struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> - void __iomem *io_base;
> struct gpio_descs *data_gpiods;
> int err = 0;
>
> - if (!res)
> - return -ENXIO;
> -
> /* Allocate memory for MTD device structure and private data */
> priv = devm_kzalloc(&pdev->dev, sizeof(struct ams_delta_nand),
> GFP_KERNEL);
> @@ -207,25 +237,13 @@ static int ams_delta_init(struct platform_device *pdev)
> mtd = nand_to_mtd(this);
> mtd->dev.parent = &pdev->dev;
>
> - /*
> - * Don't try to request the memory region from here,
> - * it should have been already requested from the
> - * gpio-omap driver and requesting it again would fail.
> - */
> - io_base = ioremap(res->start, resource_size(res));
> - if (!io_base) {
> - dev_err(&pdev->dev, "ioremap failed\n");
> - return -EIO;
> - }
> -
> - priv->io_base = io_base;
> nand_set_controller_data(this, priv);
>
> priv->gpiod_rdy = devm_gpiod_get_optional(&pdev->dev, "rdy", GPIOD_IN);
> if (IS_ERR(priv->gpiod_rdy)) {
> err = PTR_ERR(priv->gpiod_rdy);
> dev_warn(&pdev->dev, "RDY GPIO request failed (%d)\n", err);
> - goto err_unmap;
> + return err;
> }
>
> this->ecc.mode = NAND_ECC_SOFT;
> @@ -238,42 +256,42 @@ static int ams_delta_init(struct platform_device *pdev)
> if (IS_ERR(priv->gpiod_nwp)) {
> err = PTR_ERR(priv->gpiod_nwp);
> dev_err(&pdev->dev, "NWP GPIO request failed (%d)\n", err);
> - goto err_unmap;
> + return err;
> }
>
> priv->gpiod_nce = devm_gpiod_get(&pdev->dev, "nce", GPIOD_OUT_HIGH);
> if (IS_ERR(priv->gpiod_nce)) {
> err = PTR_ERR(priv->gpiod_nce);
> dev_err(&pdev->dev, "NCE GPIO request failed (%d)\n", err);
> - goto err_unmap;
> + return err;
> }
>
> priv->gpiod_nre = devm_gpiod_get(&pdev->dev, "nre", GPIOD_OUT_HIGH);
> if (IS_ERR(priv->gpiod_nre)) {
> err = PTR_ERR(priv->gpiod_nre);
> dev_err(&pdev->dev, "NRE GPIO request failed (%d)\n", err);
> - goto err_unmap;
> + return err;
> }
>
> priv->gpiod_nwe = devm_gpiod_get(&pdev->dev, "nwe", GPIOD_OUT_HIGH);
> if (IS_ERR(priv->gpiod_nwe)) {
> err = PTR_ERR(priv->gpiod_nwe);
> dev_err(&pdev->dev, "NWE GPIO request failed (%d)\n", err);
> - goto err_unmap;
> + return err;
> }
>
> priv->gpiod_ale = devm_gpiod_get(&pdev->dev, "ale", GPIOD_OUT_LOW);
> if (IS_ERR(priv->gpiod_ale)) {
> err = PTR_ERR(priv->gpiod_ale);
> dev_err(&pdev->dev, "ALE GPIO request failed (%d)\n", err);
> - goto err_unmap;
> + return err;
> }
>
> priv->gpiod_cle = devm_gpiod_get(&pdev->dev, "cle", GPIOD_OUT_LOW);
> if (IS_ERR(priv->gpiod_cle)) {
> err = PTR_ERR(priv->gpiod_cle);
> dev_err(&pdev->dev, "CLE GPIO request failed (%d)\n", err);
> - goto err_unmap;
> + return err;
> }
>
> /* Request array of data pins, initialize them as input */
> @@ -281,8 +299,9 @@ static int ams_delta_init(struct platform_device *pdev)
> if (IS_ERR(data_gpiods)) {
> err = PTR_ERR(data_gpiods);
> dev_err(&pdev->dev, "data GPIO request failed: %d\n", err);
> - goto err_unmap;
> + return err;
> }
> + priv->data_gpiods = data_gpiods;
> priv->data_in = true;
>
> /* Initialize the NAND controller object embedded in ams_delta_nand. */
> @@ -293,7 +312,7 @@ static int ams_delta_init(struct platform_device *pdev)
> /* Scan to find existence of the device */
> err = nand_scan(this, 1);
> if (err)
> - goto err_unmap;
> + return err;
>
> /* Register the partitions */
> err = mtd_device_register(mtd, partition_info,
> @@ -306,9 +325,6 @@ static int ams_delta_init(struct platform_device *pdev)
> err_nand_cleanup:
> nand_cleanup(this);
>
> -err_unmap:
> - iounmap(io_base);
> -
> return err;
> }
>
> @@ -319,13 +335,10 @@ static int ams_delta_cleanup(struct platform_device *pdev)
> {
> struct ams_delta_nand *priv = platform_get_drvdata(pdev);
> struct mtd_info *mtd = nand_to_mtd(&priv->nand_chip);
> - void __iomem *io_base = priv->io_base;
>
> - /* Release resources, unregister device */
> + /* Unregister device */
> nand_release(mtd_to_nand(mtd));
>
> - iounmap(io_base);
> -
> return 0;
> }
>
next prev parent reply other threads:[~2018-11-21 14:53 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
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
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 [this message]
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=20181121155335.7375f827@bbrezillon \
--to=boris.brezillon@bootlin.com \
--cc=aaro.koskinen@iki.fi \
--cc=computersforpeace@gmail.com \
--cc=dwmw2@infradead.org \
--cc=jmkrzyszt@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.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=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: 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.