Message ID | 20191004104746.23537-1-tudor.ambarus@microchip.com |
---|---|
State | Accepted |
Headers | show |
Series | mtd: spi-nor: Fix direction of the write_sr() transfer | expand |
John, does this fix your problem? On 10/04/2019 01:47 PM, Tudor Ambarus - M18064 wrote: > From: Tudor Ambarus <tudor.ambarus@microchip.com> > > write_sr() sends data to the SPI memory, fix the direction. > > Fixes: b35b9a10362d ("mtd: spi-nor: Move m25p80 code in spi-nor.c") > Reported-by: John Garry <john.garry@huawei.com> > Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com> > --- > drivers/mtd/spi-nor/spi-nor.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c > index 1d8621d43160..7acf4a93b592 100644 > --- a/drivers/mtd/spi-nor/spi-nor.c > +++ b/drivers/mtd/spi-nor/spi-nor.c > @@ -487,7 +487,7 @@ static int write_sr(struct spi_nor *nor, u8 val) > SPI_MEM_OP(SPI_MEM_OP_CMD(SPINOR_OP_WRSR, 1), > SPI_MEM_OP_NO_ADDR, > SPI_MEM_OP_NO_DUMMY, > - SPI_MEM_OP_DATA_IN(1, nor->bouncebuf, 1)); > + SPI_MEM_OP_DATA_OUT(1, nor->bouncebuf, 1)); > > return spi_mem_exec_op(nor->spimem, &op); > } >
On 04/10/2019 11:48, Tudor.Ambarus@microchip.com wrote: > John, does this fix your problem? It fixes the problem in the flash_lock -u command no longer errors like this: root@ubuntu:/home/john# sudo flash_lock -u /dev/mtd0 flash_lock: error!: could not unlock device: /dev/mtd0 However, with this change, even when the flash is unlocked I cannot write, so there is something else wrong. It's probably a bug in my under-development driver. I'm looking at it now. Thanks, John > > On 10/04/2019 01:47 PM, Tudor Ambarus - M18064 wrote: >> From: Tudor Ambarus <tudor.ambarus@microchip.com> >> >> write_sr() sends data to the SPI memory, fix the direction. >> >> Fixes: b35b9a10362d ("mtd: spi-nor: Move m25p80 code in spi-nor.c") >> Reported-by: John Garry <john.garry@huawei.com> >> Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com> >> --- >> drivers/mtd/spi-nor/spi-nor.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c >> index 1d8621d43160..7acf4a93b592 100644 >> --- a/drivers/mtd/spi-nor/spi-nor.c >> +++ b/drivers/mtd/spi-nor/spi-nor.c >> @@ -487,7 +487,7 @@ static int write_sr(struct spi_nor *nor, u8 val) >> SPI_MEM_OP(SPI_MEM_OP_CMD(SPINOR_OP_WRSR, 1), >> SPI_MEM_OP_NO_ADDR, >> SPI_MEM_OP_NO_DUMMY, >> - SPI_MEM_OP_DATA_IN(1, nor->bouncebuf, 1)); >> + SPI_MEM_OP_DATA_OUT(1, nor->bouncebuf, 1)); >> >> return spi_mem_exec_op(nor->spimem, &op); >> } >>
On 04/10/2019 12:31, John Garry wrote: > On 04/10/2019 11:48, Tudor.Ambarus@microchip.com wrote: >> John, does this fix your problem? > > It fixes the problem in the flash_lock -u command no longer errors like > this: > root@ubuntu:/home/john# sudo flash_lock -u /dev/mtd0 > flash_lock: error!: could not unlock device: /dev/mtd0 > > However, with this change, even when the flash is unlocked I cannot > write, so there is something else wrong. It's probably a bug in my > under-development driver. I'm looking at it now. Just to confirm, I tested an earlier HW version with my driver and flash lock/unlock function is ok. There seems something wrong with the latest HW version which I need to understand. Anyway: Tested-by: John Garry <john.garry@huawei.com> Thanks, John > >> >> On 10/04/2019 01:47 PM, Tudor Ambarus - M18064 wrote: >>> From: Tudor Ambarus <tudor.ambarus@microchip.com> >>> >>> write_sr() sends data to the SPI memory, fix the direction. >>> >>> Fixes: b35b9a10362d ("mtd: spi-nor: Move m25p80 code in spi-nor.c") >>> Reported-by: John Garry <john.garry@huawei.com> >>> Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com> >>> --- >>> drivers/mtd/spi-nor/spi-nor.c | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/drivers/mtd/spi-nor/spi-nor.c >>> b/drivers/mtd/spi-nor/spi-nor.c >>> index 1d8621d43160..7acf4a93b592 100644 >>> --- a/drivers/mtd/spi-nor/spi-nor.c >>> +++ b/drivers/mtd/spi-nor/spi-nor.c >>> @@ -487,7 +487,7 @@ static int write_sr(struct spi_nor *nor, u8 val) >>> SPI_MEM_OP(SPI_MEM_OP_CMD(SPINOR_OP_WRSR, 1), >>> SPI_MEM_OP_NO_ADDR, >>> SPI_MEM_OP_NO_DUMMY, >>> - SPI_MEM_OP_DATA_IN(1, nor->bouncebuf, 1)); >>> + SPI_MEM_OP_DATA_OUT(1, nor->bouncebuf, 1)); >>> >>> return spi_mem_exec_op(nor->spimem, &op); >>> } >>> >
On 10/04/2019 06:17 PM, John Garry wrote:
> Tested-by: John Garry <john.garry@huawei.com>
Thanks, John!
On 04-Oct-19 4:17 PM, Tudor.Ambarus@microchip.com wrote: > From: Tudor Ambarus <tudor.ambarus@microchip.com> > > write_sr() sends data to the SPI memory, fix the direction. > > Fixes: b35b9a10362d ("mtd: spi-nor: Move m25p80 code in spi-nor.c") > Reported-by: John Garry <john.garry@huawei.com> > Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com> > --- Thanks for the quick fix! Acked-by: Vignesh Raghavendra <vigneshr@ti.com> > drivers/mtd/spi-nor/spi-nor.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c > index 1d8621d43160..7acf4a93b592 100644 > --- a/drivers/mtd/spi-nor/spi-nor.c > +++ b/drivers/mtd/spi-nor/spi-nor.c > @@ -487,7 +487,7 @@ static int write_sr(struct spi_nor *nor, u8 val) > SPI_MEM_OP(SPI_MEM_OP_CMD(SPINOR_OP_WRSR, 1), > SPI_MEM_OP_NO_ADDR, > SPI_MEM_OP_NO_DUMMY, > - SPI_MEM_OP_DATA_IN(1, nor->bouncebuf, 1)); > + SPI_MEM_OP_DATA_OUT(1, nor->bouncebuf, 1)); > > return spi_mem_exec_op(nor->spimem, &op); > } >
On Fri, 2019-10-04 at 10:47:55 UTC, wrote: > From: Tudor Ambarus <tudor.ambarus@microchip.com> > > write_sr() sends data to the SPI memory, fix the direction. > > Fixes: b35b9a10362d ("mtd: spi-nor: Move m25p80 code in spi-nor.c") > Reported-by: John Garry <john.garry@huawei.com> > Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com> > Tested-by: John Garry <john.garry@huawei.com> > Acked-by: Vignesh Raghavendra <vigneshr@ti.com> Applied to https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git mtd/fixes, thanks. Miquel
diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c index 1d8621d43160..7acf4a93b592 100644 --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c @@ -487,7 +487,7 @@ static int write_sr(struct spi_nor *nor, u8 val) SPI_MEM_OP(SPI_MEM_OP_CMD(SPINOR_OP_WRSR, 1), SPI_MEM_OP_NO_ADDR, SPI_MEM_OP_NO_DUMMY, - SPI_MEM_OP_DATA_IN(1, nor->bouncebuf, 1)); + SPI_MEM_OP_DATA_OUT(1, nor->bouncebuf, 1)); return spi_mem_exec_op(nor->spimem, &op); }