[media] rc-ir-raw: do not generate any receiving thread for raw transmitters
authorAndi Shyti <andi.shyti@samsung.com>
Fri, 16 Dec 2016 06:12:16 +0000 (04:12 -0200)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Mon, 30 Jan 2017 16:14:39 +0000 (14:14 -0200)
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.shyti@samsung.com>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/rc/rc-ir-raw.c

index 4cad5c4..7fa84b6 100644 (file)
@@ -502,12 +502,18 @@ int ir_raw_event_register(struct rc_dev *dev)
        dev->change_protocol = change_protocol;
        INIT_KFIFO(dev->raw->kfifo);
 
-       dev->raw->thread = kthread_run(ir_raw_event_thread, dev->raw,
-                                      "rc%u", dev->minor);
+       /*
+        * 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;
+               if (IS_ERR(dev->raw->thread)) {
+                       rc = PTR_ERR(dev->raw->thread);
+                       goto out;
+               }
        }
 
        mutex_lock(&ir_raw_handler_lock);