All of lore.kernel.org
 help / color / mirror / Atom feed
From: Brian Norris <computersforpeace@gmail.com>
To: Roger Quadros <rogerq@ti.com>
Cc: tony@atomide.com, dwmw2@infradead.org,
	ezequiel@vanguardiasur.com.ar, javier@dowhile0.org,
	fcooper@ti.com, nsekhar@ti.com, linux-mtd@lists.infradead.org,
	linux-omap@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 04/27] mtd: nand: omap2: Use gpmc_omap_get_nand_ops() to get NAND registers
Date: Wed, 2 Dec 2015 21:00:44 -0800	[thread overview]
Message-ID: <20151203050044.GD120110@google.com> (raw)
In-Reply-To: <1442588029-13769-5-git-send-email-rogerq@ti.com>

On Fri, Sep 18, 2015 at 05:53:26PM +0300, Roger Quadros wrote:
> Deprecate nand register passing via platform data and use
> gpmc_omap_get_nand_ops() instead.
> 
> Signed-off-by: Roger Quadros <rogerq@ti.com>
> ---
>  arch/arm/mach-omap2/gpmc-nand.c              | 2 --
>  drivers/mtd/nand/omap2.c                     | 9 ++++++++-
>  include/linux/platform_data/mtd-nand-omap2.h | 4 +++-
>  3 files changed, 11 insertions(+), 4 deletions(-)

This one also seems a bit oddly-split, if you're trying to allow
bringing these into different trees. The nand/omap2.c changes seem like
they can be done completely on their own (after the previous patches),
and the arch/arm/mach-omap2/gpmc-nand.c and
include/linux/platform_data/mtd-nand-omap2.h changes can come in their
own patch afterward.

That does still make things a little complicated for applying to
different trees, though, as we have some arch/arm -> drivers/mtd ->
arch/arm dependencies.

If it helps, I can try to provide Tony with a stable v4.4-rc1-based
piece of the MTD tree, and just take everything through there (with
acks). (FWIW, everything in l2-mtd.git can be considered stable,
git-wise. I've been keeping a clean history. But it'd be best to
coordinate what points to cross-merge.)

Then if we do that, we'd have to keep a close eye to make sure I don't
take any more conflicting changes to drivers/mtd/nand/omap2.c, or else
do another cross-merge...

Any better suggestions?

Brian

