diff mbox series

media: gpio-ir-tx: Driver does not behave with PREEMPT_RT

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

Commit Message

Sean Young Sept. 21, 2024, 7:07 p.m. UTC
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(+)

Comments

Sebastian Andrzej Siewior Oct. 2, 2024, 1:48 p.m. UTC | #1
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 mbox series

Patch

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.