Patchwork mtd: gpmi: remove unneccessary header

login
register
mail settings
Submitter Huang Shijie
Date Oct. 13, 2012, 5:03 p.m.
Message ID <1350147809-19616-1-git-send-email-shijie8@gmail.com>
Download mbox | patch
Permalink /patch/191280/
State Accepted
Commit 5de0b52ea8f8f5149502867acff2efb5efaf1fc2
Headers show

Comments

Huang Shijie - Oct. 13, 2012, 5:03 p.m.
The whole gpmi-nand driver has turned to pure devicetree supported.
So the linux/mtd/gpmi-nand.h is not neccessary now. Just remove it,
and move some macros to the gpmi-nand driver itself.

Signed-off-by: Huang Shijie <shijie8@gmail.com>
---
 drivers/mtd/nand/gpmi-nand/gpmi-lib.c  |    1 -
 drivers/mtd/nand/gpmi-nand/gpmi-nand.c |    7 +++-
 drivers/mtd/nand/gpmi-nand/gpmi-nand.h |    1 -
 include/linux/mtd/gpmi-nand.h          |   68 --------------------------------
 4 files changed, 6 insertions(+), 71 deletions(-)
 delete mode 100644 include/linux/mtd/gpmi-nand.h
Huang Shijie - Oct. 24, 2012, 6:13 a.m.
ping.

