Message ID | 1437507599-25424-7-git-send-email-Frank.Li@freescale.com |
---|---|
State | Superseded |
Headers | show |
On Tue, Jul 21, 2015 at 2:39 PM, <Frank.Li@freescale.com> wrote: > From: Frank Li <Frank.Li@freescale.com> > > fsl-quadspi 21e0000.qspi: Unsupported cmd 0x20 > > when config CONFIG_MTD_SPI_NOR_USE_4K_SECTORS enable, > erase will use SPINOR_OP_BE_4K, which was not supported by fsl-quadspi > driver > > Signed-off-by: Frank Li <Frank.Li@freescale.com> Acked-by: Han Xu <han.xu@freescale.com> > --- > drivers/mtd/spi-nor/fsl-quadspi.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/mtd/spi-nor/fsl-quadspi.c b/drivers/mtd/spi-nor/fsl-quadspi.c > index 68054c1..d2981c5 100644 > --- a/drivers/mtd/spi-nor/fsl-quadspi.c > +++ b/drivers/mtd/spi-nor/fsl-quadspi.c > @@ -396,11 +396,11 @@ static void fsl_qspi_init_lut(struct fsl_qspi *q) > lut_base = SEQID_SE * 4; > > if (q->nor_size <= SZ_16M) { > - cmd = SPINOR_OP_SE; > + cmd = q->nor[0].erase_opcode; > addrlen = ADDR24BIT; > } else { > /* use the 4-byte address */ > - cmd = SPINOR_OP_SE; > + cmd = q->nor[0].erase_opcode; > addrlen = ADDR32BIT; > } > > @@ -471,6 +471,8 @@ static int fsl_qspi_get_seqid(struct fsl_qspi *q, u8 cmd) > case SPINOR_OP_BRWR: > return SEQID_BRWR; > default: > + if (cmd == q->nor[0].erase_opcode) > + return SEQID_SE; > dev_err(q->dev, "Unsupported cmd 0x%.2x\n", cmd); > break; > } > -- > 1.9.1 > > > ______________________________________________________ > Linux MTD discussion mailing list > http://lists.infradead.org/mailman/listinfo/linux-mtd/
diff --git a/drivers/mtd/spi-nor/fsl-quadspi.c b/drivers/mtd/spi-nor/fsl-quadspi.c index 68054c1..d2981c5 100644 --- a/drivers/mtd/spi-nor/fsl-quadspi.c +++ b/drivers/mtd/spi-nor/fsl-quadspi.c @@ -396,11 +396,11 @@ static void fsl_qspi_init_lut(struct fsl_qspi *q) lut_base = SEQID_SE * 4; if (q->nor_size <= SZ_16M) { - cmd = SPINOR_OP_SE; + cmd = q->nor[0].erase_opcode; addrlen = ADDR24BIT; } else { /* use the 4-byte address */ - cmd = SPINOR_OP_SE; + cmd = q->nor[0].erase_opcode; addrlen = ADDR32BIT; } @@ -471,6 +471,8 @@ static int fsl_qspi_get_seqid(struct fsl_qspi *q, u8 cmd) case SPINOR_OP_BRWR: return SEQID_BRWR; default: + if (cmd == q->nor[0].erase_opcode) + return SEQID_SE; dev_err(q->dev, "Unsupported cmd 0x%.2x\n", cmd); break; }