Commit 1754aab9 authored by Dmitry Eremin-Solenikov's avatar Dmitry Eremin-Solenikov Committed by Artem Bityutskiy

mtd: ATMEL, AVR32: inline nand partition table access

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.

Nicolas Ferre: I am in favor for a mainline inclusion through linux-mtd tree.
Hans-Christian Egtvedt: I'm fine by sending the changes for AVR32 through linux-mtd
Signed-off-by: default avatarDmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Acked-by: default avatarHans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
Acked-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: default avatarJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
parent 9eeff824
...@@ -130,19 +130,14 @@ static struct mtd_partition __initdata afeb9260_nand_partition[] = { ...@@ -130,19 +130,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 = { static struct atmel_nand_data __initdata afeb9260_nand_data = {
.ale = 21, .ale = 21,
.cle = 22, .cle = 22,
.rdy_pin = AT91_PIN_PC13, .rdy_pin = AT91_PIN_PC13,
.enable_pin = AT91_PIN_PC14, .enable_pin = AT91_PIN_PC14,
.partition_info = nand_partitions,
.bus_width_16 = 0, .bus_width_16 = 0,
.parts = afeb9260_nand_partition,
.num_parts = ARRAY_SIZE(afeb9260_nand_partition),
}; };
......
...@@ -132,19 +132,14 @@ static struct mtd_partition __initdata cam60_nand_partition[] = { ...@@ -132,19 +132,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 = { static struct atmel_nand_data __initdata cam60_nand_data = {
.ale = 21, .ale = 21,
.cle = 22, .cle = 22,
// .det_pin = ... not there // .det_pin = ... not there
.rdy_pin = AT91_PIN_PA9, .rdy_pin = AT91_PIN_PA9,
.enable_pin = AT91_PIN_PA7, .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 = { static struct sam9_smc_config __initdata cam60_nand_smc_config = {
......
...@@ -169,19 +169,14 @@ static struct mtd_partition __initdata cap9adk_nand_partitions[] = { ...@@ -169,19 +169,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 = { static struct atmel_nand_data __initdata cap9adk_nand_data = {
.ale = 21, .ale = 21,
.cle = 22, .cle = 22,
// .det_pin = ... not connected // .det_pin = ... not connected
// .rdy_pin = ... not connected // .rdy_pin = ... not connected
.enable_pin = AT91_PIN_PD15, .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 = { static struct sam9_smc_config __initdata cap9adk_nand_smc_config = {
......
...@@ -97,19 +97,14 @@ static struct mtd_partition __initdata kb9202_nand_partition[] = { ...@@ -97,19 +97,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 = { static struct atmel_nand_data __initdata kb9202_nand_data = {
.ale = 22, .ale = 22,
.cle = 21, .cle = 21,
// .det_pin = ... not there // .det_pin = ... not there
.rdy_pin = AT91_PIN_PC29, .rdy_pin = AT91_PIN_PC29,
.enable_pin = AT91_PIN_PC28, .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) static void __init kb9202_board_init(void)
......
...@@ -182,19 +182,14 @@ static struct mtd_partition __initdata neocore926_nand_partition[] = { ...@@ -182,19 +182,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 = { static struct atmel_nand_data __initdata neocore926_nand_data = {
.ale = 21, .ale = 21,
.cle = 22, .cle = 22,
.rdy_pin = AT91_PIN_PB19, .rdy_pin = AT91_PIN_PB19,
.rdy_pin_active_low = 1, .rdy_pin_active_low = 1,
.enable_pin = AT91_PIN_PD15, .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 = { static struct sam9_smc_config __initdata neocore926_nand_smc_config = {
......
...@@ -130,19 +130,14 @@ static struct mtd_partition __initdata ek_nand_partition[] = { ...@@ -130,19 +130,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 = { static struct atmel_nand_data __initdata ek_nand_data = {
.ale = 21, .ale = 21,
.cle = 22, .cle = 22,
// .det_pin = ... not connected // .det_pin = ... not connected
.rdy_pin = AT91_PIN_PC13, .rdy_pin = AT91_PIN_PC13,
.enable_pin = AT91_PIN_PC14, .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 = { static struct sam9_smc_config __initdata ek_nand_smc_config = {
......
...@@ -138,19 +138,14 @@ static struct mtd_partition __initdata dk_nand_partition[] = { ...@@ -138,19 +138,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 = { static struct atmel_nand_data __initdata dk_nand_data = {
.ale = 22, .ale = 22,
.cle = 21, .cle = 21,
.det_pin = AT91_PIN_PB1, .det_pin = AT91_PIN_PB1,
.rdy_pin = AT91_PIN_PC2, .rdy_pin = AT91_PIN_PC2,
// .enable_pin = ... not there // .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 #define DK_FLASH_BASE AT91_CHIPSELECT_0
......
...@@ -131,19 +131,14 @@ static struct mtd_partition __initdata ek_nand_partition[] = { ...@@ -131,19 +131,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 = { static struct atmel_nand_data __initdata ek_nand_data = {
.ale = 21, .ale = 21,
.cle = 22, .cle = 22,
// .det_pin = ... not connected // .det_pin = ... not connected
.rdy_pin = AT91_PIN_PC13, .rdy_pin = AT91_PIN_PC13,
.enable_pin = AT91_PIN_PC14, .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 = { static struct sam9_smc_config __initdata ek_nand_smc_config = {
......
...@@ -173,19 +173,14 @@ static struct mtd_partition __initdata ek_nand_partition[] = { ...@@ -173,19 +173,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 = { static struct atmel_nand_data __initdata ek_nand_data = {
.ale = 21, .ale = 21,
.cle = 22, .cle = 22,
// .det_pin = ... not connected // .det_pin = ... not connected
.rdy_pin = AT91_PIN_PC13, .rdy_pin = AT91_PIN_PC13,
.enable_pin = AT91_PIN_PC14, .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 = { static struct sam9_smc_config __initdata ek_nand_smc_config = {
......
...@@ -179,19 +179,14 @@ static struct mtd_partition __initdata ek_nand_partition[] = { ...@@ -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 = { static struct atmel_nand_data __initdata ek_nand_data = {
.ale = 22, .ale = 22,
.cle = 21, .cle = 21,
// .det_pin = ... not connected // .det_pin = ... not connected
.rdy_pin = AT91_PIN_PC15, .rdy_pin = AT91_PIN_PC15,
.enable_pin = AT91_PIN_PC14, .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 = { static struct sam9_smc_config __initdata ek_nand_smc_config = {
......
...@@ -180,19 +180,14 @@ static struct mtd_partition __initdata ek_nand_partition[] = { ...@@ -180,19 +180,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 = { static struct atmel_nand_data __initdata ek_nand_data = {
.ale = 21, .ale = 21,
.cle = 22, .cle = 22,
// .det_pin = ... not connected // .det_pin = ... not connected
.rdy_pin = AT91_PIN_PA22, .rdy_pin = AT91_PIN_PA22,
.enable_pin = AT91_PIN_PD15, .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 = { static struct sam9_smc_config __initdata ek_nand_smc_config = {
......
...@@ -157,19 +157,14 @@ static struct mtd_partition __initdata ek_nand_partition[] = { ...@@ -157,19 +157,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 */ /* det_pin is not connected */
static struct atmel_nand_data __initdata ek_nand_data = { static struct atmel_nand_data __initdata ek_nand_data = {
.ale = 21, .ale = 21,
.cle = 22, .cle = 22,
.rdy_pin = AT91_PIN_PC13, .rdy_pin = AT91_PIN_PC13,
.enable_pin = AT91_PIN_PC14, .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 = { static struct sam9_smc_config __initdata ek_nand_smc_config = {
......
...@@ -137,19 +137,14 @@ static struct mtd_partition __initdata ek_nand_partition[] = { ...@@ -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;
}
/* det_pin is not connected */ /* det_pin is not connected */
static struct atmel_nand_data __initdata ek_nand_data = { static struct atmel_nand_data __initdata ek_nand_data = {
.ale = 21, .ale = 21,
.cle = 22, .cle = 22,
.rdy_pin = AT91_PIN_PC8, .rdy_pin = AT91_PIN_PC8,
.enable_pin = AT91_PIN_PC14, .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 = { static struct sam9_smc_config __initdata ek_nand_smc_config = {
......
...@@ -88,19 +88,14 @@ static struct mtd_partition __initdata ek_nand_partition[] = { ...@@ -88,19 +88,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 = { static struct atmel_nand_data __initdata ek_nand_data = {
.ale = 21, .ale = 21,
.cle = 22, .cle = 22,
// .det_pin = ... not connected // .det_pin = ... not connected
.rdy_pin = AT91_PIN_PD17, .rdy_pin = AT91_PIN_PD17,
.enable_pin = AT91_PIN_PB6, .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 = { static struct sam9_smc_config __initdata ek_nand_smc_config = {
......
...@@ -97,18 +97,12 @@ static struct mtd_partition __initdata snapper9260_nand_partitions[] = { ...@@ -97,18 +97,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 = { static struct atmel_nand_data __initdata snapper9260_nand_data = {
.ale = 21, .ale = 21,
.cle = 22, .cle = 22,
.rdy_pin = AT91_PIN_PC13, .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, .bus_width_16 = 0,
}; };
......
...@@ -104,19 +104,14 @@ static struct mtd_partition __initdata ek_nand_partition[] = { ...@@ -104,19 +104,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 = { static struct atmel_nand_data __initdata ek_nand_data = {
.ale = 21, .ale = 21,
.cle = 22, .cle = 22,
// .det_pin = ... not connected // .det_pin = ... not connected
.rdy_pin = AT91_PIN_PC13, .rdy_pin = AT91_PIN_PC13,
.enable_pin = AT91_PIN_PC14, .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 = { static struct sam9_smc_config __initdata ek_nand_smc_config = {
......
...@@ -117,19 +117,14 @@ static struct mtd_partition __initdata ek_nand_partition[] = { ...@@ -117,19 +117,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 = { static struct atmel_nand_data __initdata ek_nand_data = {
.ale = 21, .ale = 21,
.cle = 22, .cle = 22,
// .det_pin = ... not connected // .det_pin = ... not connected
.rdy_pin = AT91_PIN_PA22, .rdy_pin = AT91_PIN_PA22,
.enable_pin = AT91_PIN_PD15, .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 = { static struct sam9_smc_config __initdata ek_nand_smc_config = {
......
...@@ -172,19 +172,14 @@ static struct mtd_partition __initdata yl9200_nand_partition[] = { ...@@ -172,19 +172,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 = { static struct atmel_nand_data __initdata yl9200_nand_data = {
.ale = 6, .ale = 6,
.cle = 7, .cle = 7,
// .det_pin = ... not connected // .det_pin = ... not connected
.rdy_pin = AT91_PIN_PC14, /* R/!B (Sheet10) */ .rdy_pin = AT91_PIN_PC14, /* R/!B (Sheet10) */
.enable_pin = AT91_PIN_PC15, /* !CE (Sheet10) */ .enable_pin = AT91_PIN_PC15, /* !CE (Sheet10) */
.partition_info = nand_partitions, .parts = yl9200_nand_partition,
.num_parts = ARRAY_SIZE(yl9200_nand_partition),
}; };
/* /*
......
...@@ -112,7 +112,8 @@ struct atmel_nand_data { ...@@ -112,7 +112,8 @@ struct atmel_nand_data {
u8 ale; /* address line number connected to ALE */ u8 ale; /* address line number connected to ALE */
u8 cle; /* address line number connected to CLE */ u8 cle; /* address line number connected to CLE */
u8 bus_width_16; /* buswidth is 16 bit */ 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); extern void __init at91_add_device_nand(struct atmel_nand_data *data);
......
...@@ -90,11 +90,6 @@ static struct mtd_partition nand_partitions[] = { ...@@ -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 = { static struct atmel_nand_data atngw100mkii_nand_data __initdata = {
.cle = 21, .cle = 21,
...@@ -102,7 +97,8 @@ static struct atmel_nand_data atngw100mkii_nand_data __initdata = { ...@@ -102,7 +97,8 @@ static struct atmel_nand_data atngw100mkii_nand_data __initdata = {
.rdy_pin = GPIO_PIN_PB(28), .rdy_pin = GPIO_PIN_PB(28),
.enable_pin = GPIO_PIN_PE(23), .enable_pin = GPIO_PIN_PE(23),
.bus_width_16 = true, .bus_width_16 = true,
.partition_info = nand_part_info, .parts = nand_partitions,
.num_parts = ARRAY_SIZE(nand_partitions),
}; };
#endif #endif
......
...@@ -90,18 +90,13 @@ static struct mtd_partition nand_partitions[] = { ...@@ -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 = { static struct atmel_nand_data atstk1006_nand_data __initdata = {
.cle = 21, .cle = 21,
.ale = 22, .ale = 22,
.rdy_pin = GPIO_PIN_PB(30), .rdy_pin = GPIO_PIN_PB(30),
.enable_pin = GPIO_PIN_PB(29), .enable_pin = GPIO_PIN_PB(29),
.partition_info = nand_part_info, .parts = nand_partitions,
.num_parts = ARRAY_SIZE(num_partitions),
}; };
#endif #endif
......
...@@ -128,7 +128,8 @@ struct atmel_nand_data { ...@@ -128,7 +128,8 @@ struct atmel_nand_data {
u8 ale; /* address line number connected to ALE */ u8 ale; /* address line number connected to ALE */
u8 cle; /* address line number connected to CLE */ u8 cle; /* address line number connected to CLE */
u8 bus_width_16; /* buswidth is 16 bit */ 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 * struct platform_device *
at32_add_device_nand(unsigned int id, struct atmel_nand_data *data); at32_add_device_nand(unsigned int id, struct atmel_nand_data *data);
......
...@@ -660,9 +660,10 @@ static int __init atmel_nand_probe(struct platform_device *pdev) ...@@ -660,9 +660,10 @@ static int __init atmel_nand_probe(struct platform_device *pdev)
num_partitions = parse_mtd_partitions(mtd, part_probes, num_partitions = parse_mtd_partitions(mtd, part_probes,
&partitions, 0); &partitions, 0);
#endif #endif
if (num_partitions <= 0 && host->board->partition_info) if (num_partitions <= 0 && host->board->parts) {
partitions = host->board->partition_info(mtd->size, partitions = host->board->parts;
&num_partitions); num_partitions = host->board->num_parts;
}
if ((!partitions) || (num_partitions == 0)) { if ((!partitions) || (num_partitions == 0)) {
printk(KERN_ERR "atmel_nand: No partitions defined, or unsupported device.\n"); printk(KERN_ERR "atmel_nand: No partitions defined, or unsupported device.\n");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment