Raw IR transmitters do not need any thread listening for
occurring events. Check the driver type before running the
thread.

Signed-off-by: Andi Shyti <andi.sh...@samsung.com>
Reviewed-by: Sean Young <s...@mess.org>
---
 drivers/media/rc/rc-ir-raw.c | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/drivers/media/rc/rc-ir-raw.c b/drivers/media/rc/rc-ir-raw.c
index 1c42a9f..9938e42 100644
--- a/drivers/media/rc/rc-ir-raw.c
+++ b/drivers/media/rc/rc-ir-raw.c
@@ -270,12 +270,19 @@ int ir_raw_event_register(struct rc_dev *dev)
        INIT_KFIFO(dev->raw->kfifo);
 
        spin_lock_init(&dev->raw->lock);
-       dev->raw->thread = kthread_run(ir_raw_event_thread, dev->raw,
-                                      "rc%u", dev->minor);
 
-       if (IS_ERR(dev->raw->thread)) {
-               rc = PTR_ERR(dev->raw->thread);
-               goto out;
+       /*
+        * raw transmitters do not need any event registration
+        * because the event is coming from userspace
+        */
+       if (dev->driver_type != RC_DRIVER_IR_RAW_TX) {
+               dev->raw->thread = kthread_run(ir_raw_event_thread, dev->raw,
+                                              "rc%u", dev->minor);
+
+               if (IS_ERR(dev->raw->thread)) {
+                       rc = PTR_ERR(dev->raw->thread);
+                       goto out;
+               }
        }
 
        mutex_lock(&ir_raw_handler_lock);
-- 
2.10.2

Reply via email to