Skip to content

Commit d245529

Browse files
maass-hamburghenrikbrixandersen
authored andcommitted
drivers: serial: litex: remove unneeded soft irq
remove unneeded soft irq, as disabeled irqs will still be registered, but just not propagated to the cpu until it is enabled again. Signed-off-by: Fin Maaß <[email protected]>
1 parent 911b3da commit d245529

File tree

1 file changed

+0
-23
lines changed

1 file changed

+0
-23
lines changed

drivers/serial/uart_litex.c

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ struct uart_litex_device_config {
3636

3737
struct uart_litex_data {
3838
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
39-
struct k_timer timer;
4039
uart_irq_callback_user_data_t callback;
4140
void *cb_data;
4241
#endif
@@ -94,20 +93,10 @@ static int uart_litex_poll_in(const struct device *dev, unsigned char *c)
9493
static void uart_litex_irq_tx_enable(const struct device *dev)
9594
{
9695
const struct uart_litex_device_config *config = dev->config;
97-
struct uart_litex_data *data = dev->data;
9896

9997
uint8_t enable = litex_read8(config->ev_enable_addr);
10098

10199
litex_write8(enable | UART_EV_TX, config->ev_enable_addr);
102-
103-
if (!litex_read8(config->txfull_addr)) {
104-
/*
105-
* TX done event already generated an edge interrupt. Generate a
106-
* soft interrupt and have it call the callback function in
107-
* timer isr context.
108-
*/
109-
k_timer_start(&data->timer, K_NO_WAIT, K_NO_WAIT);
110-
}
111100
}
112101

113102
/**
@@ -298,13 +287,6 @@ static void uart_litex_irq_handler(const struct device *dev)
298287

299288
irq_unlock(key);
300289
}
301-
302-
static void uart_litex_tx_soft_isr(struct k_timer *timer)
303-
{
304-
const struct device *dev = k_timer_user_data_get(timer);
305-
306-
uart_litex_irq_handler(dev);
307-
}
308290
#endif /* CONFIG_UART_INTERRUPT_DRIVEN */
309291

310292
static DEVICE_API(uart, uart_litex_driver_api) = {
@@ -335,11 +317,6 @@ static int uart_litex_init(const struct device *dev)
335317
litex_write8(UART_EV_TX | UART_EV_RX, config->ev_pending_addr);
336318

337319
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
338-
struct uart_litex_data *data = dev->data;
339-
340-
k_timer_init(&data->timer, &uart_litex_tx_soft_isr, NULL);
341-
k_timer_user_data_set(&data->timer, (void *)dev);
342-
343320
config->config_func(dev);
344321
#endif
345322

0 commit comments

Comments
 (0)