All of lore.kernel.org
 help / color / mirror / Atom feed
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Wenyou Yang <wenyou.yang@microchip.com>,
	Josh Wu <rainyfeeling@outlook.com>,
	Tudor Ambarus <Tudor.Ambarus@microchip.com>,
	Boris Brezillon <boris.brezillon@bootlin.com>,
	Miquel Raynal <miquel.raynal@bootlin.com>,
	Richard Weinberger <richard@nod.at>,
	David Woodhouse <dwmw2@infradead.org>,
	Brian Norris <computersforpeace@gmail.com>,
	Marek Vasut <marek.vasut@gmail.com>,
	Nicolas Ferre <nicolas.ferre@microchip.com>,
	Alexandre Belloni <alexandre.belloni@bootlin.com>,
	Kamal Dasu <kdasu.kdev@gmail.com>,
	Masahiro Yamada <yamada.masahiro@socionext.com>,
	Han Xu <han.xu@nxp.com>, Harvey Hunt <harveyhuntnexus@gmail.com>,
	Vladimir Zapolskiy <vz@mleia.com>,
	Sylvain Lemieux <slemieux.tyco@gmail.com>,
	Xiaolei Li <xiaolei.li@mediatek.com>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Maxime Ripard <maxime.ripard@bootlin.com>,
	Chen-Yu Tsai <wens@csie.org>,
	Marc Gonzalez <marc.w.gonzalez@free.fr>,
	Mans Rullgard <mans@mansr.com>, Stefan Agner <stefan@agner.ch>
Cc: linux-mtd@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	bcm-kernel-feedback-list@broadcom.com,
	linux-mediatek@lists.infradead.org
Subject: [PATCH v4 33/35] mtd: rawnand: do not export nand_scan_[ident|tail]() anymore
Date: Fri, 20 Jul 2018 17:15:25 +0200	[thread overview]
Message-ID: <20180720151527.16038-34-miquel.raynal@bootlin.com> (raw)
In-Reply-To: <20180720151527.16038-1-miquel.raynal@bootlin.com>

Both nand_scan_ident() and nand_scan_tail() helpers used to be called
directly from controller drivers that needed to tweak some ECC-related
parameters before nand_scan_tail(). This separation prevented dynamic
allocations during the phase of NAND identification, which was
inconvenient.

All controller drivers have been moved to use nand_scan(), in
conjunction with the chip->ecc.[attach|detach]_chip() hooks that
actually do the required tweaking sequence between both ident/tail
calls, allowing programmers to use dynamic allocation as they need all
across the scanning sequence.

Declare nand_scan_[ident|tail]() statically now.

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
---
 drivers/mtd/nand/raw/nand_base.c | 16 +++++++++-------
 include/linux/mtd/rawnand.h      |  9 ++-------
 2 files changed, 11 insertions(+), 14 deletions(-)

diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c
index e7f135c100c2..da99232702a4 100644
--- a/drivers/mtd/nand/raw/nand_base.c
+++ b/drivers/mtd/nand/raw/nand_base.c
@@ -5924,7 +5924,7 @@ static int nand_dt_init(struct nand_chip *chip)
 }
 
 /**
- * nand_scan_ident - [NAND Interface] Scan for the NAND device
+ * nand_scan_ident - Scan for the NAND device
  * @mtd: MTD device structure
  * @maxchips: number of chips to scan for, returns immediately if 0
  * @table: alternative NAND ID table
@@ -5932,9 +5932,13 @@ static int nand_dt_init(struct nand_chip *chip)
  * This is the first phase of the normal nand_scan() function. It reads the
  * flash ID and sets up MTD fields accordingly.
  *
+ * This helper used to be called directly from controller drivers that needed
+ * to tweak some ECC-related parameters before nand_scan_tail(). This separation
+ * prevented dynamic allocations during this phase which was unconvenient and
+ * as been banned for the benefit of the ->init_ecc()/cleanup_ecc() hooks.
  */
-int nand_scan_ident(struct mtd_info *mtd, int maxchips,
-		    struct nand_flash_dev *table)
+static int nand_scan_ident(struct mtd_info *mtd, int maxchips,
+			   struct nand_flash_dev *table)
 {
 	int i, nand_maf_id, nand_dev_id;
 	struct nand_chip *chip = mtd_to_nand(mtd);
@@ -6016,7 +6020,6 @@ int nand_scan_ident(struct mtd_info *mtd, int maxchips,
 
 	return 0;
 }
-EXPORT_SYMBOL(nand_scan_ident);
 
 static int nand_set_ecc_soft_ops(struct mtd_info *mtd)
 {
@@ -6393,14 +6396,14 @@ static bool nand_ecc_strength_good(struct mtd_info *mtd)
 }
 
 /**
- * nand_scan_tail - [NAND Interface] Scan for the NAND device
+ * nand_scan_tail - Scan for the NAND device
  * @mtd: MTD device structure
  *
  * This is the second phase of the normal nand_scan() function. It fills out
  * all the uninitialized function pointers with the defaults and scans for a
  * bad block table if appropriate.
  */
-int nand_scan_tail(struct mtd_info *mtd)
+static int nand_scan_tail(struct mtd_info *mtd)
 {
 	struct nand_chip *chip = mtd_to_nand(mtd);
 	struct nand_ecc_ctrl *ecc = &chip->ecc;
@@ -6724,7 +6727,6 @@ int nand_scan_tail(struct mtd_info *mtd)
 
 	return ret;
 }
-EXPORT_SYMBOL(nand_scan_tail);
 
 static int nand_attach(struct nand_chip *chip)
 {
diff --git a/include/linux/mtd/rawnand.h b/include/linux/mtd/rawnand.h
index a20c78e25878..a928771a7ae4 100644
--- a/include/linux/mtd/rawnand.h
+++ b/include/linux/mtd/rawnand.h
@@ -36,14 +36,9 @@ static inline int nand_scan(struct mtd_info *mtd, int max_chips)
 }
 
 /*
- * Separate phases of nand_scan(), allowing board driver to intervene
- * and override command or ECC setup according to flash type.
+ * Unregister the MTD device and free resources held by the NAND device, must be
+ * called on error after a successful nand_scan().
  */
-int nand_scan_ident(struct mtd_info *mtd, int max_chips,
-			   struct nand_flash_dev *table);
-int nand_scan_tail(struct mtd_info *mtd);
-
-/* Unregister the MTD device and free resources held by the NAND device */
 void nand_release(struct mtd_info *mtd);
 
 /* Internal helper for board drivers which need to override command function */
-- 
2.14.1


WARNING: multiple messages have this Message-ID (diff)
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Wenyou Yang <wenyou.yang@microchip.com>,
	Josh Wu <rainyfeeling@outlook.com>,
	Tudor Ambarus <Tudor.Ambarus@microchip.com>,
	Boris Brezillon <boris.brezillon@bootlin.com>,
	Miquel Raynal <miquel.raynal@bootlin.com>,
	Richard Weinberger <richard@nod.at>,
	David Woodhouse <dwmw2@infradead.org>,
	Brian Norris <computersforpeace@gmail.com>,
	Marek Vasut <marek.vasut@gmail.com>,
	Nicolas Ferre <nicolas.ferre@microchip.com>,
	Alexandre Belloni <alexandre.belloni@bootlin.com>,
	Kamal Dasu <kdasu.kdev@gmail.com>,
	Masahiro Yamada <yamada.masahiro@socionext.com>,
	Han Xu <han.xu@nxp.com>, Harvey Hunt <harveyhuntnexus@gmail.com>,
	Vladimir Zapolskiy <vz@mleia.com>,
	Sylvain Lemieux <slemieux.tyco@gmail.com>,
	Xiaolei Li <xiaolei.li@mediatek.com>, Matthias Brugger <mat>
Cc: linux-mtd@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	bcm-kernel-feedback-list@broadcom.com,
	linux-mediatek@lists.infradead.org
Subject: [PATCH v4 33/35] mtd: rawnand: do not export nand_scan_[ident|tail]() anymore
Date: Fri, 20 Jul 2018 17:15:25 +0200	[thread overview]
Message-ID: <20180720151527.16038-34-miquel.raynal@bootlin.com> (raw)
In-Reply-To: <20180720151527.16038-1-miquel.raynal@bootlin.com>

Both nand_scan_ident() and nand_scan_tail() helpers used to be called
directly from controller drivers that needed to tweak some ECC-related
parameters before nand_scan_tail(). This separation prevented dynamic
allocations during the phase of NAND identification, which was
inconvenient.

All controller drivers have been moved to use nand_scan(), in
conjunction with the chip->ecc.[attach|detach]_chip() hooks that
actually do the required tweaking sequence between both ident/tail
calls, allowing programmers to use dynamic allocation as they need all
across the scanning sequence.

Declare nand_scan_[ident|tail]() statically now.

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
---
 drivers/mtd/nand/raw/nand_base.c | 16 +++++++++-------
 include/linux/mtd/rawnand.h      |  9 ++-------
 2 files changed, 11 insertions(+), 14 deletions(-)

diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c
index e7f135c100c2..da99232702a4 100644
--- a/drivers/mtd/nand/raw/nand_base.c
+++ b/drivers/mtd/nand/raw/nand_base.c
@@ -5924,7 +5924,7 @@ static int nand_dt_init(struct nand_chip *chip)
 }
 
 /**
- * nand_scan_ident - [NAND Interface] Scan for the NAND device
+ * nand_scan_ident - Scan for the NAND device
  * @mtd: MTD device structure
  * @maxchips: number of chips to scan for, returns immediately if 0
  * @table: alternative NAND ID table
@@ -5932,9 +5932,13 @@ static int nand_dt_init(struct nand_chip *chip)
  * This is the first phase of the normal nand_scan() function. It reads the
  * flash ID and sets up MTD fields accordingly.
  *
+ * This helper used to be called directly from controller drivers that needed
+ * to tweak some ECC-related parameters before nand_scan_tail(). This separation
+ * prevented dynamic allocations during this phase which was unconvenient and
+ * as been banned for the benefit of the ->init_ecc()/cleanup_ecc() hooks.
  */
-int nand_scan_ident(struct mtd_info *mtd, int maxchips,
-		    struct nand_flash_dev *table)
+static int nand_scan_ident(struct mtd_info *mtd, int maxchips,
+			   struct nand_flash_dev *table)
 {
 	int i, nand_maf_id, nand_dev_id;
 	struct nand_chip *chip = mtd_to_nand(mtd);
@@ -6016,7 +6020,6 @@ int nand_scan_ident(struct mtd_info *mtd, int maxchips,
 
 	return 0;
 }
-EXPORT_SYMBOL(nand_scan_ident);
 
 static int nand_set_ecc_soft_ops(struct mtd_info *mtd)
 {
@@ -6393,14 +6396,14 @@ static bool nand_ecc_strength_good(struct mtd_info *mtd)
 }
 
 /**
- * nand_scan_tail - [NAND Interface] Scan for the NAND device
+ * nand_scan_tail - Scan for the NAND device
  * @mtd: MTD device structure
  *
  * This is the second phase of the normal nand_scan() function. It fills out
  * all the uninitialized function pointers with the defaults and scans for a
  * bad block table if appropriate.
  */
-int nand_scan_tail(struct mtd_info *mtd)
+static int nand_scan_tail(struct mtd_info *mtd)
 {
 	struct nand_chip *chip = mtd_to_nand(mtd);
 	struct nand_ecc_ctrl *ecc = &chip->ecc;
@@ -6724,7 +6727,6 @@ int nand_scan_tail(struct mtd_info *mtd)
 
 	return ret;
 }
-EXPORT_SYMBOL(nand_scan_tail);
 
 static int nand_attach(struct nand_chip *chip)
 {
diff --git a/include/linux/mtd/rawnand.h b/include/linux/mtd/rawnand.h
index a20c78e25878..a928771a7ae4 100644
--- a/include/linux/mtd/rawnand.h
+++ b/include/linux/mtd/rawnand.h
@@ -36,14 +36,9 @@ static inline int nand_scan(struct mtd_info *mtd, int max_chips)
 }
 
 /*
- * Separate phases of nand_scan(), allowing board driver to intervene
- * and override command or ECC setup according to flash type.
+ * Unregister the MTD device and free resources held by the NAND device, must be
+ * called on error after a successful nand_scan().
  */
-int nand_scan_ident(struct mtd_info *mtd, int max_chips,
-			   struct nand_flash_dev *table);
-int nand_scan_tail(struct mtd_info *mtd);
-
-/* Unregister the MTD device and free resources held by the NAND device */
 void nand_release(struct mtd_info *mtd);
 
 /* Internal helper for board drivers which need to override command function */
-- 
2.14.1

WARNING: multiple messages have this Message-ID (diff)
From: miquel.raynal@bootlin.com (Miquel Raynal)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 33/35] mtd: rawnand: do not export nand_scan_[ident|tail]() anymore
Date: Fri, 20 Jul 2018 17:15:25 +0200	[thread overview]
Message-ID: <20180720151527.16038-34-miquel.raynal@bootlin.com> (raw)
In-Reply-To: <20180720151527.16038-1-miquel.raynal@bootlin.com>