On Sun, Oct 14, 2012 at 1:03 AM, Huang Shijie <shijie8@gmail.com> wrote:
> The whole gpmi-nand driver has turned to pure devicetree supported.
> So the linux/mtd/gpmi-nand.h is not neccessary now. Just remove it,
> and move some macros to the gpmi-nand driver itself.
>
> Signed-off-by: Huang Shijie <shijie8@gmail.com>
> ---
>  drivers/mtd/nand/gpmi-nand/gpmi-lib.c  |    1 -
>  drivers/mtd/nand/gpmi-nand/gpmi-nand.c |    7 +++-
>  drivers/mtd/nand/gpmi-nand/gpmi-nand.h |    1 -
>  include/linux/mtd/gpmi-nand.h          |   68 --------------------------------
>  4 files changed, 6 insertions(+), 71 deletions(-)
>  delete mode 100644 include/linux/mtd/gpmi-nand.h
>
> diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-lib.c b/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
> index 3502acc..1585c5b 100644
> --- a/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
> +++ b/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
> @@ -18,7 +18,6 @@
>   * with this program; if not, write to the Free Software Foundation, Inc.,
>   * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
>   */
> -#include <linux/mtd/gpmi-nand.h>
>  #include <linux/delay.h>
>  #include <linux/clk.h>
>
> diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
> index e2c56fc..d376198 100644
> --- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
> +++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
> @@ -25,7 +25,6 @@
>  #include <linux/slab.h>
>  #include <linux/interrupt.h>
>  #include <linux/module.h>
> -#include <linux/mtd/gpmi-nand.h>
>  #include <linux/mtd/partitions.h>
>  #include <linux/pinctrl/consumer.h>
>  #include <linux/of.h>
> @@ -33,6 +32,12 @@
>  #include <linux/of_mtd.h>
>  #include "gpmi-nand.h"
>
> +/* Resource names for the GPMI NAND driver. */
> +#define GPMI_NAND_GPMI_REGS_ADDR_RES_NAME  "gpmi-nand"
> +#define GPMI_NAND_BCH_REGS_ADDR_RES_NAME   "bch"
> +#define GPMI_NAND_BCH_INTERRUPT_RES_NAME   "bch"
> +#define GPMI_NAND_DMA_INTERRUPT_RES_NAME   "gpmi-dma"
> +
>  /* add our owner bbt descriptor */
>  static uint8_t scan_ff_pattern[] = { 0xff };
>  static struct nand_bbt_descr gpmi_bbt_descr = {
> diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.h b/drivers/mtd/nand/gpmi-nand/gpmi-nand.h
> index 7ac25c1..3d93a5e 100644
> --- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.h
> +++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.h
> @@ -130,7 +130,6 @@ struct gpmi_nand_data {
>         /* System Interface */
>         struct device           *dev;
>         struct platform_device  *pdev;
> -       struct gpmi_nand_platform_data  *pdata;
>
>         /* Resources */
>         struct resources        resources;
> diff --git a/include/linux/mtd/gpmi-nand.h b/include/linux/mtd/gpmi-nand.h
> deleted file mode 100644
> index ed3c4e0..0000000
> --- a/include/linux/mtd/gpmi-nand.h
> +++ /dev/null
> @@ -1,68 +0,0 @@
> -/*
> - * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved.
> - *
> - * This program is free software; you can redistribute it and/or modify
> - * it under the terms of the GNU General Public License as published by
> - * the Free Software Foundation; either version 2 of the License, or
> - * (at your option) any later version.
> - *
> - * This program is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - * GNU General Public License for more details.
> - *
> - * You should have received a copy of the GNU General Public License along
> - * with this program; if not, write to the Free Software Foundation, Inc.,
> - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
> - */
> -
> -#ifndef __MACH_MXS_GPMI_NAND_H__
> -#define __MACH_MXS_GPMI_NAND_H__
> -
> -/* The size of the resources is fixed. */
> -#define GPMI_NAND_RES_SIZE     6
> -
> -/* Resource names for the GPMI NAND driver. */
> -#define GPMI_NAND_GPMI_REGS_ADDR_RES_NAME  "gpmi-nand"
> -#define GPMI_NAND_GPMI_INTERRUPT_RES_NAME  "GPMI NAND GPMI Interrupt"
> -#define GPMI_NAND_BCH_REGS_ADDR_RES_NAME   "bch"
> -#define GPMI_NAND_BCH_INTERRUPT_RES_NAME   "bch"
> -#define GPMI_NAND_DMA_CHANNELS_RES_NAME    "GPMI NAND DMA Channels"
> -#define GPMI_NAND_DMA_INTERRUPT_RES_NAME   "gpmi-dma"
> -
> -/**
> - * struct gpmi_nand_platform_data - GPMI NAND driver platform data.
> - *
> - * This structure communicates platform-specific information to the GPMI NAND
> - * driver that can't be expressed as resources.
> - *
> - * @platform_init:           A pointer to a function the driver will call to
> - *                           initialize the platform (e.g., set up the pin mux).
> - * @min_prop_delay_in_ns:    Minimum propagation delay of GPMI signals to and
> - *                           from the NAND Flash device, in nanoseconds.
> - * @max_prop_delay_in_ns:    Maximum propagation delay of GPMI signals to and
> - *                           from the NAND Flash device, in nanoseconds.
> - * @max_chip_count:          The maximum number of chips for which the driver
> - *                           should configure the hardware. This value most
> - *                           likely reflects the number of pins that are
> - *                           connected to a NAND Flash device. If this is
> - *                           greater than the SoC hardware can support, the
> - *                           driver will print a message and fail to initialize.
> - * @partitions:              An optional pointer to an array of partition
> - *                           descriptions.
> - * @partition_count:         The number of elements in the partitions array.
> - */
> -struct gpmi_nand_platform_data {
> -       /* SoC hardware information. */
> -       int             (*platform_init)(void);
> -
> -       /* NAND Flash information. */
> -       unsigned int    min_prop_delay_in_ns;
> -       unsigned int    max_prop_delay_in_ns;
> -       unsigned int    max_chip_count;
> -
> -       /* Medium information. */
> -       struct          mtd_partition *partitions;
> -       unsigned        partition_count;
> -};
> -#endif
> --
> 1.7.4.4
>
Artem Bityutskiy - Oct. 26, 2012, 1:41 p.m.
On Sat, 2012-10-13 at 13:03 -0400, Huang Shijie wrote:
> The whole gpmi-nand driver has turned to pure devicetree supported.
> So the linux/mtd/gpmi-nand.h is not neccessary now. Just remove it,
> and move some macros to the gpmi-nand driver itself.
> 
> Signed-off-by: Huang Shijie <shijie8@gmail.com>

I cannot compile-test it because the MXS configuration file I always
used for compile-testing gpmi-nand patches (attached) does not work
anymore - I get the following compilation errors:

/home/dedekind/git/l2-mtd/arch/arm/include/asm/processor.h:82: warning: "__LINUX_ARM_ARCH__" is not defined
/home/dedekind/git/l2-mtd/arch/arm/include/asm/processor.h:97: warning: "__LINUX_ARM_ARCH__" is not defined
In file included from include/linux/time.h:6,
                 from include/uapi/linux/timex.h:56,
                 from include/linux/timex.h:56,
                 from include/linux/sched.h:17,
                 from arch/arm/kernel/asm-offsets.c:13:
include/linux/math64.h: In function 'div_u64_rem':
include/linux/math64.h:55: error: '__LINUX_ARM_ARCH__' undeclared (first use in this function)
include/linux/math64.h:55: error: (Each undeclared identifier is reported only once
include/linux/math64.h:55: error: for each function it appears in.)
In file included from include/linux/mm_types.h:15,
                 from include/linux/sched.h:24,
                 from arch/arm/kernel/asm-offsets.c:13:
/home/dedekind/git/l2-mtd/arch/arm/include/asm/page.h: At top level:
/home/dedekind/git/l2-mtd/arch/arm/include/asm/page.h:107: error: #error Unknown user operations model
In file included from include/linux/mm.h:44,
                 from arch/arm/kernel/asm-offsets.c:14:
/home/dedekind/git/l2-mtd/arch/arm/include/asm/pgtable.h:210: warning: "__LINUX_ARM_ARCH__" is not defined
In file included from include/linux/scatterlist.h:10,
                 from include/linux/dma-mapping.h:9,
                 from arch/arm/kernel/asm-offsets.c:15:
/home/dedekind/git/l2-mtd/arch/arm/include/asm/io.h:50: warning: "__LINUX_ARM_ARCH__" is not defined
In file included from include/linux/dma-mapping.h:76,
                 from arch/arm/kernel/asm-offsets.c:15:
/home/dedekind/git/l2-mtd/arch/arm/include/asm/dma-mapping.h: In function 'dma_mapping_error':
/home/dedekind/git/l2-mtd/arch/arm/include/asm/dma-mapping.h:94: error: implicit declaration of function 'debug_dma_mapping_error'
In file included from /home/dedekind/git/l2-mtd/arch/arm/include/asm/cacheflush.h:15,
                 from arch/arm/kernel/asm-offsets.c:16:
/home/dedekind/git/l2-mtd/arch/arm/include/asm/glue-cache.h: At top level:
/home/dedekind/git/l2-mtd/arch/arm/include/asm/glue-cache.h:129: error: #error Unknown cache maintenance model
In file included from /home/dedekind/git/l2-mtd/arch/arm/include/asm/cacheflush.h:17,
                 from arch/arm/kernel/asm-offsets.c:16:
/home/dedekind/git/l2-mtd/arch/arm/include/asm/cachetype.h:28: warning: "__LINUX_ARM_ARCH__" is not defined
/home/dedekind/git/l2-mtd/arch/arm/include/asm/cachetype.h:33: warning: "__LINUX_ARM_ARCH__" is not defined
In file included from arch/arm/kernel/asm-offsets.c:16:
/home/dedekind/git/l2-mtd/arch/arm/include/asm/cacheflush.h:204: warning: "__LINUX_ARM_ARCH__" is not defined
/home/dedekind/git/l2-mtd/arch/arm/include/asm/cacheflush.h:206: warning: "__LINUX_ARM_ARCH__" is not defined
In file included from arch/arm/kernel/asm-offsets.c:17:
/home/dedekind/git/l2-mtd/arch/arm/include/asm/glue-df.h:99: error: #error Unknown data abort handler type
In file included from arch/arm/kernel/asm-offsets.c:18:
/home/dedekind/git/l2-mtd/arch/arm/include/asm/glue-pf.h:54: error: #error Unknown prefetch abort handler type
make[1]: *** [arch/arm/kernel/asm-offsets.s] Error 1
make: *** [prepare0] Error 2
Artem Bityutskiy - Nov. 9, 2012, 3:10 p.m.
On Sat, 2012-10-27 at 10:23 +0800, Huang Shijie wrote:
> 于 2012年10月26日 21:41, Artem Bityutskiy 写道: 
> > On Sat, 2012-10-13 at 13:03 -0400, Huang Shijie wrote:
> > > The whole gpmi-nand driver has turned to pure devicetree supported.
> > > So the linux/mtd/gpmi-nand.h is not neccessary now. Just remove it,
> > > and move some macros to the gpmi-nand driver itself.
> > > 
> > > Signed-off-by: Huang Shijie <shijie8@gmail.com>
> > I cannot compile-test it because the MXS configuration file I always
> I tested this patch in mxs and mx6q with the linux-next-20121026.
> I do not meet such compiler errors.
> 
> I think the l2-mtd tree is lack of some patches in other people's
> tree.
> In the current l2-mtd tree, even i DISABLE the gpmi driver, the kernel
> still
> meets the compiler errors.

It is based on v3.7-rc4. Once the patches you refer are in Linus's tree,
let me know. Thanks!
Huang Shijie - Nov. 10, 2012, 1:39 a.m.
On Fri, Nov 9, 2012 at 10:10 AM, Artem Bityutskiy <dedekind1@gmail.com> wrote:
> On Sat, 2012-10-27 at 10:23 +0800, Huang Shijie wrote:
>> 于 2012年10月26日 21:41, Artem Bityutskiy 写道:
>> > On Sat, 2012-10-13 at 13:03 -0400, Huang Shijie wrote:
>> > > The whole gpmi-nand driver has turned to pure devicetree supported.
>> > > So the linux/mtd/gpmi-nand.h is not neccessary now. Just remove it,
>> > > and move some macros to the gpmi-nand driver itself.
>> > >
>> > > Signed-off-by: Huang Shijie <shijie8@gmail.com>
>> > I cannot compile-test it because the MXS configuration file I always
>> I tested this patch in mxs and mx6q with the linux-next-20121026.
>> I do not meet such compiler errors.
>>
>> I think the l2-mtd tree is lack of some patches in other people's
>> tree.
>> In the current l2-mtd tree, even i DISABLE the gpmi driver, the kernel
>> still
>> meets the compiler errors.
>
> It is based on v3.7-rc4. Once the patches you refer are in Linus's tree,
> let me know. Thanks!
>
I re-created the .config based on the latest l2-mtd tree. I compiled
the kernel with this patch again, and
there is no compiler error anymore.

Could you re-create your mxs config with "make ARCH=ARM
mxs_defconfig", and test this patch again?

thanks
Huang Shijie

> --
> Best Regards,
> Artem Bityutskiy
Artem Bityutskiy - Nov. 12, 2012, 2:54 p.m.
On Fri, 2012-11-09 at 20:39 -0500, Huang Shijie wrote:
> Could you re-create your mxs config with "make ARCH=ARM
> mxs_defconfig", and test this patch again?

Done, works now, pushed your patch to l2-mtd.git, thanks!

Patch

diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-lib.c b/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
index 3502acc..1585c5b 100644
--- a/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
+++ b/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
@@ -18,7 +18,6 @@ 
  * with this program; if not, write to the Free Software Foundation, Inc.,
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
-#include <linux/mtd/gpmi-nand.h>
 #include <linux/delay.h>
 #include <linux/clk.h>
 
diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
index e2c56fc..d376198 100644
--- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
+++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
@@ -25,7 +25,6 @@ 
 #include <linux/slab.h>
 #include <linux/interrupt.h>
 #include <linux/module.h>
-#include <linux/mtd/gpmi-nand.h>
 #include <linux/mtd/partitions.h>
 #include <linux/pinctrl/consumer.h>
 #include <linux/of.h>
@@ -33,6 +32,12 @@ 
 #include <linux/of_mtd.h>
 #include "gpmi-nand.h"
 
+/* Resource names for the GPMI NAND driver. */
+#define GPMI_NAND_GPMI_REGS_ADDR_RES_NAME  "gpmi-nand"
+#define GPMI_NAND_BCH_REGS_ADDR_RES_NAME   "bch"
+#define GPMI_NAND_BCH_INTERRUPT_RES_NAME   "bch"
+#define GPMI_NAND_DMA_INTERRUPT_RES_NAME   "gpmi-dma"
+
 /* add our owner bbt descriptor */
 static uint8_t scan_ff_pattern[] = { 0xff };
 static struct nand_bbt_descr gpmi_bbt_descr = {
diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.h b/drivers/mtd/nand/gpmi-nand/gpmi-nand.h
index 7ac25c1..3d93a5e 100644
--- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.h
+++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.h
@@ -130,7 +130,6 @@  struct gpmi_nand_data {
 	/* System Interface */
 	struct device		*dev;
 	struct platform_device	*pdev;
-	struct gpmi_nand_platform_data	*pdata;
 
 	/* Resources */
 	struct resources	resources;
diff --git a/include/linux/mtd/gpmi-nand.h b/include/linux/mtd/gpmi-nand.h
deleted file mode 100644
index ed3c4e0..0000000
--- a/include/linux/mtd/gpmi-nand.h
+++ /dev/null
@@ -1,68 +0,0 @@ 
-/*
- * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#ifndef __MACH_MXS_GPMI_NAND_H__
-#define __MACH_MXS_GPMI_NAND_H__
-
-/* The size of the resources is fixed. */
-#define GPMI_NAND_RES_SIZE	6
-
-/* Resource names for the GPMI NAND driver. */
-#define GPMI_NAND_GPMI_REGS_ADDR_RES_NAME  "gpmi-nand"
-#define GPMI_NAND_GPMI_INTERRUPT_RES_NAME  "GPMI NAND GPMI Interrupt"
-#define GPMI_NAND_BCH_REGS_ADDR_RES_NAME   "bch"
-#define GPMI_NAND_BCH_INTERRUPT_RES_NAME   "bch"
-#define GPMI_NAND_DMA_CHANNELS_RES_NAME    "GPMI NAND DMA Channels"
-#define GPMI_NAND_DMA_INTERRUPT_RES_NAME   "gpmi-dma"
-
-/**
- * struct gpmi_nand_platform_data - GPMI NAND driver platform data.
- *
- * This structure communicates platform-specific information to the GPMI NAND
- * driver that can't be expressed as resources.
- *
- * @platform_init:           A pointer to a function the driver will call to
- *                           initialize the platform (e.g., set up the pin mux).
- * @min_prop_delay_in_ns:    Minimum propagation delay of GPMI signals to and
- *                           from the NAND Flash device, in nanoseconds.
- * @max_prop_delay_in_ns:    Maximum propagation delay of GPMI signals to and
- *                           from the NAND Flash device, in nanoseconds.
- * @max_chip_count:          The maximum number of chips for which the driver
- *                           should configure the hardware. This value most
- *                           likely reflects the number of pins that are
- *                           connected to a NAND Flash device. If this is
- *                           greater than the SoC hardware can support, the
- *                           driver will print a message and fail to initialize.
- * @partitions:              An optional pointer to an array of partition
- *                           descriptions.
- * @partition_count:         The number of elements in the partitions array.
- */
-struct gpmi_nand_platform_data {
-	/* SoC hardware information. */
-	int		(*platform_init)(void);
-
-	/* NAND Flash information. */
-	unsigned int	min_prop_delay_in_ns;
-	unsigned int	max_prop_delay_in_ns;
-	unsigned int	max_chip_count;
-
-	/* Medium information. */
-	struct		mtd_partition *partitions;
-	unsigned	partition_count;
-};
-#endif