@@ -56,11 +56,7 @@ static struct k_mutex filter_mutex;
5656
5757static 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
6662static 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
0 commit comments