Re: [U-Boot] [PATCH v2 14/16] sf: Use spi_flash_read_common() in write status poll

2013-06-08 Thread Simon Glass
Hi Jagan,

On Fri, May 31, 2013 at 5:52 AM, Jagannadha Sutradharudu Teki 
jagannadha.sutradharudu-t...@xilinx.com wrote:

 Instead of using spi_xfer for SPI_XFER_BEGIN and SPI_XFER_END
 separatley use common read call spi_flash_read_common() which
 does the same.

 Signed-off-by: Jagannadha Sutradharudu Teki jaga...@xilinx.com
 ---
 Changes for v2:
 - none

  drivers/mtd/spi/spi_flash.c | 17 +
  1 file changed, 5 insertions(+), 12 deletions(-)

 diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c
 index 821aa2e..765d4bc 100644
 --- a/drivers/mtd/spi/spi_flash.c
 +++ b/drivers/mtd/spi/spi_flash.c
 @@ -193,32 +193,25 @@ int spi_flash_cmd_read_fast(struct spi_flash *flash,
 u32 offset,
  int spi_flash_cmd_poll_bit(struct spi_flash *flash, unsigned long timeout,
u8 cmd, u8 poll_bit)
  {
 -   struct spi_slave *spi = flash-spi;
 unsigned long timebase;
 int ret;
 u8 status;

 -   ret = spi_xfer(spi, 8, cmd, NULL, SPI_XFER_BEGIN);
 -   if (ret) {
 -   debug(SF: Failed to send command %02x: %d\n, cmd, ret);
 -   return ret;
 -   }
 -
 timebase = get_timer(0);
 do {
 WATCHDOG_RESET();

 -   ret = spi_xfer(spi, 8, NULL, status, 0);
 -   if (ret)
 -   return -1;
 +   ret = spi_flash_read_common(flash, cmd, 1, status, 1);
 +   if (ret  0) {
 +   debug(SF: fail to read read status register\n);
 +   return ret;
 +   }


As mentioned elsewhere, do you need to make this change? Is it not possible
to read the status register in the same way as now?

spi_flash_read_common() does a separate SPI transaction for each read.



 if ((status  poll_bit) == 0)
 break;

 } while (get_timer(timebase)  timeout);

 -   spi_xfer(spi, 0, NULL, NULL, SPI_XFER_END);
 -
 if ((status  poll_bit) == 0)
 return 0;

 --
 1.8.3




Regards,
Simon
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH v2 14/16] sf: Use spi_flash_read_common() in write status poll

2013-05-31 Thread Jagannadha Sutradharudu Teki
Instead of using spi_xfer for SPI_XFER_BEGIN and SPI_XFER_END
separatley use common read call spi_flash_read_common() which
does the same.

Signed-off-by: Jagannadha Sutradharudu Teki jaga...@xilinx.com
---
Changes for v2:
- none

 drivers/mtd/spi/spi_flash.c | 17 +
 1 file changed, 5 insertions(+), 12 deletions(-)

diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c
index 821aa2e..765d4bc 100644
--- a/drivers/mtd/spi/spi_flash.c
+++ b/drivers/mtd/spi/spi_flash.c
@@ -193,32 +193,25 @@ int spi_flash_cmd_read_fast(struct spi_flash *flash, u32 
offset,
 int spi_flash_cmd_poll_bit(struct spi_flash *flash, unsigned long timeout,
   u8 cmd, u8 poll_bit)
 {
-   struct spi_slave *spi = flash-spi;
unsigned long timebase;
int ret;
u8 status;
 
-   ret = spi_xfer(spi, 8, cmd, NULL, SPI_XFER_BEGIN);
-   if (ret) {
-   debug(SF: Failed to send command %02x: %d\n, cmd, ret);
-   return ret;
-   }
-
timebase = get_timer(0);
do {
WATCHDOG_RESET();
 
-   ret = spi_xfer(spi, 8, NULL, status, 0);
-   if (ret)
-   return -1;
+   ret = spi_flash_read_common(flash, cmd, 1, status, 1);
+   if (ret  0) {
+   debug(SF: fail to read read status register\n);
+   return ret;
+   }
 
if ((status  poll_bit) == 0)
break;
 
} while (get_timer(timebase)  timeout);
 
-   spi_xfer(spi, 0, NULL, NULL, SPI_XFER_END);
-
if ((status  poll_bit) == 0)
return 0;
 
-- 
1.8.3


___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot