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);