Message ID | 20240921190721.6082-1-sean@mess.org |
---|---|
State | New |
Headers | show |
Series | media: gpio-ir-tx: Driver does not behave with PREEMPT_RT | expand |
On 2024-09-21 20:07:20 [+0100], Sean Young wrote: > This driver bit-bangs a signal with interrupts disabled. The signal can > last for up to half a second (IR_MAX_DURATION). > > A much better way of transmitting IR is using the pwm-ir-tx driver, > which does not disable interrupts. If you have to spin to make the signal exact and there is no other way then be may guest. Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> But RT or not, spinning for up to 0.5s is a lot. Is this 0.5s in total or 0.5 * count? Anyway, gpio_ir_tx_unmodulated() and gpio_ir_tx_modulated() have local_irq_disable() in there which can be removed. It got introduced in commit 1451b93223bbe ("media: gpio-ir-tx: spinlock is not needed to disable interrupts") but the previous irq-save is enough. > Signed-off-by: Sean Young <sean@mess.org> Sebastian
diff --git a/drivers/media/rc/Kconfig b/drivers/media/rc/Kconfig index 74d69ce22a33e..0a8aeafdb7e07 100644 --- a/drivers/media/rc/Kconfig +++ b/drivers/media/rc/Kconfig @@ -184,6 +184,7 @@ config IR_GPIO_TX tristate "GPIO IR Bit Banging Transmitter" depends on LIRC depends on (OF && GPIOLIB) || COMPILE_TEST + depends on !PREEMPT_RT help Say Y if you want to a GPIO based IR transmitter. This is a bit banging driver.
This driver bit-bangs a signal with interrupts disabled. The signal can last for up to half a second (IR_MAX_DURATION). A much better way of transmitting IR is using the pwm-ir-tx driver, which does not disable interrupts. Signed-off-by: Sean Young <sean@mess.org> --- drivers/media/rc/Kconfig | 1 + 1 file changed, 1 insertion(+)