Skip to content

Commit a99a55e

Browse files
henrikbrixandersenfabiobaltieri
authored andcommitted
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 <[email protected]>
1 parent 50d77ab commit a99a55e

File tree

1 file changed

+3
-12
lines changed

1 file changed

+3
-12
lines changed

drivers/can/can_native_posix_linux.c

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ struct can_npl_data {
3232
struct can_filter_context filters[CONFIG_CAN_MAX_FILTER];
3333
struct k_mutex filter_mutex;
3434
struct k_sem tx_idle;
35-
struct k_sem tx_done;
3635
can_tx_callback_t tx_callback;
3736
void *tx_user_data;
3837
bool loopback;
@@ -95,12 +94,7 @@ static void rx_thread(void *arg1, void *arg2, void *arg3)
9594
count = linux_socketcan_read_data(data->dev_fd, (void *)(&sframe),
9695
sizeof(sframe), &msg_confirm);
9796
if (msg_confirm) {
98-
if (data->tx_callback != NULL) {
99-
data->tx_callback(dev, 0, data->tx_user_data);
100-
} else {
101-
k_sem_give(&data->tx_done);
102-
}
103-
97+
data->tx_callback(dev, 0, data->tx_user_data);
10498
k_sem_give(&data->tx_idle);
10599

106100
if (!data->loopback) {
@@ -142,6 +136,8 @@ static int can_npl_send(const struct device *dev, const struct can_frame *frame,
142136
"standard" : "extended",
143137
frame->rtr == CAN_DATAFRAME ? "" : ", RTR frame");
144138

139+
__ASSERT_NO_MSG(callback != NULL);
140+
145141
#ifdef CONFIG_CAN_FD_MODE
146142
if (data->mode_fd && frame->fd == 1) {
147143
max_dlc = CANFD_MAX_DLC;
@@ -177,10 +173,6 @@ static int can_npl_send(const struct device *dev, const struct can_frame *frame,
177173
LOG_ERR("Cannot send CAN data len %d (%d)", sframe.len, -errno);
178174
}
179175

180-
if (callback == NULL) {
181-
k_sem_take(&data->tx_done, K_FOREVER);
182-
}
183-
184176
return 0;
185177
}
186178

@@ -455,7 +447,6 @@ static int can_npl_init(const struct device *dev)
455447

456448
k_mutex_init(&data->filter_mutex);
457449
k_sem_init(&data->tx_idle, 1, 1);
458-
k_sem_init(&data->tx_done, 0, 1);
459450

460451
data->dev_fd = linux_socketcan_iface_open(cfg->if_name);
461452
if (data->dev_fd < 0) {

0 commit comments

Comments
 (0)