public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Nicolas Ferre <nicolas.ferre@atmel.com>
To: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-mtd@lists.infradead.org,
	Andrew Victor <linux@maxim.org.za>,
	Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>,
	Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>,
	David Woodhouse <dwmw2@infradead.org>
Subject: Re: [PATCH] ATMEL, AVR32: inline nand partition table access
Date: Wed, 01 Jun 2011 15:31:59 +0200	[thread overview]
Message-ID: <4DE63F4F.60108@atmel.com> (raw)
In-Reply-To: <1306676962-22308-1-git-send-email-dbaryshkov@gmail.com>

Le 29/05/2011 15:49, Dmitry Eremin-Solenikov :
> Currently atmel_nand driver used by AT91 and AVR32 calls a special callback
> which return nand partition table and number of partitions. However in all
> boards this callback returns just static data. So drop this callback and
> make atmel_nand use partition table provided statically via platform_data.
> 
> Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>

Good. So, for the AT91 part of it:

Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>

Best regards,

> ---
>  arch/arm/mach-at91/board-afeb-9260v1.c      |    9 ++-------
>  arch/arm/mach-at91/board-cam60.c            |    9 ++-------
>  arch/arm/mach-at91/board-cap9adk.c          |    9 ++-------
>  arch/arm/mach-at91/board-kb9202.c           |    9 ++-------
>  arch/arm/mach-at91/board-neocore926.c       |    9 ++-------
>  arch/arm/mach-at91/board-qil-a9260.c        |    9 ++-------
>  arch/arm/mach-at91/board-rm9200dk.c         |    9 ++-------
>  arch/arm/mach-at91/board-sam9-l9260.c       |    9 ++-------
>  arch/arm/mach-at91/board-sam9260ek.c        |    9 ++-------
>  arch/arm/mach-at91/board-sam9261ek.c        |    9 ++-------
>  arch/arm/mach-at91/board-sam9263ek.c        |    9 ++-------
>  arch/arm/mach-at91/board-sam9g20ek.c        |    9 ++-------
>  arch/arm/mach-at91/board-sam9m10g45ek.c     |    9 ++-------
>  arch/arm/mach-at91/board-sam9rlek.c         |    9 ++-------
>  arch/arm/mach-at91/board-snapper9260.c      |   10 ++--------
>  arch/arm/mach-at91/board-usb-a9260.c        |    9 ++-------
>  arch/arm/mach-at91/board-usb-a9263.c        |    9 ++-------
>  arch/arm/mach-at91/board-yl-9200.c          |    9 ++-------
>  arch/arm/mach-at91/include/mach/board.h     |    3 ++-
>  arch/avr32/boards/atngw100/setup.c          |    8 ++------
>  arch/avr32/boards/atstk1000/atstk1002.c     |    9 ++-------
>  arch/avr32/mach-at32ap/include/mach/board.h |    3 ++-
>  drivers/mtd/nand/atmel_nand.c               |    7 ++++---
>  23 files changed, 48 insertions(+), 145 deletions(-)
> 
> diff --git a/arch/arm/mach-at91/board-afeb-9260v1.c b/arch/arm/mach-at91/board-afeb-9260v1.c
> index a4924de..78c77fc 100644
> --- a/arch/arm/mach-at91/board-afeb-9260v1.c
> +++ b/arch/arm/mach-at91/board-afeb-9260v1.c
> @@ -136,19 +136,14 @@ static struct mtd_partition __initdata afeb9260_nand_partition[] = {
>  	},
>  };
>  
> -static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
> -{
> -	*num_partitions = ARRAY_SIZE(afeb9260_nand_partition);
> -	return afeb9260_nand_partition;
> -}
> -
>  static struct atmel_nand_data __initdata afeb9260_nand_data = {
>  	.ale		= 21,
>  	.cle		= 22,
>  	.rdy_pin	= AT91_PIN_PC13,
>  	.enable_pin	= AT91_PIN_PC14,
> -	.partition_info	= nand_partitions,
>  	.bus_width_16	= 0,
> +	.parts		= afeb9260_nand_partition,
> +	.num_parts	= ARRAY_SIZE(afeb9260_nand_partition),
>  };
>  
>  
> diff --git a/arch/arm/mach-at91/board-cam60.c b/arch/arm/mach-at91/board-cam60.c
> index 148fccb..eefae5b 100644
> --- a/arch/arm/mach-at91/board-cam60.c
> +++ b/arch/arm/mach-at91/board-cam60.c
> @@ -138,19 +138,14 @@ static struct mtd_partition __initdata cam60_nand_partition[] = {
>  	},
>  };
>  
> -static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
> -{
> -	*num_partitions = ARRAY_SIZE(cam60_nand_partition);
> -	return cam60_nand_partition;
> -}
> -
>  static struct atmel_nand_data __initdata cam60_nand_data = {
>  	.ale		= 21,
>  	.cle		= 22,
>  	// .det_pin	= ... not there
>  	.rdy_pin	= AT91_PIN_PA9,
>  	.enable_pin	= AT91_PIN_PA7,
> -	.partition_info	= nand_partitions,
> +	.parts		= cam60_nand_partition,
> +	.num_parts	= ARRAY_SIZE(cam60_nand_partition),
>  };
>  
>  static struct sam9_smc_config __initdata cam60_nand_smc_config = {
> diff --git a/arch/arm/mach-at91/board-cap9adk.c b/arch/arm/mach-at91/board-cap9adk.c
> index 1904fdf..8aaa6e6 100644
> --- a/arch/arm/mach-at91/board-cap9adk.c
> +++ b/arch/arm/mach-at91/board-cap9adk.c
> @@ -175,19 +175,14 @@ static struct mtd_partition __initdata cap9adk_nand_partitions[] = {
>  	},
>  };
>  
> -static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
> -{
> -	*num_partitions = ARRAY_SIZE(cap9adk_nand_partitions);
> -	return cap9adk_nand_partitions;
> -}
> -
>  static struct atmel_nand_data __initdata cap9adk_nand_data = {
>  	.ale		= 21,
>  	.cle		= 22,
>  //	.det_pin	= ... not connected
>  //	.rdy_pin	= ... not connected
>  	.enable_pin	= AT91_PIN_PD15,
> -	.partition_info	= nand_partitions,
> +	.parts		= cap9adk_nand_partitions,
> +	.num_parts	= ARRAY_SIZE(cap9adk_nand_partitions),
>  };
>  
>  static struct sam9_smc_config __initdata cap9adk_nand_smc_config = {
> diff --git a/arch/arm/mach-at91/board-kb9202.c b/arch/arm/mach-at91/board-kb9202.c
> index a813a74..0cac9d3 100644
> --- a/arch/arm/mach-at91/board-kb9202.c
> +++ b/arch/arm/mach-at91/board-kb9202.c
> @@ -102,19 +102,14 @@ static struct mtd_partition __initdata kb9202_nand_partition[] = {
>  	},
>  };
>  
> -static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
> -{
> -	*num_partitions = ARRAY_SIZE(kb9202_nand_partition);
> -	return kb9202_nand_partition;
> -}
> -
>  static struct atmel_nand_data __initdata kb9202_nand_data = {
>  	.ale		= 22,
>  	.cle		= 21,
>  	// .det_pin	= ... not there
>  	.rdy_pin	= AT91_PIN_PC29,
>  	.enable_pin	= AT91_PIN_PC28,
> -	.partition_info	= nand_partitions,
> +	.parts		= kb9202_nand_partition,
> +	.num_parts	= ARRAY_SIZE(kb9202_nand_partition),
>  };
>  
>  static void __init kb9202_board_init(void)
> diff --git a/arch/arm/mach-at91/board-neocore926.c b/arch/arm/mach-at91/board-neocore926.c
> index 961e805..a63a4c9 100644
> --- a/arch/arm/mach-at91/board-neocore926.c
> +++ b/arch/arm/mach-at91/board-neocore926.c
> @@ -188,19 +188,14 @@ static struct mtd_partition __initdata neocore926_nand_partition[] = {
>  	},
>  };
>  
> -static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
> -{
> -	*num_partitions = ARRAY_SIZE(neocore926_nand_partition);
> -	return neocore926_nand_partition;
> -}
> -
>  static struct atmel_nand_data __initdata neocore926_nand_data = {
>  	.ale			= 21,
>  	.cle			= 22,
>  	.rdy_pin		= AT91_PIN_PB19,
>  	.rdy_pin_active_low	= 1,
>  	.enable_pin		= AT91_PIN_PD15,
> -	.partition_info		= nand_partitions,
> +	.parts			= neocore926_nand_partition,
> +	.num_parts		= ARRAY_SIZE(neocore926_nand_partition),
>  };
>  
>  static struct sam9_smc_config __initdata neocore926_nand_smc_config = {
> diff --git a/arch/arm/mach-at91/board-qil-a9260.c b/arch/arm/mach-at91/board-qil-a9260.c
> index d1a6001..86c163f 100644
> --- a/arch/arm/mach-at91/board-qil-a9260.c
> +++ b/arch/arm/mach-at91/board-qil-a9260.c
> @@ -136,19 +136,14 @@ static struct mtd_partition __initdata ek_nand_partition[] = {
>  	},
>  };
>  
> -static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
> -{
> -	*num_partitions = ARRAY_SIZE(ek_nand_partition);
> -	return ek_nand_partition;
> -}
> -
>  static struct atmel_nand_data __initdata ek_nand_data = {
>  	.ale		= 21,
>  	.cle		= 22,
>  //	.det_pin	= ... not connected
>  	.rdy_pin	= AT91_PIN_PC13,
>  	.enable_pin	= AT91_PIN_PC14,
> -	.partition_info	= nand_partitions,
> +	.parts		= ek_nand_partition,
> +	.num_parts	= ARRAY_SIZE(ek_nand_partition),
>  };
>  
>  static struct sam9_smc_config __initdata ek_nand_smc_config = {
> diff --git a/arch/arm/mach-at91/board-rm9200dk.c b/arch/arm/mach-at91/board-rm9200dk.c
> index aef9627..7c9af30 100644
> --- a/arch/arm/mach-at91/board-rm9200dk.c
> +++ b/arch/arm/mach-at91/board-rm9200dk.c
> @@ -143,19 +143,14 @@ static struct mtd_partition __initdata dk_nand_partition[] = {
>  	},
>  };
>  
> -static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
> -{
> -	*num_partitions = ARRAY_SIZE(dk_nand_partition);
> -	return dk_nand_partition;
> -}
> -
>  static struct atmel_nand_data __initdata dk_nand_data = {
>  	.ale		= 22,
>  	.cle		= 21,
>  	.det_pin	= AT91_PIN_PB1,
>  	.rdy_pin	= AT91_PIN_PC2,
>  	// .enable_pin	= ... not there
> -	.partition_info	= nand_partitions,
> +	.parts		= dk_nand_partition,
> +	.num_parts	= ARRAY_SIZE(dk_nand_partition),
>  };
>  
>  #define DK_FLASH_BASE	AT91_CHIPSELECT_0
> diff --git a/arch/arm/mach-at91/board-sam9-l9260.c b/arch/arm/mach-at91/board-sam9-l9260.c
> index aaf1bf0..3646c2b 100644
> --- a/arch/arm/mach-at91/board-sam9-l9260.c
> +++ b/arch/arm/mach-at91/board-sam9-l9260.c
> @@ -137,19 +137,14 @@ static struct mtd_partition __initdata ek_nand_partition[] = {
>  	},
>  };
>  
> -static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
> -{
> -	*num_partitions = ARRAY_SIZE(ek_nand_partition);
> -	return ek_nand_partition;
> -}
> -
>  static struct atmel_nand_data __initdata ek_nand_data = {
>  	.ale		= 21,
>  	.cle		= 22,
>  //	.det_pin	= ... not connected
>  	.rdy_pin	= AT91_PIN_PC13,
>  	.enable_pin	= AT91_PIN_PC14,
> -	.partition_info	= nand_partitions,
> +	.parts		= ek_nand_partition,
> +	.num_parts	= ARRAY_SIZE(ek_nand_partition),
>  };
>  
>  static struct sam9_smc_config __initdata ek_nand_smc_config = {
> diff --git a/arch/arm/mach-at91/board-sam9260ek.c b/arch/arm/mach-at91/board-sam9260ek.c
> index d600dc1..d6d9b21 100644
> --- a/arch/arm/mach-at91/board-sam9260ek.c
> +++ b/arch/arm/mach-at91/board-sam9260ek.c
> @@ -179,19 +179,14 @@ static struct mtd_partition __initdata ek_nand_partition[] = {
>  	},
>  };
>  
> -static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
> -{
> -	*num_partitions = ARRAY_SIZE(ek_nand_partition);
> -	return ek_nand_partition;
> -}
> -
>  static struct atmel_nand_data __initdata ek_nand_data = {
>  	.ale		= 21,
>  	.cle		= 22,
>  //	.det_pin	= ... not connected
>  	.rdy_pin	= AT91_PIN_PC13,
>  	.enable_pin	= AT91_PIN_PC14,
> -	.partition_info	= nand_partitions,
> +	.parts		= ek_nand_partition,
> +	.num_parts	= ARRAY_SIZE(ek_nand_partition),
>  };
>  
>  static struct sam9_smc_config __initdata ek_nand_smc_config = {
> diff --git a/arch/arm/mach-at91/board-sam9261ek.c b/arch/arm/mach-at91/board-sam9261ek.c
> index f897f84..b4a3e18 100644
> --- a/arch/arm/mach-at91/board-sam9261ek.c
> +++ b/arch/arm/mach-at91/board-sam9261ek.c
> @@ -185,19 +185,14 @@ static struct mtd_partition __initdata ek_nand_partition[] = {
>  	},
>  };
>  
> -static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
> -{
> -	*num_partitions = ARRAY_SIZE(ek_nand_partition);
> -	return ek_nand_partition;
> -}
> -
>  static struct atmel_nand_data __initdata ek_nand_data = {
>  	.ale		= 22,
>  	.cle		= 21,
>  //	.det_pin	= ... not connected
>  	.rdy_pin	= AT91_PIN_PC15,
>  	.enable_pin	= AT91_PIN_PC14,
> -	.partition_info	= nand_partitions,
> +	.parts		= ek_nand_partition,
> +	.num_parts	= ARRAY_SIZE(ek_nand_partition),
>  };
>  
>  static struct sam9_smc_config __initdata ek_nand_smc_config = {
> diff --git a/arch/arm/mach-at91/board-sam9263ek.c b/arch/arm/mach-at91/board-sam9263ek.c
> index 605b26f..4e6d586 100644
> --- a/arch/arm/mach-at91/board-sam9263ek.c
> +++ b/arch/arm/mach-at91/board-sam9263ek.c
> @@ -186,19 +186,14 @@ static struct mtd_partition __initdata ek_nand_partition[] = {
>  	},
>  };
>  
> -static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
> -{
> -	*num_partitions = ARRAY_SIZE(ek_nand_partition);
> -	return ek_nand_partition;
> -}
> -
>  static struct atmel_nand_data __initdata ek_nand_data = {
>  	.ale		= 21,
>  	.cle		= 22,
>  //	.det_pin	= ... not connected
>  	.rdy_pin	= AT91_PIN_PA22,
>  	.enable_pin	= AT91_PIN_PD15,
> -	.partition_info	= nand_partitions,
> +	.parts		= ek_nand_partition,
> +	.num_parts	= ARRAY_SIZE(ek_nand_partition),
>  };
>  
>  static struct sam9_smc_config __initdata ek_nand_smc_config = {
> diff --git a/arch/arm/mach-at91/board-sam9g20ek.c b/arch/arm/mach-at91/board-sam9g20ek.c
> index 7624cf0..b0488b1 100644
> --- a/arch/arm/mach-at91/board-sam9g20ek.c
> +++ b/arch/arm/mach-at91/board-sam9g20ek.c
> @@ -163,19 +163,14 @@ static struct mtd_partition __initdata ek_nand_partition[] = {
>  	},
>  };
>  
> -static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
> -{
> -	*num_partitions = ARRAY_SIZE(ek_nand_partition);
> -	return ek_nand_partition;
> -}
> -
>  /* det_pin is not connected */
>  static struct atmel_nand_data __initdata ek_nand_data = {
>  	.ale		= 21,
>  	.cle		= 22,
>  	.rdy_pin	= AT91_PIN_PC13,
>  	.enable_pin	= AT91_PIN_PC14,
> -	.partition_info	= nand_partitions,
> +	.parts		= ek_nand_partition,
> +	.num_parts	= ARRAY_SIZE(ek_nand_partition),
>  };
>  
>  static struct sam9_smc_config __initdata ek_nand_smc_config = {
> diff --git a/arch/arm/mach-at91/board-sam9m10g45ek.c b/arch/arm/mach-at91/board-sam9m10g45ek.c
> index 063c95d..0bb3468 100644
> --- a/arch/arm/mach-at91/board-sam9m10g45ek.c
> +++ b/arch/arm/mach-at91/board-sam9m10g45ek.c
> @@ -143,19 +143,14 @@ static struct mtd_partition __initdata ek_nand_partition[] = {
>  	},
>  };
>  
> -static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
> -{
> -	*num_partitions = ARRAY_SIZE(ek_nand_partition);
> -	return ek_nand_partition;
> -}
> -
>  /* det_pin is not connected */
>  static struct atmel_nand_data __initdata ek_nand_data = {
>  	.ale		= 21,
>  	.cle		= 22,
>  	.rdy_pin	= AT91_PIN_PC8,
>  	.enable_pin	= AT91_PIN_PC14,
> -	.partition_info	= nand_partitions,
> +	.parts		= ek_nand_partition,
> +	.num_parts	= ARRAY_SIZE(ek_nand_partition),
>  };
>  
>  static struct sam9_smc_config __initdata ek_nand_smc_config = {
> diff --git a/arch/arm/mach-at91/board-sam9rlek.c b/arch/arm/mach-at91/board-sam9rlek.c
> index effb399..7aee8ab 100644
> --- a/arch/arm/mach-at91/board-sam9rlek.c
> +++ b/arch/arm/mach-at91/board-sam9rlek.c
> @@ -94,19 +94,14 @@ static struct mtd_partition __initdata ek_nand_partition[] = {
>  	},
>  };
>  
> -static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
> -{
> -	*num_partitions = ARRAY_SIZE(ek_nand_partition);
> -	return ek_nand_partition;
> -}
> -
>  static struct atmel_nand_data __initdata ek_nand_data = {
>  	.ale		= 21,
>  	.cle		= 22,
>  //	.det_pin	= ... not connected
>  	.rdy_pin	= AT91_PIN_PD17,
>  	.enable_pin	= AT91_PIN_PB6,
> -	.partition_info	= nand_partitions,
> +	.parts		= ek_nand_partition,
> +	.num_parts	= ARRAY_SIZE(ek_nand_partition),
>  };
>  
>  static struct sam9_smc_config __initdata ek_nand_smc_config = {
> diff --git a/arch/arm/mach-at91/board-snapper9260.c b/arch/arm/mach-at91/board-snapper9260.c
> index 3eb0a11..a481451 100644
> --- a/arch/arm/mach-at91/board-snapper9260.c
> +++ b/arch/arm/mach-at91/board-snapper9260.c
> @@ -102,18 +102,12 @@ static struct mtd_partition __initdata snapper9260_nand_partitions[] = {
>  	},
>  };
>  
> -static struct mtd_partition * __init
> -snapper9260_nand_partition_info(int size, int *num_partitions)
> -{
> -	*num_partitions = ARRAY_SIZE(snapper9260_nand_partitions);
> -	return snapper9260_nand_partitions;
> -}
> -
>  static struct atmel_nand_data __initdata snapper9260_nand_data = {
>  	.ale		= 21,
>  	.cle		= 22,
>  	.rdy_pin	= AT91_PIN_PC13,
> -	.partition_info	= snapper9260_nand_partition_info,
> +	.parts		= snapper9260_nand_partitions,
> +	.num_parts	= ARRAY_SIZE(snapper9260_nand_partitions),
>  	.bus_width_16	= 0,
>  };
>  
> diff --git a/arch/arm/mach-at91/board-usb-a9260.c b/arch/arm/mach-at91/board-usb-a9260.c
> index 0e784e6..43f40ef 100644
> --- a/arch/arm/mach-at91/board-usb-a9260.c
> +++ b/arch/arm/mach-at91/board-usb-a9260.c
> @@ -110,19 +110,14 @@ static struct mtd_partition __initdata ek_nand_partition[] = {
>  	}
>  };
>  
> -static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
> -{
> -	*num_partitions = ARRAY_SIZE(ek_nand_partition);
> -	return ek_nand_partition;
> -}
> -
>  static struct atmel_nand_data __initdata ek_nand_data = {
>  	.ale		= 21,
>  	.cle		= 22,
>  //	.det_pin	= ... not connected
>  	.rdy_pin	= AT91_PIN_PC13,
>  	.enable_pin	= AT91_PIN_PC14,
> -	.partition_info	= nand_partitions,
> +	.parts		= ek_nand_partition,
> +	.num_parts	= ARRAY_SIZE(ek_nand_partition),
>  };
>  
>  static struct sam9_smc_config __initdata ek_nand_smc_config = {
> diff --git a/arch/arm/mach-at91/board-usb-a9263.c b/arch/arm/mach-at91/board-usb-a9263.c
> index cf626dd..288d764 100644
> --- a/arch/arm/mach-at91/board-usb-a9263.c
> +++ b/arch/arm/mach-at91/board-usb-a9263.c
> @@ -123,19 +123,14 @@ static struct mtd_partition __initdata ek_nand_partition[] = {
>  	}
>  };
>  
> -static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
> -{
> -	*num_partitions = ARRAY_SIZE(ek_nand_partition);
> -	return ek_nand_partition;
> -}
> -
>  static struct atmel_nand_data __initdata ek_nand_data = {
>  	.ale		= 21,
>  	.cle		= 22,
>  //	.det_pin	= ... not connected
>  	.rdy_pin	= AT91_PIN_PA22,
>  	.enable_pin	= AT91_PIN_PD15,
> -	.partition_info	= nand_partitions,
> +	.parts		= ek_nand_partition,
> +	.num_parts	= ARRAY_SIZE(ek_nand_partition),
>  };
>  
>  static struct sam9_smc_config __initdata ek_nand_smc_config = {
> diff --git a/arch/arm/mach-at91/board-yl-9200.c b/arch/arm/mach-at91/board-yl-9200.c
> index c208cc3..9ebc1ed 100644
> --- a/arch/arm/mach-at91/board-yl-9200.c
> +++ b/arch/arm/mach-at91/board-yl-9200.c
> @@ -178,19 +178,14 @@ static struct mtd_partition __initdata yl9200_nand_partition[] = {
>  	}
>  };
>  
> -static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
> -{
> -	*num_partitions = ARRAY_SIZE(yl9200_nand_partition);
> -	return yl9200_nand_partition;
> -}
> -
>  static struct atmel_nand_data __initdata yl9200_nand_data = {
>  	.ale		= 6,
>  	.cle		= 7,
>  	// .det_pin	= ... not connected
>  	.rdy_pin	= AT91_PIN_PC14,	/* R/!B (Sheet10) */
>  	.enable_pin	= AT91_PIN_PC15,	/* !CE  (Sheet10) */
> -	.partition_info	= nand_partitions,
> +	.parts		= yl9200_nand_partition,
> +	.num_parts	= ARRAY_SIZE(yl9200_nand_partition),
>  };
>  
>  /*
> diff --git a/arch/arm/mach-at91/include/mach/board.h b/arch/arm/mach-at91/include/mach/board.h
> index ed544a0..6643531 100644
> --- a/arch/arm/mach-at91/include/mach/board.h
> +++ b/arch/arm/mach-at91/include/mach/board.h
> @@ -112,7 +112,8 @@ struct atmel_nand_data {
>  	u8		ale;		/* address line number connected to ALE */
>  	u8		cle;		/* address line number connected to CLE */
>  	u8		bus_width_16;	/* buswidth is 16 bit */
> -	struct mtd_partition* (*partition_info)(int, int*);
> +	struct mtd_partition *parts;
> +	unsigned int	num_parts;
>  };
>  extern void __init at91_add_device_nand(struct atmel_nand_data *data);
>  
> diff --git a/arch/avr32/boards/atngw100/setup.c b/arch/avr32/boards/atngw100/setup.c
> index fafed4c..1f17bde 100644
> --- a/arch/avr32/boards/atngw100/setup.c
> +++ b/arch/avr32/boards/atngw100/setup.c
> @@ -90,11 +90,6 @@ static struct mtd_partition nand_partitions[] = {
>  	},
>  };
>  
> -static struct mtd_partition *nand_part_info(int size, int *num_partitions)
> -{
> -	*num_partitions = ARRAY_SIZE(nand_partitions);
> -	return nand_partitions;
> -}
>  
>  static struct atmel_nand_data atngw100mkii_nand_data __initdata = {
>  	.cle		= 21,
> @@ -102,7 +97,8 @@ static struct atmel_nand_data atngw100mkii_nand_data __initdata = {
>  	.rdy_pin	= GPIO_PIN_PB(28),
>  	.enable_pin	= GPIO_PIN_PE(23),
>  	.bus_width_16	= true,
> -	.partition_info	= nand_part_info,
> +	.parts		= nand_partitions,
> +	.num_parts	= ARRAY_SIZE(nand_partitions),
>  };
>  #endif
>  
> diff --git a/arch/avr32/boards/atstk1000/atstk1002.c b/arch/avr32/boards/atstk1000/atstk1002.c
> index 6ce30fb..4643ff5 100644
> --- a/arch/avr32/boards/atstk1000/atstk1002.c
> +++ b/arch/avr32/boards/atstk1000/atstk1002.c
> @@ -90,18 +90,13 @@ static struct mtd_partition nand_partitions[] = {
>  	},
>  };
>  
> -static struct mtd_partition *nand_part_info(int size, int *num_partitions)
> -{
> -	*num_partitions = ARRAY_SIZE(nand_partitions);
> -	return nand_partitions;
> -}
> -
>  static struct atmel_nand_data atstk1006_nand_data __initdata = {
>  	.cle		= 21,
>  	.ale		= 22,
>  	.rdy_pin	= GPIO_PIN_PB(30),
>  	.enable_pin	= GPIO_PIN_PB(29),
> -	.partition_info	= nand_part_info,
> +	.parts		= nand_partitions,
> +	.num_parts	= ARRAY_SIZE(num_partitions),
>  };
>  #endif
>  
> diff --git a/arch/avr32/mach-at32ap/include/mach/board.h b/arch/avr32/mach-at32ap/include/mach/board.h
> index 679458d..5d7ffca 100644
> --- a/arch/avr32/mach-at32ap/include/mach/board.h
> +++ b/arch/avr32/mach-at32ap/include/mach/board.h
> @@ -128,7 +128,8 @@ struct atmel_nand_data {
>  	u8	ale;		/* address line number connected to ALE */
>  	u8	cle;		/* address line number connected to CLE */
>  	u8	bus_width_16;	/* buswidth is 16 bit */
> -	struct mtd_partition *(*partition_info)(int size, int *num_partitions);
> +	struct mtd_partition *parts;
> +	unsigned int	num_parts;
>  };
>  struct platform_device *
>  at32_add_device_nand(unsigned int id, struct atmel_nand_data *data);
> diff --git a/drivers/mtd/nand/atmel_nand.c b/drivers/mtd/nand/atmel_nand.c
> index b300705..10605ed 100644
> --- a/drivers/mtd/nand/atmel_nand.c
> +++ b/drivers/mtd/nand/atmel_nand.c
> @@ -659,9 +659,10 @@ static int __init atmel_nand_probe(struct platform_device *pdev)
>  	num_partitions = parse_mtd_partitions(mtd, part_probes,
>  					      &partitions, 0);
>  #endif
> -	if (num_partitions <= 0 && host->board->partition_info)
> -		partitions = host->board->partition_info(mtd->size,
> -							 &num_partitions);
> +	if (num_partitions <= 0 && host->board->parts) {
> +		partitions = host->board->parts;
> +		num_partitions = host->board->num_parts;
> +	}
>  
>  	if ((!partitions) || (num_partitions == 0)) {
>  		printk(KERN_ERR "atmel_nand: No partitions defined, or unsupported device.\n");


-- 
Nicolas Ferre


  reply	other threads:[~2011-06-01 13:32 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-29 13:49 [PATCH] ATMEL, AVR32: inline nand partition table access Dmitry Eremin-Solenikov
2011-06-01 13:31 ` Nicolas Ferre [this message]
2011-06-01 13:32 ` Hans-Christian Egtvedt
2011-06-01 14:54   ` Dmitry Eremin-Solenikov
2011-06-01 15:01     ` Artem Bityutskiy
2011-06-06  5:49     ` Hans-Christian Egtvedt
2011-06-06  8:05     ` Nicolas Ferre
2011-06-16 13:48       ` Jean-Christophe PLAGNIOL-VILLARD

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=4DE63F4F.60108@atmel.com \
    --to=nicolas.ferre@atmel.com \
    --cc=dbaryshkov@gmail.com \
    --cc=dwmw2@infradead.org \
    --cc=hans-christian.egtvedt@atmel.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux@maxim.org.za \
    --cc=plagnioj@jcrosoft.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox