From: Miquel Raynal <miquel.raynal@bootlin.com>
Cc: "David Woodhouse" <dwmw2@infradead.org>,
"Brian Norris" <computersforpeace@gmail.com>,
"Boris Brezillon" <boris.brezillon@free-electrons.com>,
"Marek Vasut" <marek.vasut@gmail.com>,
"Richard Weinberger" <richard@nod.at>,
"Cyrille Pitchen" <cyrille.pitchen@wedev4u.fr>,
"Robert Jarzmik" <robert.jarzmik@free.fr>,
"Ezequiel Garcia" <ezequiel.garcia@free-electrons.com>,
linux-mtd@lists.infradead.org,
"Grégory Clement" <gregory.clement@bootlin.com>,
"Thomas Petazzoni" <thomas.petazzoni@bootlin.com>,
"Antoine Tenart" <antoine.tenart@bootlin.com>,
"Nadav Haklai" <nadavh@marvell.com>,
"Ofer Heifetz" <oferh@marvell.com>,
"Hanna Hawa" <hannah@marvell.com>,
"Neta Zur Hershkovits" <neta@marvell.com>
Subject: Re: [PATCH v3 7/7] mtd: nand: remove useless fields from pxa3xx NAND platform data
Date: Mon, 12 Feb 2018 11:17:28 +0100 [thread overview]
Message-ID: <20180212111728.690edacd@xps13> (raw)
In-Reply-To: <20180109103637.23798-8-miquel.raynal@free-electrons.com>
Hi Robert,
Would you mind reviewing this patch that simplifies the content of the
pxa3xx pdata?
Thank you,
Miquèl
On Tue, 9 Jan 2018 11:36:37 +0100, Miquel Raynal
<miquel.raynal@free-electrons.com> wrote:
> The "enable arbiter" bit is available only for pxa3xx based platforms
> but it was experimentally shown that even if this bit is reserved,
> some Marvell platforms (64-bit) actually need it to be set. The driver
> always set this bit regardless of this property, which is harmless.
> Then this property is not needed.
>
> The "num_cs" field is always 1 and for a good reason, the old driver
> (pxa3xx_nand.c) could only handle one. The new driver that replaces it
> (marvell_nand.c) can handle more, but better use device tree for such
> description. As there is only one available chip select, there is no
> need for an array of partitions neither an array of partition numbers.
>
> Signed-off-by: Miquel Raynal <miquel.raynal@free-electrons.com>
> ---
> arch/arm/mach-pxa/cm-x300.c | 6 ++--
> arch/arm/mach-pxa/colibri-pxa3xx.c | 6 ++--
> arch/arm/mach-pxa/littleton.c | 6 ++--
> arch/arm/mach-pxa/mxm8x10.c | 6 ++--
> arch/arm/mach-pxa/raumfeld.c | 6 ++--
> arch/arm/mach-pxa/zylonite.c | 6 ++--
> drivers/mtd/nand/marvell_nand.c | 3 +-
> include/linux/platform_data/mtd-nand-pxa3xx.h | 43 ++++++++-------------------
> 8 files changed, 25 insertions(+), 57 deletions(-)
>
> diff --git a/arch/arm/mach-pxa/cm-x300.c b/arch/arm/mach-pxa/cm-x300.c
> index fe1c76bca212..0ac130bbf935 100644
> --- a/arch/arm/mach-pxa/cm-x300.c
> +++ b/arch/arm/mach-pxa/cm-x300.c
> @@ -429,11 +429,9 @@ static struct mtd_partition cm_x300_nand_partitions[] = {
> };
>
> static struct pxa3xx_nand_platform_data cm_x300_nand_info = {
> - .enable_arbiter = 1,
> .keep_config = 1,
> - .num_cs = 1,
> - .parts[0] = cm_x300_nand_partitions,
> - .nr_parts[0] = ARRAY_SIZE(cm_x300_nand_partitions),
> + .parts = cm_x300_nand_partitions,
> + .nr_parts = ARRAY_SIZE(cm_x300_nand_partitions),
> };
>
> static void __init cm_x300_init_nand(void)
> diff --git a/arch/arm/mach-pxa/colibri-pxa3xx.c b/arch/arm/mach-pxa/colibri-pxa3xx.c
> index 3018eafd723e..e31a591e949f 100644
> --- a/arch/arm/mach-pxa/colibri-pxa3xx.c
> +++ b/arch/arm/mach-pxa/colibri-pxa3xx.c
> @@ -138,11 +138,9 @@ static struct mtd_partition colibri_nand_partitions[] = {
> };
>
> static struct pxa3xx_nand_platform_data colibri_nand_info = {
> - .enable_arbiter = 1,
> .keep_config = 1,
> - .num_cs = 1,
> - .parts[0] = colibri_nand_partitions,
> - .nr_parts[0] = ARRAY_SIZE(colibri_nand_partitions),
> + .parts = colibri_nand_partitions,
> + .nr_parts = ARRAY_SIZE(colibri_nand_partitions),
> };
>
> void __init colibri_pxa3xx_init_nand(void)
> diff --git a/arch/arm/mach-pxa/littleton.c b/arch/arm/mach-pxa/littleton.c
> index 380b07a15ef9..48912d60c630 100644
> --- a/arch/arm/mach-pxa/littleton.c
> +++ b/arch/arm/mach-pxa/littleton.c
> @@ -328,10 +328,8 @@ static struct mtd_partition littleton_nand_partitions[] = {
> };
>
> static struct pxa3xx_nand_platform_data littleton_nand_info = {
> - .enable_arbiter = 1,
> - .num_cs = 1,
> - .parts[0] = littleton_nand_partitions,
> - .nr_parts[0] = ARRAY_SIZE(littleton_nand_partitions),
> + .parts = littleton_nand_partitions,
> + .nr_parts = ARRAY_SIZE(littleton_nand_partitions),
> };
>
> static void __init littleton_init_nand(void)
> diff --git a/arch/arm/mach-pxa/mxm8x10.c b/arch/arm/mach-pxa/mxm8x10.c
> index 743d983fc222..d81b20a85ca7 100644
> --- a/arch/arm/mach-pxa/mxm8x10.c
> +++ b/arch/arm/mach-pxa/mxm8x10.c
> @@ -389,11 +389,9 @@ static struct mtd_partition mxm_8x10_nand_partitions[] = {
> };
>
> static struct pxa3xx_nand_platform_data mxm_8x10_nand_info = {
> - .enable_arbiter = 1,
> .keep_config = 1,
> - .num_cs = 1,
> - .parts[0] = mxm_8x10_nand_partitions,
> - .nr_parts[0] = ARRAY_SIZE(mxm_8x10_nand_partitions)
> + .parts = mxm_8x10_nand_partitions,
> + .nr_parts = ARRAY_SIZE(mxm_8x10_nand_partitions)
> };
>
> static void __init mxm_8x10_nand_init(void)
> diff --git a/arch/arm/mach-pxa/raumfeld.c b/arch/arm/mach-pxa/raumfeld.c
> index 9d662fed03ec..af72e79a7ffa 100644
> --- a/arch/arm/mach-pxa/raumfeld.c
> +++ b/arch/arm/mach-pxa/raumfeld.c
> @@ -346,11 +346,9 @@ static struct mtd_partition raumfeld_nand_partitions[] = {
> };
>
> static struct pxa3xx_nand_platform_data raumfeld_nand_info = {
> - .enable_arbiter = 1,
> .keep_config = 1,
> - .num_cs = 1,
> - .parts[0] = raumfeld_nand_partitions,
> - .nr_parts[0] = ARRAY_SIZE(raumfeld_nand_partitions),
> + .parts = raumfeld_nand_partitions,
> + .nr_parts = ARRAY_SIZE(raumfeld_nand_partitions),
> };
>
> /**
> diff --git a/arch/arm/mach-pxa/zylonite.c b/arch/arm/mach-pxa/zylonite.c
> index 3a99fc054e96..d69de312d8d9 100644
> --- a/arch/arm/mach-pxa/zylonite.c
> +++ b/arch/arm/mach-pxa/zylonite.c
> @@ -376,10 +376,8 @@ static struct mtd_partition zylonite_nand_partitions[] = {
> };
>
> static struct pxa3xx_nand_platform_data zylonite_nand_info = {
> - .enable_arbiter = 1,
> - .num_cs = 1,
> - .parts[0] = zylonite_nand_partitions,
> - .nr_parts[0] = ARRAY_SIZE(zylonite_nand_partitions),
> + .parts = zylonite_nand_partitions,
> + .nr_parts = ARRAY_SIZE(zylonite_nand_partitions),
> };
>
> static void __init zylonite_init_nand(void)
> diff --git a/drivers/mtd/nand/marvell_nand.c b/drivers/mtd/nand/marvell_nand.c
> index 9d01120d97c5..ea05ed8091df 100644
> --- a/drivers/mtd/nand/marvell_nand.c
> +++ b/drivers/mtd/nand/marvell_nand.c
> @@ -2519,8 +2519,7 @@ static int marvell_nand_chip_init(struct device *dev, struct marvell_nfc *nfc,
>
> if (pdata)
> /* Legacy bindings support only one chip */
> - ret = mtd_device_register(mtd, pdata->parts[0],
> - pdata->nr_parts[0]);
> + ret = mtd_device_register(mtd, pdata->parts, pdata->nr_parts);
> else
> ret = mtd_device_register(mtd, NULL, 0);
> if (ret) {
> diff --git a/include/linux/platform_data/mtd-nand-pxa3xx.h b/include/linux/platform_data/mtd-nand-pxa3xx.h
> index b42ad83cbc20..4fd0f592a2d2 100644
> --- a/include/linux/platform_data/mtd-nand-pxa3xx.h
> +++ b/include/linux/platform_data/mtd-nand-pxa3xx.h
> @@ -6,41 +6,22 @@
> #include <linux/mtd/partitions.h>
>
> /*
> - * Current pxa3xx_nand controller has two chip select which
> - * both be workable.
> - *
> - * Notice should be taken that:
> - * When you want to use this feature, you should not enable the
> - * keep configuration feature, for two chip select could be
> - * attached with different nand chip. The different page size
> - * and timing requirement make the keep configuration impossible.
> + * Current pxa3xx_nand controller has two chip select which both be workable but
> + * historically all platforms remaining on platform data used only one. Switch
> + * to device tree if you need more.
> */
> -
> -/* The max num of chip select current support */
> -#define NUM_CHIP_SELECT (2)
> struct pxa3xx_nand_platform_data {
> -
> - /* the data flash bus is shared between the Static Memory
> - * Controller and the Data Flash Controller, the arbiter
> - * controls the ownership of the bus
> - */
> - int enable_arbiter;
> -
> - /* allow platform code to keep OBM/bootloader defined NFC config */
> - int keep_config;
> -
> - /* indicate how many chip selects will be used */
> - int num_cs;
> -
> - /* use an flash-based bad block table */
> - bool flash_bbt;
> -
> - /* requested ECC strength and ECC step size */
> + /* Keep OBM/bootloader NFC timing configuration */
> + bool keep_config;
> + /* Use a flash-based bad block table */
> + bool flash_bbt;
> + /* Requested ECC strength and ECC step size */
> int ecc_strength, ecc_step_size;
> -
> - const struct mtd_partition *parts[NUM_CHIP_SELECT];
> - unsigned int nr_parts[NUM_CHIP_SELECT];
> + /* Partitions */
> + const struct mtd_partition *parts;
> + unsigned int nr_parts;
> };
>
> extern void pxa3xx_set_nand_info(struct pxa3xx_nand_platform_data *info);
> +
> #endif /* __ASM_ARCH_PXA3XX_NAND_H */
--
Miquel Raynal, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
http://bootlin.com
next prev parent reply other threads:[~2018-02-12 10:17 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-09 10:36 [PATCH v3 0/7] Marvell NAND controller rework with ->exec_op() Miquel Raynal
2018-01-09 10:36 ` [PATCH v3 1/7] dt-bindings: mtd: document new nand-rb property Miquel Raynal
2018-01-11 22:23 ` Rob Herring
2018-01-09 10:36 ` [PATCH v3 2/7] dt-bindings: mtd: add Marvell NAND controller documentation Miquel Raynal
2018-01-11 22:25 ` Rob Herring
2018-01-09 10:36 ` [PATCH v3 3/7] mtd: nand: add reworked Marvell NAND controller driver Miquel Raynal
2018-01-09 10:36 ` [PATCH v3 4/7] mtd: nand: use reworked NAND controller driver with Marvell EBU SoCs Miquel Raynal
2018-01-09 10:36 ` [PATCH v3 5/7] mtd: nand: use Marvell reworked NAND controller driver with all platforms Miquel Raynal
2018-02-12 10:20 ` Boris Brezillon
2018-01-09 10:36 ` [PATCH v3 6/7] dt-bindings: mtd: remove pxa3xx NAND controller documentation Miquel Raynal
2018-01-09 10:36 ` [PATCH v3 7/7] mtd: nand: remove useless fields from pxa3xx NAND platform data Miquel Raynal
2018-02-12 10:17 ` Miquel Raynal [this message]
2018-02-17 9:43 ` Robert Jarzmik
2018-01-11 11:27 ` [PATCH v3 0/7] Marvell NAND controller rework with ->exec_op() Boris Brezillon
2018-01-11 17:42 ` Robert Jarzmik
2018-01-11 22:24 ` Miquel RAYNAL
2018-01-12 8:09 ` Robert Jarzmik
2018-01-12 8:45 ` Boris Brezillon
2018-01-12 9:01 ` Miquel Raynal
2018-01-12 9:34 ` Robert Jarzmik
2018-01-12 9:52 ` Boris Brezillon
2018-01-12 20:44 ` Robert Jarzmik
2018-01-13 8:38 ` Boris Brezillon
2018-01-13 11:05 ` Miquel Raynal
2018-01-14 10:35 ` Robert Jarzmik
2018-01-22 8:51 ` Boris Brezillon
2018-01-27 10:33 ` Robert Jarzmik
2018-01-29 10:36 ` Boris Brezillon
2018-01-12 10:21 ` Boris Brezillon
2018-01-12 16:43 ` Robert Jarzmik
2018-01-13 8:38 ` Boris Brezillon
2018-01-14 10:20 ` Robert Jarzmik
2018-01-22 8:54 ` Boris Brezillon
2018-01-11 22:28 ` Willy Tarreau
2018-01-12 18:21 ` Miquel Raynal
2018-01-12 15:55 ` Boris Brezillon
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=20180212111728.690edacd@xps13 \
--to=miquel.raynal@bootlin.com \
--cc=antoine.tenart@bootlin.com \
--cc=boris.brezillon@free-electrons.com \
--cc=computersforpeace@gmail.com \
--cc=cyrille.pitchen@wedev4u.fr \
--cc=dwmw2@infradead.org \
--cc=ezequiel.garcia@free-electrons.com \
--cc=gregory.clement@bootlin.com \
--cc=hannah@marvell.com \
--cc=linux-mtd@lists.infradead.org \
--cc=marek.vasut@gmail.com \
--cc=nadavh@marvell.com \
--cc=neta@marvell.com \
--cc=oferh@marvell.com \
--cc=richard@nod.at \
--cc=robert.jarzmik@free.fr \
--cc=thomas.petazzoni@bootlin.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