drivers: can: npl: assume can_send() always provides callback
Given the recent change to the CAN controller can_send() API wrapper,
assume that a callback is always provided at the driver level.
Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
diff --git a/drivers/can/can_native_posix_linux.c b/drivers/can/can_native_posix_linux.c
index 1a1d01b..354a5d9 100644
--- a/drivers/can/can_native_posix_linux.c
+++ b/drivers/can/can_native_posix_linux.c
@@ -32,7 +32,6 @@
struct can_filter_context filters[CONFIG_CAN_MAX_FILTER];
struct k_mutex filter_mutex;
struct k_sem tx_idle;
- struct k_sem tx_done;
can_tx_callback_t tx_callback;
void *tx_user_data;
bool loopback;
@@ -95,12 +94,7 @@
count = linux_socketcan_read_data(data->dev_fd, (void *)(&sframe),
sizeof(sframe), &msg_confirm);
if (msg_confirm) {
- if (data->tx_callback != NULL) {
- data->tx_callback(dev, 0, data->tx_user_data);
- } else {
- k_sem_give(&data->tx_done);
- }
-
+ data->tx_callback(dev, 0, data->tx_user_data);
k_sem_give(&data->tx_idle);
if (!data->loopback) {
@@ -142,6 +136,8 @@
"standard" : "extended",
frame->rtr == CAN_DATAFRAME ? "" : ", RTR frame");
+ __ASSERT_NO_MSG(callback != NULL);
+
#ifdef CONFIG_CAN_FD_MODE
if (data->mode_fd && frame->fd == 1) {
max_dlc = CANFD_MAX_DLC;
@@ -177,10 +173,6 @@
LOG_ERR("Cannot send CAN data len %d (%d)", sframe.len, -errno);
}
- if (callback == NULL) {
- k_sem_take(&data->tx_done, K_FOREVER);
- }
-
return 0;
}
@@ -455,7 +447,6 @@
k_mutex_init(&data->filter_mutex);
k_sem_init(&data->tx_idle, 1, 1);
- k_sem_init(&data->tx_done, 0, 1);
data->dev_fd = linux_socketcan_iface_open(cfg->if_name);
if (data->dev_fd < 0) {