mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Andrey Smirnov <andrew.smirnov@gmail.com>
To: barebox@lists.infradead.org
Cc: Andrey Smirnov <andrew.smirnov@gmail.com>
Subject: [PATCH v2 06/24] ARM: i.MX: bbu: Drop IMX_INTERNAL_FLAG_NAND
Date: Thu, 23 Aug 2018 19:52:25 -0700	[thread overview]
Message-ID: <20180824025243.19479-7-andrew.smirnov@gmail.com> (raw)
In-Reply-To: <20180824025243.19479-1-andrew.smirnov@gmail.com>

Replace IMX_INTERNAL_FLAG_NAND with a function pointer that can be
customized by individual registration functions. The change by iteself
doesn't have that much value, however it makes the simplification in
the commit that follows more straightforward.

Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
---
 arch/arm/mach-imx/imx-bbu-internal.c | 24 ++++++++++++++----------
 1 file changed, 14 insertions(+), 10 deletions(-)

diff --git a/arch/arm/mach-imx/imx-bbu-internal.c b/arch/arm/mach-imx/imx-bbu-internal.c
index b334fe3d8..d6e45f13c 100644
--- a/arch/arm/mach-imx/imx-bbu-internal.c
+++ b/arch/arm/mach-imx/imx-bbu-internal.c
@@ -32,11 +32,12 @@
 
 #define FLASH_HEADER_OFFSET_MMC		0x400
 
-#define IMX_INTERNAL_FLAG_NAND		BIT(31)
 #define IMX_INTERNAL_FLAG_ERASE		BIT(30)
 
 struct imx_internal_bbu_handler {
 	struct bbu_handler handler;
+	int (*write_device)(struct imx_internal_bbu_handler *,
+			    struct bbu_data *);
 	unsigned long flash_header_offset;
 	size_t device_size;
 };
@@ -106,6 +107,13 @@ err_close:
 	return ret;
 }
 
+static int __imx_bbu_write_device(struct imx_internal_bbu_handler *imx_handler,
+				  struct bbu_data *data)
+{
+	return imx_bbu_write_device(imx_handler, data->devicefile, data,
+				    data->image, data->len);
+}
+
 static int imx_bbu_check_prereq(struct imx_internal_bbu_handler *imx_handler,
 				const char *devicefile, struct bbu_data *data,
 				enum filetype expected_type)