> 
> diff --git a/arch/arm/mach-omap2/gpmc-nand.c b/arch/arm/mach-omap2/gpmc-nand.c
> index 72918c4..04e6998 100644
> --- a/arch/arm/mach-omap2/gpmc-nand.c
> +++ b/arch/arm/mach-omap2/gpmc-nand.c
> @@ -121,8 +121,6 @@ int gpmc_nand_init(struct omap_nand_platform_data *gpmc_nand_data,
>  	if (err < 0)
>  		goto out_free_cs;
>  
> -	gpmc_update_nand_reg(&gpmc_nand_data->reg, gpmc_nand_data->cs);
> -
>  	if (!gpmc_hwecc_bch_capable(gpmc_nand_data->ecc_opt)) {
>  		pr_err("omap2-nand: Unsupported NAND ECC scheme selected\n");
>  		err = -EINVAL;
> diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c
> index 60fa899..f214fe2 100644
> --- a/drivers/mtd/nand/omap2.c
> +++ b/drivers/mtd/nand/omap2.c
> @@ -28,6 +28,7 @@
>  #include <linux/mtd/nand_bch.h>
>  #include <linux/platform_data/elm.h>
>  
> +#include <linux/omap-gpmc.h>
>  #include <linux/platform_data/mtd-nand-omap2.h>
>  
>  #define	DRIVER_NAME	"omap2-nand"
> @@ -169,7 +170,9 @@ struct omap_nand_info {
>  	} iomode;
>  	u_char				*buf;
>  	int					buf_len;
> +	/* Interface to GPMC */
>  	struct gpmc_nand_regs		reg;
> +	struct gpmc_nand_ops		*ops;
>  	/* generated at runtime depending on ECC algorithm and layout selected */
>  	struct nand_ecclayout		oobinfo;
>  	/* fields specific for BCHx_HW ECC scheme */
> @@ -1677,9 +1680,13 @@ static int omap_nand_probe(struct platform_device *pdev)
>  
>  	platform_set_drvdata(pdev, info);
>  
> +	info->ops = gpmc_omap_get_nand_ops(&info->reg, info->gpmc_cs);
> +	if (!info->ops) {
> +		dev_err(&pdev->dev, "Failed to get GPMC->NAND interface\n");
> +		return -ENODEV;
> +	}
>  	info->pdev		= pdev;
>  	info->gpmc_cs		= pdata->cs;
> -	info->reg		= pdata->reg;
>  	info->of_node		= pdata->of_node;
>  	info->ecc_opt		= pdata->ecc_opt;
>  	mtd			= &info->mtd;
> diff --git a/include/linux/platform_data/mtd-nand-omap2.h b/include/linux/platform_data/mtd-nand-omap2.h
> index 090bbab..a067f58 100644
> --- a/include/linux/platform_data/mtd-nand-omap2.h
> +++ b/include/linux/platform_data/mtd-nand-omap2.h
> @@ -75,10 +75,12 @@ struct omap_nand_platform_data {
>  	enum nand_io		xfer_type;
>  	int			devsize;
>  	enum omap_ecc           ecc_opt;
> -	struct gpmc_nand_regs	reg;
>  
>  	/* for passing the partitions */
>  	struct device_node	*of_node;
>  	struct device_node	*elm_of_node;
> +
> +	/* deprecated */
> +	struct gpmc_nand_regs	reg;
>  };
>  #endif
> -- 
> 2.1.4
> 

  reply	other threads:[~2015-12-03  5:01 UTC|newest]

Thread overview: 144+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-18 14:53 [PATCH v3 00/27] memory: omap-gpmc: mtd: nand: Support GPMC NAND on non-OMAP platforms Roger Quadros
2015-09-18 14:53 ` Roger Quadros
2015-09-18 14:53 ` [PATCH v3 01/27] ARM: OMAP2+: gpmc: Add platform data Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-09-18 14:53 ` [PATCH v3 02/27] ARM: OMAP2+: gpmc: Add gpmc timings and settings to " Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-09-18 14:53 ` [PATCH v3 03/27] memory: omap-gpmc: Introduce GPMC to NAND interface Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-09-18 14:53 ` [PATCH v3 04/27] mtd: nand: omap2: Use gpmc_omap_get_nand_ops() to get NAND registers Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-12-03  5:00   ` Brian Norris [this message]
2015-09-18 14:53 ` [PATCH v3 05/27] memory: omap-gpmc: Add GPMC-NAND ops to get writebufferempty status Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-09-18 14:53 ` [PATCH v3 06/27] mtd: nand: omap2: Switch to using GPMC-NAND ops for writebuffer empty check Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-09-18 14:53 ` [PATCH v3 07/27] memory: omap-gpmc: Remove NAND IRQ code Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-09-18 14:53 ` [PATCH v3 08/27] memory: omap-gpmc: Add IRQ ops for GPMC-NAND interface Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-09-18 14:53 ` [PATCH v3 09/27] mtd: nand: omap2: manage NAND interrupts Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-09-18 14:53 ` [PATCH v3 10/27] mtd: nand: omap: Copy platform data parameters to omap_nand_info data Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-09-18 14:53 ` [PATCH v3 11/27] mtd: nand: omap: Clean up device tree support Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-10-06 10:35   ` [PATCH v4 " Roger Quadros
2015-10-06 10:35     ` Roger Quadros
2015-12-03  4:29     ` Brian Norris
2015-12-03  4:29       ` Brian Norris
2015-12-03  5:57       ` Roger Quadros
2015-12-03  5:57         ` Roger Quadros
2015-12-03  6:09         ` Brian Norris
2015-09-18 14:53 ` [PATCH v3 12/27] mtd: nand: omap: Update DT binding documentation Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-09-18 14:53 ` [PATCH v3 13/27] memory: omap-gpmc: Prevent mapping into 1st 16MB Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-09-18 14:53 ` [PATCH v3 14/27] memory: omap-gpmc: Move device tree binding to correct location Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-09-18 14:53 ` [PATCH v3 15/27] memory: omap-gpmc: Support general purpose input for WAITPINs Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-09-18 14:53 ` [PATCH v3 16/27] memory: omap-gpmc: Reserve WAITPIN if needed for WAIT monitoring Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-09-18 14:53 ` [PATCH v3 17/27] memory: omap-gpmc: Add irqchip support to the gpiochip Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-09-18 14:53 ` [PATCH v3 18/27] mtd: nand: omap2: Implement NAND ready using gpiolib Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-10-26 20:49   ` Brian Norris
2015-10-26 20:49     ` Brian Norris
2015-10-27  8:03     ` Roger Quadros
2015-10-27  8:03       ` Roger Quadros
2015-10-27  8:12       ` Boris Brezillon
2015-10-27  8:12         ` Boris Brezillon
2015-10-27  8:43         ` Roger Quadros
2015-10-27  8:43           ` Roger Quadros
2015-10-27  8:28     ` Boris Brezillon
2015-12-03  4:45       ` Brian Norris
2015-12-03  8:41         ` Boris Brezillon
2015-09-18 14:53 ` [PATCH v3 19/27] memory: omap-gpmc: Prevent GPMC_STATUS from being accessed via gpmc_regs Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-09-18 14:53 ` [PATCH v3 20/27] ARM: dts: dra7: Fix NAND device nodes Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-10-14 13:34   ` Franklin S Cooper Jr.
2015-10-14 13:34     ` Franklin S Cooper Jr.
2015-10-14 14:17     ` Roger Quadros
2015-10-14 14:17       ` Roger Quadros
2015-10-14 14:37       ` Franklin S Cooper Jr.
2015-10-14 14:37         ` Franklin S Cooper Jr.
2015-09-18 14:53 ` [PATCH v3 21/27] ARM: dts: dra7x-evm: Provide NAND ready pin Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-09-18 14:53 ` [PATCH v3 22/27] ARM: dts: am437x: Fix NAND device nodes Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-09-18 14:53 ` [PATCH v3 23/27] ARM: dts: am437x-gp-evm: Provide NAND ready pin Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-09-18 14:53 ` [PATCH v3 24/27] ARM: dts: am335x: Fix NAND device nodes Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-09-18 14:53 ` [PATCH v3 25/27] ARM: dts: am335x: Provide NAND ready pin Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-09-18 14:53 ` [PATCH v3 26/27] ARM: dts: dm816x: Fix gpmc and NAND node Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-09-18 14:53 ` [PATCH v3 27/27] ARM: dts: omap3: Fix gpmc and NAND nodes Roger Quadros
2015-09-18 14:53   ` Roger Quadros
2015-10-13  0:43   ` Tony Lindgren
2015-10-13  0:43     ` Tony Lindgren
2015-10-13  6:29     ` Roger Quadros
2015-10-13  6:29       ` Roger Quadros
2015-10-13 15:18       ` Tony Lindgren
2015-10-13 15:18         ` Tony Lindgren
2015-10-14  7:39         ` Roger Quadros
2015-10-14  7:39           ` Roger Quadros
2015-10-14  8:55   ` [PATCH v4 " Roger Quadros
2015-10-14  8:55     ` Roger Quadros
2015-09-30  7:39 ` [PATCH v3 00/27] memory: omap-gpmc: mtd: nand: Support GPMC NAND on non-OMAP platforms Roger Quadros
2015-09-30  7:39   ` Roger Quadros
2015-09-30 11:00 ` Roger Quadros
2015-09-30 11:00   ` Roger Quadros
2015-10-06  8:33   ` Tony Lindgren
2015-10-06  9:54     ` Roger Quadros
2015-10-06  9:54       ` Roger Quadros
2015-10-06 10:00       ` Tony Lindgren
2015-10-06 10:00         ` Tony Lindgren
2015-10-06 10:05         ` Roger Quadros
2015-10-06 10:05           ` Roger Quadros
2015-10-06 10:28           ` Roger Quadros
2015-10-06 10:28             ` Roger Quadros
2015-10-06 11:01             ` Tony Lindgren
2015-10-06 11:01               ` Tony Lindgren
2015-10-06 11:09               ` Roger Quadros
2015-10-06 11:09                 ` Roger Quadros
2015-10-16 21:25                 ` Tony Lindgren
2015-10-19  7:08                   ` Roger Quadros
2015-10-19  7:08                     ` Roger Quadros
2015-10-21  8:31                     ` Roger Quadros
2015-10-21  8:31                       ` Roger Quadros
2015-10-21 15:20                       ` Tony Lindgren
2015-10-21 15:20                         ` Tony Lindgren
2015-10-23  7:09                         ` Roger Quadros
2015-10-23  7:09                           ` Roger Quadros
2015-11-30 17:26                           ` Tony Lindgren
2015-10-26 21:23 ` Brian Norris
2015-10-26 21:23   ` Brian Norris
2015-10-27  9:37   ` Roger Quadros
2015-10-27  9:37     ` Roger Quadros
2015-11-25 10:42     ` Roger Quadros
2015-11-25 10:42       ` Roger Quadros
2015-11-30 19:54     ` Brian Norris
2015-12-01 14:41       ` Roger Quadros
2015-12-01 14:41         ` Roger Quadros
2015-12-02  3:26         ` Brian Norris
2015-12-02  3:26           ` Brian Norris
2015-12-02  5:12           ` Roger Quadros
2015-12-02  5:12             ` Roger Quadros
2015-12-02 15:03             ` Tony Lindgren
2015-12-02 15:03               ` Tony Lindgren
2015-12-02 18:13               ` Brian Norris
2015-12-02 20:05                 ` Tony Lindgren
2015-12-02 18:43             ` Brian Norris
2015-12-03  5:09 ` Brian Norris
2015-12-03  5:09   ` Brian Norris
2015-12-03  6:08   ` Roger Quadros
2015-12-03  6:08     ` Roger Quadros
2015-12-03  6:22     ` Brian Norris
2015-12-03  9:01       ` Roger Quadros
2015-12-03  9:01         ` Roger Quadros
2015-12-03 15:17         ` 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=20151203050044.GD120110@google.com \
    --to=computersforpeace@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dwmw2@infradead.org \
    --cc=ezequiel@vanguardiasur.com.ar \
    --cc=fcooper@ti.com \
    --cc=javier@dowhile0.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=nsekhar@ti.com \
    --cc=rogerq@ti.com \
    --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.