Both nand_scan_ident() and nand_scan_tail() helpers used to be called
directly from controller drivers that needed to tweak some ECC-related
parameters before nand_scan_tail(). This separation prevented dynamic
allocations during the phase of NAND identification, which was
inconvenient.

All controller drivers have been moved to use nand_scan(), in
conjunction with the chip->ecc.[attach|detach]_chip() hooks that
actually do the required tweaking sequence between both ident/tail
calls, allowing programmers to use dynamic allocation as they need all
across the scanning sequence.

Declare nand_scan_[ident|tail]() statically now.

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
---
 drivers/mtd/nand/raw/nand_base.c | 16 +++++++++-------
 include/linux/mtd/rawnand.h      |  9 ++-------
 2 files changed, 11 insertions(+), 14 deletions(-)

diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c
index e7f135c100c2..da99232702a4 100644
--- a/drivers/mtd/nand/raw/nand_base.c
+++ b/drivers/mtd/nand/raw/nand_base.c
@@ -5924,7 +5924,7 @@ static int nand_dt_init(struct nand_chip *chip)
 }
 
 /**
- * nand_scan_ident - [NAND Interface] Scan for the NAND device
+ * nand_scan_ident - Scan for the NAND device
  * @mtd: MTD device structure
  * @maxchips: number of chips to scan for, returns immediately if 0
  * @table: alternative NAND ID table
@@ -5932,9 +5932,13 @@ static int nand_dt_init(struct nand_chip *chip)
  * This is the first phase of the normal nand_scan() function. It reads the
  * flash ID and sets up MTD fields accordingly.
  *
+ * This helper used to be called directly from controller drivers that needed
+ * to tweak some ECC-related parameters before nand_scan_tail(). This separation
+ * prevented dynamic allocations during this phase which was unconvenient and
+ * as been banned for the benefit of the ->init_ecc()/cleanup_ecc() hooks.
  */
-int nand_scan_ident(struct mtd_info *mtd, int maxchips,
-		    struct nand_flash_dev *table)
+static int nand_scan_ident(struct mtd_info *mtd, int maxchips,
+			   struct nand_flash_dev *table)
 {
 	int i, nand_maf_id, nand_dev_id;
 	struct nand_chip *chip = mtd_to_nand(mtd);
@@ -6016,7 +6020,6 @@ int nand_scan_ident(struct mtd_info *mtd, int maxchips,
 
 	return 0;
 }
-EXPORT_SYMBOL(nand_scan_ident);
 
 static int nand_set_ecc_soft_ops(struct mtd_info *mtd)
 {
@@ -6393,14 +6396,14 @@ static bool nand_ecc_strength_good(struct mtd_info *mtd)
 }
 
 /**
- * nand_scan_tail - [NAND Interface] Scan for the NAND device
+ * nand_scan_tail - Scan for the NAND device
  * @mtd: MTD device structure
  *
  * This is the second phase of the normal nand_scan() function. It fills out
  * all the uninitialized function pointers with the defaults and scans for a
  * bad block table if appropriate.
  */
-int nand_scan_tail(struct mtd_info *mtd)
+static int nand_scan_tail(struct mtd_info *mtd)
 {
 	struct nand_chip *chip = mtd_to_nand(mtd);
 	struct nand_ecc_ctrl *ecc = &chip->ecc;
@@ -6724,7 +6727,6 @@ int nand_scan_tail(struct mtd_info *mtd)
 
 	return ret;
 }
-EXPORT_SYMBOL(nand_scan_tail);
 
 static int nand_attach(struct nand_chip *chip)
 {
diff --git a/include/linux/mtd/rawnand.h b/include/linux/mtd/rawnand.h
index a20c78e25878..a928771a7ae4 100644
--- a/include/linux/mtd/rawnand.h
+++ b/include/linux/mtd/rawnand.h
@@ -36,14 +36,9 @@ static inline int nand_scan(struct mtd_info *mtd, int max_chips)
 }
 
 /*
- * Separate phases of nand_scan(), allowing board driver to intervene
- * and override command or ECC setup according to flash type.
+ * Unregister the MTD device and free resources held by the NAND device, must be
+ * called on error after a successful nand_scan().
  */
-int nand_scan_ident(struct mtd_info *mtd, int max_chips,
-			   struct nand_flash_dev *table);
-int nand_scan_tail(struct mtd_info *mtd);
-
-/* Unregister the MTD device and free resources held by the NAND device */
 void nand_release(struct mtd_info *mtd);
 
 /* Internal helper for board drivers which need to override command function */
-- 
2.14.1

  parent reply	other threads:[~2018-07-20 15:16 UTC|newest]

Thread overview: 259+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-20 15:14 [PATCH v4 00/35] Allow dynamic allocations during NAND chip identification phase Miquel Raynal
2018-07-20 15:14 ` Miquel Raynal
2018-07-20 15:14 ` Miquel Raynal
2018-07-20 15:14 ` [PATCH v4 01/35] mtd: rawnand: brcmnand: convert driver to nand_scan() Miquel Raynal
2018-07-20 15:14   ` Miquel Raynal
2018-07-20 15:14   ` Miquel Raynal
2018-07-21  6:23   ` Boris Brezillon
2018-07-21  6:23     ` Boris Brezillon
2018-07-21  6:23     ` Boris Brezillon
2018-07-20 15:14 ` [PATCH v4 02/35] mtd: rawnand: cafe: " Miquel Raynal
2018-07-20 15:14   ` Miquel Raynal
2018-07-20 15:14   ` Miquel Raynal
2018-07-21  6:35   ` Boris Brezillon
2018-07-21  6:35     ` Boris Brezillon
2018-07-21  6:35     ` Boris Brezillon
2018-07-20 15:14 ` [PATCH v4 03/35] mtd: rawnand: davinci: " Miquel Raynal
2018-07-20 15:14   ` Miquel Raynal
2018-07-20 15:14   ` Miquel Raynal
2018-07-21  6:44   ` Boris Brezillon
2018-07-21  6:44     ` Boris Brezillon
2018-07-21  6:44     ` Boris Brezillon
2018-07-20 15:14 ` [PATCH v4 04/35] mtd: rawnand: denali: convert " Miquel Raynal
2018-07-20 15:14   ` Miquel Raynal
2018-07-20 15:14   ` Miquel Raynal
2018-07-21  6:46   ` Boris Brezillon
2018-07-21  6:46     ` Boris Brezillon
2018-07-21  6:46     ` Boris Brezillon
2018-07-25  9:42   ` Masahiro Yamada
2018-07-25  9:42     ` Masahiro Yamada
2018-07-25  9:42     ` Masahiro Yamada
2018-07-25  9:42     ` Masahiro Yamada
2018-07-25  9:51     ` Boris Brezillon
2018-07-25  9:51       ` Boris Brezillon
2018-07-25  9:51       ` Boris Brezillon
2018-07-25  9:51       ` Boris Brezillon
2018-07-25 12:47       ` Miquel Raynal
2018-07-25 12:47         ` Miquel Raynal
2018-07-25 12:47         ` Miquel Raynal
2018-07-25 12:47         ` Miquel Raynal
2018-07-25 14:16         ` Masahiro Yamada
2018-07-25 14:16           ` Masahiro Yamada
2018-07-25 14:16           ` Masahiro Yamada
2018-07-25 14:16           ` Masahiro Yamada
2018-07-20 15:14 ` [PATCH v4 05/35] mtd: rawnand: fsl_elbc: convert driver " Miquel Raynal
2018-07-20 15:14   ` Miquel Raynal
2018-07-20 15:14   ` Miquel Raynal
2018-07-21  6:50   ` Boris Brezillon
2018-07-21  6:50     ` Boris Brezillon
2018-07-21  6:50     ` Boris Brezillon
2018-07-20 15:14 ` [PATCH v4 06/35] mtd: rawnand: fsl_ifc: " Miquel Raynal
2018-07-20 15:14   ` Miquel Raynal
2018-07-20 15:14   ` Miquel Raynal
2018-07-21  6:53   ` Boris Brezillon
2018-07-21  6:53     ` Boris Brezillon
2018-07-21  6:53     ` Boris Brezillon
2018-07-20 15:14 ` [PATCH v4 07/35] mtd: rawnand: fsmc: " Miquel Raynal
2018-07-20 15:14   ` Miquel Raynal
2018-07-20 15:14   ` Miquel Raynal
2018-07-21  6:55   ` Boris Brezillon
2018-07-21  6:55     ` Boris Brezillon
2018-07-21  6:55     ` Boris Brezillon
2018-07-20 15:15 ` [PATCH v4 08/35] mtd: rawnand: gpmi: " Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-21  6:56   ` Boris Brezillon
2018-07-21  6:56     ` Boris Brezillon
2018-07-21  6:56     ` Boris Brezillon
2018-07-20 15:15 ` [PATCH v4 09/35] mtd: rawnand: hisi504: " Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-21  6:59   ` Boris Brezillon
2018-07-21  6:59     ` Boris Brezillon
2018-07-21  6:59     ` Boris Brezillon
2018-07-20 15:15 ` [PATCH v4 10/35] mtd: rawnand: jz4780: " Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-21 15:23   ` Boris Brezillon
2018-07-21 15:23     ` Boris Brezillon
2018-07-21 15:23     ` Boris Brezillon
2018-07-20 15:15 ` [PATCH v4 11/35] mtd: rawnand: lpc32xx_mlc: " Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-21 15:26   ` Boris Brezillon
2018-07-21 15:26     ` Boris Brezillon
2018-07-21 15:26     ` Boris Brezillon
2018-07-20 15:15 ` [PATCH v4 12/35] mtd: rawnand: lpc32xx_slc: " Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-21 15:27   ` Boris Brezillon
2018-07-21 15:27     ` Boris Brezillon
2018-07-21 15:27     ` Boris Brezillon
2018-07-20 15:15 ` [PATCH v4 13/35] mtd: rawnand: marvell: " Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-21 16:57   ` Boris Brezillon
2018-07-21 16:57     ` Boris Brezillon
2018-07-21 16:57     ` Boris Brezillon
2018-07-20 15:15 ` [PATCH v4 14/35] mtd: rawnand: mtk: " Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-21 17:10   ` Boris Brezillon
2018-07-21 17:10     ` Boris Brezillon
2018-07-21 17:10     ` Boris Brezillon
2018-07-26  6:06     ` xiaolei li
2018-07-26  6:06       ` xiaolei li
2018-07-26  6:06       ` xiaolei li
2018-07-26  6:14       ` Boris Brezillon
2018-07-26  6:14         ` Boris Brezillon
2018-07-26  6:14         ` Boris Brezillon
2018-07-26  6:46         ` xiaolei li
2018-07-26  6:46           ` xiaolei li
2018-07-26  6:46           ` xiaolei li
2018-07-26  6:49           ` Miquel Raynal
2018-07-26  6:49             ` Miquel Raynal
2018-07-26  6:49             ` Miquel Raynal
2018-07-26  6:53             ` xiaolei li
2018-07-26  6:53               ` xiaolei li
2018-07-26  6:53               ` xiaolei li
2018-07-20 15:15 ` [PATCH v4 15/35] mtd: rawnand: mxc: " Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-21 17:19   ` Boris Brezillon
2018-07-21 17:19     ` Boris Brezillon
2018-07-21 17:19     ` Boris Brezillon
2018-07-20 15:15 ` [PATCH v4 16/35] mtd: rawnand: nandsim: " Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-21 17:21   ` Boris Brezillon
2018-07-21 17:21     ` Boris Brezillon
2018-07-21 17:21     ` Boris Brezillon
2018-07-20 15:15 ` [PATCH v4 17/35] mtd: rawnand: omap2: " Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-21 17:34   ` Boris Brezillon
2018-07-21 17:34     ` Boris Brezillon
2018-07-21 17:34     ` Boris Brezillon
2018-07-20 15:15 ` [PATCH v4 18/35] mtd: rawnand: s3c2410: " Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-21 17:38   ` Boris Brezillon
2018-07-21 17:38     ` Boris Brezillon
2018-07-21 17:38     ` Boris Brezillon
2018-07-20 15:15 ` [PATCH v4 19/35] mtd: rawnand: sh_flctl: move all NAND chip related setup in one function Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-21 17:48   ` Boris Brezillon
2018-07-21 17:48     ` Boris Brezillon
2018-07-21 17:48     ` Boris Brezillon
2018-07-20 15:15 ` [PATCH v4 20/35] mtd: rawnand: sh_flctl: convert driver to nand_scan() Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-21 17:49   ` Boris Brezillon
2018-07-21 17:49     ` Boris Brezillon
2018-07-21 17:49     ` Boris Brezillon
2018-07-20 15:15 ` [PATCH v4 21/35] mtd: rawnand: sunxi: " Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-21 17:50   ` Boris Brezillon
2018-07-21 17:50     ` Boris Brezillon
2018-07-21 17:50     ` Boris Brezillon
2018-07-20 15:15 ` [PATCH v4 22/35] mtd: rawnand: tango: " Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-21 17:52   ` Boris Brezillon
2018-07-21 17:52     ` Boris Brezillon
2018-07-21 17:52     ` Boris Brezillon
2018-07-20 15:15 ` [PATCH v4 23/35] mtd: rawnand: txx9ndfmc: rename nand controller internal structure Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-21 17:53   ` Boris Brezillon
2018-07-21 17:53     ` Boris Brezillon
2018-07-21 17:53     ` Boris Brezillon
2018-07-20 15:15 ` [PATCH v4 24/35] mtd: rawnand: txx9ndfmc: convert driver to nand_scan() Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-21 17:54   ` Boris Brezillon
2018-07-21 17:54     ` Boris Brezillon
2018-07-21 17:54     ` Boris Brezillon
2018-07-21 18:04   ` Boris Brezillon
2018-07-21 18:04     ` Boris Brezillon
2018-07-21 18:04     ` Boris Brezillon
2018-07-20 15:15 ` [PATCH v4 25/35] mtd: rawnand: vf610: " Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-21 18:05   ` Boris Brezillon
2018-07-21 18:05     ` Boris Brezillon
2018-07-21 18:05     ` Boris Brezillon
2018-07-25  8:57   ` Stefan Agner
2018-07-25  8:57     ` Stefan Agner
2018-07-25  8:57     ` Stefan Agner
2018-07-20 15:15 ` [PATCH v4 26/35] mtd: rawnand: atmel: " Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-22  6:40   ` Boris Brezillon
2018-07-22  6:40     ` Boris Brezillon
2018-07-22  6:40     ` Boris Brezillon
2018-07-20 15:15 ` [PATCH v4 27/35] mtd: rawnand: sm_common: convert driver to nand_scan_with_ids() Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-22  6:44   ` Boris Brezillon
2018-07-22  6:44     ` Boris Brezillon
2018-07-22  6:44     ` Boris Brezillon
2018-07-26 19:06     ` Boris Brezillon
2018-07-26 19:06       ` Boris Brezillon
2018-07-26 19:06       ` Boris Brezillon
2018-07-26 23:13       ` Miquel Raynal
2018-07-26 23:13         ` Miquel Raynal
2018-07-26 23:13         ` Miquel Raynal
2018-07-20 15:15 ` [PATCH v4 28/35] mtd: rawnand: allow exiting immediately nand_scan_ident() Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-22  8:49   ` Boris Brezillon
2018-07-22  8:49     ` Boris Brezillon
2018-07-22  8:49     ` Boris Brezillon
2018-07-20 15:15 ` [PATCH v4 29/35] mtd: rawnand: docg4: convert driver to nand_scan() Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-22  8:52   ` Boris Brezillon
2018-07-22  8:52     ` Boris Brezillon
2018-07-22  8:52     ` Boris Brezillon
2018-07-20 15:15 ` [PATCH v4 30/35] mtd: rawnand: qcom: " Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-22  8:59   ` Boris Brezillon
2018-07-22  8:59     ` Boris Brezillon
2018-07-22  8:59     ` Boris Brezillon
2018-07-20 15:15 ` [PATCH v4 31/35] mtd: rawnand: jz4740: " Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-22  9:29   ` Boris Brezillon
2018-07-22  9:29     ` Boris Brezillon
2018-07-22  9:29     ` Boris Brezillon
2018-07-20 15:15 ` [PATCH v4 32/35] mtd: rawnand: tegra: " Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-22  9:31   ` Boris Brezillon
2018-07-22  9:31     ` Boris Brezillon
2018-07-22  9:31     ` Boris Brezillon
2018-07-20 15:15 ` Miquel Raynal [this message]
2018-07-20 15:15   ` [PATCH v4 33/35] mtd: rawnand: do not export nand_scan_[ident|tail]() anymore Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-22 10:30   ` Boris Brezillon
2018-07-22 10:30     ` Boris Brezillon
2018-07-22 10:30     ` Boris Brezillon
2018-07-20 15:15 ` [PATCH v4 34/35] mtd: rawnand: allocate model parameter dynamically Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-22 10:32   ` Boris Brezillon
2018-07-22 10:32     ` Boris Brezillon
2018-07-22 10:32     ` Boris Brezillon
2018-07-20 15:15 ` [PATCH v4 35/35] mtd: rawnand: allocate dynamically ONFI parameters during detection Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-20 15:15   ` Miquel Raynal
2018-07-22 10:35   ` Boris Brezillon
2018-07-22 10:35     ` Boris Brezillon
2018-07-22 10:35     ` Boris Brezillon
2018-07-26 23:34 ` [PATCH v4 00/35] Allow dynamic allocations during NAND chip identification phase Miquel Raynal
2018-07-26 23:34   ` Miquel Raynal
2018-07-26 23:34   ` Miquel Raynal

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=20180720151527.16038-34-miquel.raynal@bootlin.com \
    --to=miquel.raynal@bootlin.com \
    --cc=Tudor.Ambarus@microchip.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=boris.brezillon@bootlin.com \
    --cc=computersforpeace@gmail.com \
    --cc=dwmw2@infradead.org \
    --cc=han.xu@nxp.com \
    --cc=harveyhuntnexus@gmail.com \
    --cc=kdasu.kdev@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=mans@mansr.com \
    --cc=marc.w.gonzalez@free.fr \
    --cc=marek.vasut@gmail.com \
    --cc=matthias.bgg@gmail.com \
    --cc=maxime.ripard@bootlin.com \
    --cc=nicolas.ferre@microchip.com \
    --cc=rainyfeeling@outlook.com \
    --cc=richard@nod.at \
    --cc=slemieux.tyco@gmail.com \
    --cc=stefan@agner.ch \
    --cc=vz@mleia.com \
    --cc=wens@csie.org \
    --cc=wenyou.yang@microchip.com \
    --cc=xiaolei.li@mediatek.com \
    --cc=yamada.masahiro@socionext.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.