Merge pull request #16620 from MrKevinWeiss/pr/sx126x/fix_netdev_write

drivers/sx126x: fix netdev send and recv function [backport 2021.07]
This commit is contained in:
José Alamos 2021-07-07 18:10:38 +02:00 committed by GitHub
commit ecbafcdaab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -51,23 +51,24 @@ static int _send(netdev_t *netdev, const iolist_t *iolist)
return -ENOTSUP;
}
uint8_t size = iolist_size(iolist);
/* Ignore send if packet size is 0 */
if (!size) {
return 0;
}
DEBUG("[sx126x] netdev: sending packet now (size: %d).\n", size);
size_t pos = 0;
/* Write payload buffer */
for (const iolist_t *iol = iolist; iol; iol = iol->iol_next) {
if (iol->iol_len > 0) {
sx126x_set_lora_payload_length(dev, iol->iol_len);
sx126x_write_buffer(dev, 0, iol->iol_base, iol->iol_len);
sx126x_write_buffer(dev, pos, iol->iol_base, iol->iol_len);
DEBUG("[sx126x] netdev: send: wrote data to payload buffer.\n");
pos += iol->iol_len;
}
}
/* Ignore send if packet size is 0 */
if (!pos) {
return 0;
}
DEBUG("[sx126x] netdev: sending packet now (size: %d).\n", pos);
sx126x_set_lora_payload_length(dev, pos);
state = NETOPT_STATE_TX;
netdev->driver->set(netdev, NETOPT_STATE, &state, sizeof(uint8_t));
DEBUG("[sx126x] netdev: send: transmission in progress.\n");
@ -107,7 +108,7 @@ static int _recv(netdev_t *netdev, void *buf, size_t len, void *info)
sx126x_read_buffer(dev, rx_buffer_status.buffer_start_pointer, buf, size);
return 0;
return size;
}
static int _init(netdev_t *netdev)