Skip to content

Commit 4165186

Browse files
henrikbrixandersenfabiobaltieri
authored andcommitted
drivers: can: stm32: 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 78d6ba5 commit 4165186

File tree

2 files changed

+2
-15
lines changed

2 files changed

+2
-15
lines changed

drivers/can/can_stm32.c

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,7 @@ static struct k_mutex filter_mutex;
5656

5757
static void can_stm32_signal_tx_complete(const struct device *dev, struct can_stm32_mailbox *mb)
5858
{
59-
if (mb->tx_callback) {
60-
mb->tx_callback(dev, mb->error, mb->callback_arg);
61-
} else {
62-
k_sem_give(&mb->tx_int_sem);
63-
}
59+
mb->tx_callback(dev, mb->error, mb->callback_arg);
6460
}
6561

6662
static void can_stm32_rx_fifo_pop(CAN_FIFOMailBox_TypeDef *mbox, struct can_frame *frame)
@@ -561,9 +557,6 @@ static int can_stm32_init(const struct device *dev)
561557
k_mutex_init(&filter_mutex);
562558
k_mutex_init(&data->inst_mutex);
563559
k_sem_init(&data->tx_int_sem, 0, 1);
564-
k_sem_init(&data->mb0.tx_int_sem, 0, 1);
565-
k_sem_init(&data->mb1.tx_int_sem, 0, 1);
566-
k_sem_init(&data->mb2.tx_int_sem, 0, 1);
567560

568561
if (cfg->phy != NULL) {
569562
if (!device_is_ready(cfg->phy)) {
@@ -741,6 +734,7 @@ static int can_stm32_send(const struct device *dev, const struct can_frame *fram
741734
"standard" : "extended"
742735
, frame->rtr == CAN_DATAFRAME ? "no" : "yes");
743736

737+
__ASSERT_NO_MSG(callback != NULL);
744738
__ASSERT(frame->dlc == 0U || frame->data != NULL, "Dataptr is null");
745739

746740
if (frame->dlc > CAN_MAX_DLC) {
@@ -784,7 +778,6 @@ static int can_stm32_send(const struct device *dev, const struct can_frame *fram
784778

785779
mb->tx_callback = callback;
786780
mb->callback_arg = user_data;
787-
k_sem_reset(&mb->tx_int_sem);
788781

789782
/* mailbox identifier register setup */
790783
mailbox->TIR &= CAN_TI0R_TXRQ;
@@ -809,11 +802,6 @@ static int can_stm32_send(const struct device *dev, const struct can_frame *fram
809802
mailbox->TIR |= CAN_TI0R_TXRQ;
810803
k_mutex_unlock(&data->inst_mutex);
811804

812-
if (callback == NULL) {
813-
k_sem_take(&mb->tx_int_sem, K_FOREVER);
814-
return mb->error;
815-
}
816-
817805
return 0;
818806
}
819807

drivers/can/can_stm32.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
struct can_stm32_mailbox {
2626
can_tx_callback_t tx_callback;
2727
void *callback_arg;
28-
struct k_sem tx_int_sem;
2928
int error;
3029
};
3130

0 commit comments

Comments
 (0)