[U-Boot] [PATCH v2 1/4] Flex-OneNAND driver
Scott Wood
scottwood at freescale.com
Mon Dec 15 22:44:22 CET 2008
On Thu, Dec 11, 2008 at 07:57:18PM +0530, Rohit Hagargundgi wrote:
> This patch adds support for MLC OneNAND and Flex-OneNAND devices.
Patch does not apply to u-boot-nand-flash/next (the master branch is for
2008.12 bugfixes only).
It's looking a lot better (though I'm not familiar enough with this
hardware to comment on the functional bits), though while you're
rebasing, I have some style nits:
> + unsigned boundary, blk, die = 0;
"unsigned int"
> +inline int flexonenand_region(struct mtd_info *mtd, loff_t addr)
Compiler should be able to figure out inlines by itself.
> +{
> + int i;
> +
> + for (i = 0; i < mtd->numeraseregions &&
> + addr >= mtd->eraseregions[i].offset; i++)
> + ;
Align the continuation line with "i = 0", making it distinct from the
if-body.
Move the addr >= mtd->eraseregions[i].offset test into the if-body, for
readability.
> + i--;
> + return i;
> +}
Just return i - 1.
> + ret = ret ? onenand_recover_lsb(mtd, from, ret) : ret;
if (ret)
ret = onenand_recover_lsb(mtd, from, ret);
The ?: usually decreases readability rather than increases it; it's best
to avoid unless using it would eliminate duplication or a temporary
variable.
> /* Block lock scheme */
> - for (block = start; block < end; block++) {
> + for (block = start; block < end + 1; block++) {
block <= end
> + locked = bdry >> FLEXONENAND_PI_UNLOCK_SHIFT;
> + locked = (locked == 0x3) ? 0 : 1;
if ((bdry >> FLEXONENAND_PI_UNLOCK_SHIFT) == 3)
locked = 0;
else
locked = 1;
> + eraseshift = this->erase_shift - 1;
> +
> +
> + mtd->numeraseregions = this->dies << 1;
Only one blank line.
> + mtd->erasesize = 1 << (this->erase_shift);
Unnecessary parens.
-Scott
More information about the U-Boot
mailing list