Commit 34f01dd2 authored by Lucas Russo's avatar Lucas Russo

sm_io/chips/*: fix data size handling

The smpr_[write/read]_block () functions
return the number of data bytes actually
written. So, we must follow the same
convention on checking for errors.
parent e4c97f0d
......@@ -771,10 +771,13 @@ static ssize_t _smch_ad9510_write_8 (smch_ad9510_t *self, uint8_t addr,
AD9510_HDR_BT_W(0x0) |
AD9510_HDR_ADDR_W(addr)
);
size_t __addr_size = AD9510_INSTADDR_SIZE/SMPR_BYTE_2_BIT;
uint32_t __data = AD9510_DATA_W(*data);
ssize_t smpr_err = smpr_write_block (self->spi, AD9510_INSTADDR_SIZE/SMPR_BYTE_2_BIT, __addr,
AD9510_DATA_SIZE/SMPR_BYTE_2_BIT, &__data);
ASSERT_TEST(smpr_err == sizeof(uint32_t), "Could not write to SMPR",
size_t __data_size = AD9510_DATA_SIZE/SMPR_BYTE_2_BIT;
ssize_t smpr_err = smpr_write_block (self->spi, __addr_size, __addr,
__data_size, &__data);
ASSERT_TEST(smpr_err == __data_size, "Could not write to SMPR",
err_smpr_write, -1);
err_smpr_write:
......@@ -798,10 +801,13 @@ static ssize_t _smch_ad9510_read_8 (smch_ad9510_t *self, uint8_t addr,
AD9510_HDR_BT_W(0x0) |
AD9510_HDR_ADDR_W(addr)
);
size_t __addr_size = AD9510_INSTADDR_SIZE/SMPR_BYTE_2_BIT;
uint32_t __data = 0;
ssize_t smpr_err = smpr_read_block (self->spi, AD9510_INSTADDR_SIZE/SMPR_BYTE_2_BIT, __addr,
AD9510_DATA_SIZE/SMPR_BYTE_2_BIT, &__data);
ASSERT_TEST(smpr_err == sizeof(uint32_t), "Could not write to SMPR",
size_t __data_size = AD9510_DATA_SIZE/SMPR_BYTE_2_BIT;
ssize_t smpr_err = smpr_read_block (self->spi, __addr_size, __addr,
__data_size, &__data);
ASSERT_TEST(smpr_err == __data_size, "Could not read to SMPR",
err_smpr_write, -1);
/* Only the 8 LSB are valid for one byte reading (AD9510_HDR_BT_W(0x0)) */
......
......@@ -226,11 +226,13 @@ static ssize_t _smch_isla216p_write_8 (smch_isla216p_t *self, uint8_t addr,
ISLA216P_HDR_BT_W(0x0) |
ISLA216P_HDR_ADDR_W(addr)
);
size_t __addr_size = ISLA216P_INSTADDR_SIZE/SMPR_BYTE_2_BIT;
uint32_t __data = ISLA216P_DATA_W(*data);
size_t __data_size = ISLA216P_DATA_SIZE/SMPR_BYTE_2_BIT;
ssize_t smpr_err = smpr_write_block (self->proto, ISLA216P_INSTADDR_SIZE/SMPR_BYTE_2_BIT,
__addr, ISLA216P_DATA_SIZE/SMPR_BYTE_2_BIT, &__data);
ASSERT_TEST(smpr_err == sizeof(uint32_t), "Could not write to SMPR",
ssize_t smpr_err = smpr_write_block (self->proto, __addr_size,
__addr, __data_size, &__data);
ASSERT_TEST(smpr_err == __data_size, "Could not write to SMPR",
err_smpr_write, -1);
err_smpr_write:
......@@ -254,11 +256,13 @@ static ssize_t _smch_isla216p_read_8 (smch_isla216p_t *self, uint8_t addr,
ISLA216P_HDR_BT_W(0x0) |
ISLA216P_HDR_ADDR_W(addr)
);
size_t __addr_size = ISLA216P_INSTADDR_SIZE/SMPR_BYTE_2_BIT;
uint32_t __data = 0;
size_t __data_size = ISLA216P_DATA_SIZE/SMPR_BYTE_2_BIT;
ssize_t smpr_err = smpr_read_block (self->proto, ISLA216P_INSTADDR_SIZE/SMPR_BYTE_2_BIT,
__addr, ISLA216P_DATA_SIZE/SMPR_BYTE_2_BIT, &__data);
ASSERT_TEST(smpr_err == sizeof(uint32_t), "Could not write to SMPR",
ssize_t smpr_err = smpr_read_block (self->proto, __addr_size,
__addr, __data_size, &__data);
ASSERT_TEST(smpr_err == __data_size, "Could not write to SMPR",
err_smpr_write, -1);
/* Only the 8 LSB are valid for one byte reading (ISLA216P_HDR_BT_W(0x0)) */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment