diff --git a/drivers/mtd/mtd_blk.c b/drivers/mtd/mtd_blk.c index ec4aa06aeb..64d2822cb0 100644 --- a/drivers/mtd/mtd_blk.c +++ b/drivers/mtd/mtd_blk.c @@ -446,7 +446,15 @@ ulong mtd_dwrite(struct udevice *udev, lbaint_t start, if (desc->devnum == BLK_MTD_NAND || desc->devnum == BLK_MTD_SPI_NAND || desc->devnum == BLK_MTD_SPI_NOR) { - if (desc->op_flag == BLK_MTD_NBA_RW) { + if (desc->op_flag == BLK_MTD_CONT_WRITE) { + ret = mtd_map_write(mtd, off, &rwsize, + NULL, mtd->size, + (u_char *)(src), 0); + if (!ret) + return blkcnt; + else + return 0; + } else { lbaint_t off_aligned, alinged; size_t rwsize_aligned; u8 *p_buf; @@ -481,14 +489,6 @@ ulong mtd_dwrite(struct udevice *udev, lbaint_t start, return blkcnt; else return 0; - } else { - ret = mtd_map_write(mtd, off, &rwsize, - NULL, mtd->size, - (u_char *)(src), 0); - if (!ret) - return blkcnt; - else - return 0; } } else { return 0; diff --git a/include/blk.h b/include/blk.h index 31b5ad78ea..589edd96ef 100644 --- a/include/blk.h +++ b/include/blk.h @@ -53,7 +53,7 @@ enum if_type { /* define block device operation flags */ #define BLK_PRE_RW BIT(0) /* Block prepare read & write*/ -#define BLK_MTD_NBA_RW BIT(1) /* MTD block non-block-aligned read & write */ +#define BLK_MTD_CONT_WRITE BIT(1) /* Special for Nand device P/E */ /* * Identifies the partition table type (ie. MBR vs GPT GUID) signature