diff options
Diffstat (limited to 'bsps/shared/dev/i2c/spi-memdrv.c')
-rw-r--r-- | bsps/shared/dev/i2c/spi-memdrv.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/bsps/shared/dev/i2c/spi-memdrv.c b/bsps/shared/dev/i2c/spi-memdrv.c index 593029732e..f3308e8fe1 100644 --- a/bsps/shared/dev/i2c/spi-memdrv.c +++ b/bsps/shared/dev/i2c/spi-memdrv.c @@ -365,26 +365,23 @@ rtems_status_code spi_memdrv_read rc = rtems_libi2c_send_addr(minor,TRUE); } - if (off >= mem_param_ptr->mem_size) { + if (rc == RTEMS_SUCCESSFUL) { /* * HACK: beyond size of memory array? then read status register instead */ - /* - * send read status register command - */ - if (rc == RTEMS_SUCCESSFUL) { + if (off >= mem_param_ptr->mem_size) { + /* + * send read status register command + */ cmdbuf[0] = SPI_MEM_CMD_RDSR; ret_cnt = rtems_libi2c_write_bytes(minor,cmdbuf,1); if (ret_cnt < 0) { rc = -ret_cnt; } - } - } - else { - /* - * send read command and address - */ - if (rc == RTEMS_SUCCESSFUL) { + } else { + /* + * send read command and address + */ cmdbuf[0] = SPI_MEM_CMD_READ; if (mem_param_ptr->mem_size > 0x10000 /* 256*256 */) { cmdbuf[1] = (off >> 16) & 0xff; |