@@ -370,13 +378,7 @@ static int imx_bbu_internal_v2_update(struct bbu_handler *handler, struct bbu_da
 	if (ret)
 		return ret;
 
-	if (imx_handler->handler.flags & IMX_INTERNAL_FLAG_NAND)
-		ret = imx_bbu_internal_v2_write_nand_dbbt(imx_handler, data);
-	else
-		ret = imx_bbu_write_device(imx_handler, data->devicefile, data,
-					   data->image, data->len);
-
-	return ret;
+	return imx_handler->write_device(imx_handler, data);
 }
 
 static int imx_bbu_internal_v2_mmcboot_update(struct bbu_handler *handler,
@@ -452,6 +454,8 @@ static struct imx_internal_bbu_handler *__init_handler(const char *name, char *d
 	handler->name = name;
 	handler->flags = flags;
 
+	imx_handler->write_device = __imx_bbu_write_device;
+
 	return imx_handler;
 }
 
@@ -543,13 +547,13 @@ int imx53_bbu_internal_nand_register_handler(const char *name,
 {
 	struct imx_internal_bbu_handler *imx_handler;
 
-	imx_handler = __init_handler(name, NULL, flags |
-				     IMX_INTERNAL_FLAG_NAND);
+	imx_handler = __init_handler(name, NULL, flags);
 	imx_handler->flash_header_offset = FLASH_HEADER_OFFSET_MMC;
 
 	imx_handler->handler.handler = imx_bbu_internal_v2_update;
 	imx_handler->handler.devicefile = "/dev/nand0";
 	imx_handler->device_size = partition_size;
+	imx_handler->write_device = imx_bbu_internal_v2_write_nand_dbbt;
 
 	return __register_handler(imx_handler);
 }
-- 
2.17.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

  parent reply	other threads:[~2018-08-24  2:53 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-24  2:52 [PATCH v2 00/24] i.MX BBU improvements and bugfixes Andrey Smirnov
2018-08-24  2:52 ` [PATCH v2 01/24] ARM: i.MX: bbu: Remove unused define Andrey Smirnov
2018-08-24  2:52 ` [PATCH v2 02/24] filetype: Add arch/ to include path Andrey Smirnov
2018-08-24  2:52 ` [PATCH v2 03/24] filetype: Add code to detect i.MX image v1 Andrey Smirnov
2018-08-24  2:52 ` [PATCH v2 04/24] filetype: Add code to detect i.MX image v2 Andrey Smirnov
2018-08-24  2:52 ` [PATCH v2 05/24] ARM: i.MX: bbu: Move inner-image type check Andrey Smirnov
2018-08-24  2:52 ` Andrey Smirnov [this message]
2018-08-24  2:52 ` [PATCH v2 07/24] ARM: i.MX: bbu: Consolidate various update helpers Andrey Smirnov
2018-08-24  2:52 ` [PATCH v2 08/24] ARM: i.MX: bbu: Simplify imx53_bbu_internal_nand_register_handler() Andrey Smirnov
2018-08-24  2:52 ` [PATCH v2 09/24] ARM: i.MX: bbu: Constify all 'devicefile' arguments Andrey Smirnov
2018-08-24  2:52 ` [PATCH v2 10/24] ARM: i.MX: bbu: Detect which platforms need v2 i.MX header Andrey Smirnov
2018-08-24  2:52 ` [PATCH v2 11/24] ARM: i.MX: bbu: Alias imx5*_bbu_internal_mmc_register_handler() Andrey Smirnov
2018-08-24  2:52 ` [PATCH v2 12/24] ARM: i.MX: bbu: Alias imx5*_bbu_internal_spi_i2c_register_handler() Andrey Smirnov
2018-08-24  2:52 ` [PATCH v2 13/24] ARM: i.MX: bbu: Move protect code into a separate routine Andrey Smirnov
2018-08-24  2:52 ` [PATCH v2 14/24] ARM: i.MX: bbu: Adjust FLASH_HEADER_OFFSET_MMC for i.MX8MQ Andrey Smirnov
2018-08-24  2:52 ` [PATCH v2 15/24] ARM: i.MX: bbu: Add support for SPI/I2C on VFxxx Andrey Smirnov
2018-08-24  2:52 ` [PATCH v2 16/24] ARM: i.MX: zii-vf610-dev-rev-b/c: Add support for BBU on SPI-NOR Andrey Smirnov
2018-08-24  2:52 ` [PATCH v2 17/24] ARM: i.MX: bbu: Add support for MMC on i.MX8MQ Andrey Smirnov
2018-08-24  2:52 ` [PATCH v2 18/24] ARM: nxp-imx8mq-evk: Add eMMC BBU configuration Andrey Smirnov
2018-08-24  2:52 ` [PATCH v2 19/24] libfile: Introduce pwrite_full() Andrey Smirnov
2018-08-24  2:52 ` [PATCH v2 20/24] ARM: i.MX: bbu: Use pwrite_full() instead of pwrite() Andrey Smirnov
2018-08-24  2:52 ` [PATCH v2 21/24] bbu: Remove logical negation in barebox_update_handler_exists() Andrey Smirnov
2018-08-24  2:52 ` [PATCH v2 22/24] block: Do not ignore error in blk->ops->write() Andrey Smirnov
2018-08-24  2:52 ` [PATCH v2 23/24] bbu: Report update failures explicitly Andrey Smirnov
2018-08-24  2:52 ` [PATCH v2 24/24] bbu: command: Make sure specified update handler exists Andrey Smirnov
2018-08-24  8:09 ` [PATCH v2 00/24] i.MX BBU improvements and bugfixes Sascha Hauer

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=20180824025243.19479-7-andrew.smirnov@gmail.com \
    --to=andrew.smirnov@gmail.com \
    --cc=barebox@lists.infradead.org \
    /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