Message ID | 1451293237-11122-2-git-send-email-jteki@openedev.com |
---|---|
State | Accepted |
Commit | ffecb0fc840707d7aadf42364ae596f998a3d52f |
Delegated to: | Jagannadha Sutradharudu Teki |
Headers | show |
On 28 December 2015 at 14:30, Jagan Teki <jteki@openedev.com> wrote: > One spansion quad bit set using CR, it's good to > read back and check the written bit and also if > it's already been set check for the bit and return. > > Cc: Vignesh R <vigneshr@ti.com> > Cc: Simon Glass <sjg@chromium.org> > Cc: Bin Meng <bmeng.cn@gmail.com> > Cc: Michal Simek <michal.simek@xilinx.com> > Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com> > Tested-by: Mugunthan V N <mugunthanvnm@ti.com> > Signed-off-by: Jagan Teki <jteki@openedev.com> > --- > Changes for v3: > - Fixed if statement for 'quad bit not clear' > Changes for v2: > - none > > drivers/mtd/spi/spi_flash.c | 18 ++++++++++++------ > 1 file changed, 12 insertions(+), 6 deletions(-) Applied to u-boot-spi/master thanks!
diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c index 30058d0..c3deda5 100644 --- a/drivers/mtd/spi/spi_flash.c +++ b/drivers/mtd/spi/spi_flash.c @@ -862,12 +862,18 @@ static int spansion_quad_enable(struct spi_flash *flash) if (ret < 0) return ret; - if (qeb_status & STATUS_QEB_WINSPAN) { - debug("SF: winspan: QEB is already set\n"); - } else { - ret = write_cr(flash, STATUS_QEB_WINSPAN); - if (ret < 0) - return ret; + if (qeb_status & STATUS_QEB_WINSPAN) + return 0; + + ret = write_cr(flash, STATUS_QEB_WINSPAN); + if (ret < 0) + return ret; + + /* read CR and check it */ + ret = read_cr(flash, &qeb_status); + if (!(ret >= 0 && (qeb_status & STATUS_QEB_WINSPAN))) { + printf("SF: Spansion CR Quad bit not clear\n"); + return -EINVAL; } return ret;