diff options
author | Juan Manuel Cruz <juan.m.cruz.alcaraz@intel.com> | 2016-11-17 12:14:21 -0600 |
---|---|---|
committer | Anas Nashif <nashif@linux.intel.com> | 2016-11-18 23:19:21 +0000 |
commit | 3e1d001f9b2ecce8c0a9d319610fb6cc051c75a1 (patch) | |
tree | c225991352369ce5c07262ac64c4b99ffb08bb69 | |
parent | 66a07bbd48dfb64a2bc819b937413d47473aed77 (diff) |
enc28j60: Fixes an issue reading/writing long frames from SPI
Jira: ZEP-1302
Change-Id: Ia58d51aee14281aaeb2f8e85fbbf8c250eae8e06
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@intel.com>
-rw-r--r-- | drivers/ethernet/eth_enc28j60.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/ethernet/eth_enc28j60.c b/drivers/ethernet/eth_enc28j60.c index a2259971e..894492d6f 100644 --- a/drivers/ethernet/eth_enc28j60.c +++ b/drivers/ethernet/eth_enc28j60.c @@ -132,7 +132,7 @@ static void eth_enc28j60_clear_eth_reg(struct device *dev, uint16_t reg_addr, } static void eth_enc28j60_write_mem(struct device *dev, uint8_t *data_buffer, - uint8_t buf_len) + uint16_t buf_len) { struct eth_enc28j60_runtime *context = dev->driver_data; uint8_t tx_buf[MAX_BUFFER_LENGTH + 1]; @@ -149,7 +149,7 @@ static void eth_enc28j60_write_mem(struct device *dev, uint8_t *data_buffer, tx_buf[0] = ENC28J60_SPI_WBM; for (int i = 0; i < num_segments; - ++i, index_buf += i * MAX_BUFFER_LENGTH) { + ++i, index_buf += MAX_BUFFER_LENGTH) { memcpy(tx_buf + 1, index_buf, MAX_BUFFER_LENGTH); @@ -164,7 +164,7 @@ static void eth_enc28j60_write_mem(struct device *dev, uint8_t *data_buffer, } static void eth_enc28j60_read_mem(struct device *dev, uint8_t *data_buffer, - uint8_t buf_len) + uint16_t buf_len) { struct eth_enc28j60_runtime *context = dev->driver_data; uint8_t *index_buf; @@ -181,7 +181,7 @@ static void eth_enc28j60_read_mem(struct device *dev, uint8_t *data_buffer, tx_buf[0] = ENC28J60_SPI_RBM; for (int i = 0; i < num_segments; - ++i, index_buf += i * MAX_BUFFER_LENGTH) { + ++i, index_buf += MAX_BUFFER_LENGTH) { spi_transceive(context->spi, tx_buf, MAX_BUFFER_LENGTH + 1, tx_buf, MAX_BUFFER_LENGTH + 1); |