summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuan Manuel Cruz <juan.m.cruz.alcaraz@intel.com>2016-11-17 12:14:21 -0600
committerAnas Nashif <nashif@linux.intel.com>2016-11-18 23:19:21 +0000
commit3e1d001f9b2ecce8c0a9d319610fb6cc051c75a1 (patch)
treec225991352369ce5c07262ac64c4b99ffb08bb69
parent66a07bbd48dfb64a2bc819b937413d47473aed77 (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.c8
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);