From: Marek Vasut <marek.vasut@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] NAND: Let NAND_NO_SUBPAGE_WRITE through
Date: Sat, 5 Nov 2011 03:24:03 +0100 [thread overview]
Message-ID: <1320459844-18243-1-git-send-email-marek.vasut@gmail.com> (raw)
There is a problem reported that the NAND_NO_SUBPAGE_WRITE, set by some drivers,
is silently ignored by NAND core. This causes UBI to malfunction on these
drivers, because UBI tries to use subpage writes.
This was discussed already with no conclusion, see thread:
Message-Id: <1302372335-30232-6-git-send-email-sbabic@denx.de>
The bug was recently retriggered by Veli-Pekka Peltola, causing him trouble with
UBI on the MX28 CPU:
Message-ID: <4EB3E4EA.9080509@bluegiga.com>
Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Scott Wood <scottwood@freescale.com>
Cc: Veli-Pekka Peltola <veli-pekka.peltola@bluegiga.com>
---
drivers/mtd/nand/nand_base.c | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index 6aac6a2..7ecd5a3 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -2548,6 +2548,7 @@ static const struct nand_flash_dev *nand_get_flash_type(struct mtd_info *mtd,
{
int ret, maf_idx;
int tmp_id, tmp_manf;
+ int no_subpage = 0;
/* Select the device */
chip->select_chip(mtd, 0);
@@ -2612,10 +2613,20 @@ static const struct nand_flash_dev *nand_get_flash_type(struct mtd_info *mtd,
if (!ret)
nand_flash_detect_non_onfi(mtd, chip, type, &busw);
+ /*
+ * If the controller is incapable of subpage writes, force no subpage
+ * writes. This has to be done here, otherwise UBI will complain.
+ */
+ if (chip->options & NAND_NO_SUBPAGE_WRITE)
+ no_subpage = 1;
+
/* Get chip options, preserve non chip based options */
chip->options &= ~NAND_CHIPOPTIONS_MSK;
chip->options |= type->options & NAND_CHIPOPTIONS_MSK;
+ if (no_subpage)
+ chip->options |= NAND_NO_SUBPAGE_WRITE;
+
/*
* Set chip as a default. Board drivers can override it, if necessary
*/
--
1.7.6.3
next reply other threads:[~2011-11-05 2:24 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-05 2:24 Marek Vasut [this message]
2011-11-06 9:01 ` [U-Boot] [PATCH] NAND: Let NAND_NO_SUBPAGE_WRITE through Stefano Babic
2011-11-06 12:43 ` Marek Vasut
2011-11-06 14:54 ` Stefano Babic
2011-11-06 15:16 ` Marek Vasut
2011-11-10 17:02 ` Marek Vasut
2011-11-10 17:10 ` Scott Wood
2011-11-10 17:44 ` Marek Vasut
2011-11-11 12:52 ` Veli-Pekka Peltola
2011-11-11 17:50 ` Marek Vasut
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=1320459844-18243-1-git-send-email-marek.vasut@gmail.com \
--to=marek.vasut@gmail.com \
--cc=u-boot@lists.denx.de \
/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