]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/media/rc/rc-main.c
Revert "[media] rc: rc-loopback: Add loopback of filter scancodes"
[karo-tx-linux.git] / drivers / media / rc / rc-main.c
index f8c5e47a30aa7058f9e01f678c56060084a0cbe9..9d015db652808fcb54fc0abfff19e9018dbad488 100644 (file)
@@ -746,7 +746,7 @@ void rc_close(struct rc_dev *rdev)
        if (rdev) {
                mutex_lock(&rdev->lock);
 
-                if (!--rdev->users && rdev->close != NULL)
+               if (!--rdev->users && rdev->close != NULL)
                        rdev->close(rdev);
 
                mutex_unlock(&rdev->lock);
@@ -865,6 +865,8 @@ static ssize_t show_protocols(struct device *device,
        } else {
                enabled = dev->enabled_wakeup_protocols;
                allowed = dev->allowed_wakeup_protocols;
+               if (dev->encode_wakeup && !allowed)
+                       allowed = ir_raw_get_encode_protocols();
        }
 
        mutex_unlock(&dev->lock);
@@ -1406,13 +1408,16 @@ int rc_register_device(struct rc_dev *dev)
                path ? path : "N/A");
        kfree(path);
 
-       if (dev->driver_type == RC_DRIVER_IR_RAW) {
+       if (dev->driver_type == RC_DRIVER_IR_RAW || dev->encode_wakeup) {
                /* Load raw decoders, if they aren't already */
                if (!raw_init) {
                        IR_dprintk(1, "Loading raw decoders\n");
                        ir_raw_init();
                        raw_init = true;
                }
+       }
+
+       if (dev->driver_type == RC_DRIVER_IR_RAW) {
                /* calls ir_register_device so unlock mutex here*/
                mutex_unlock(&dev->lock);
                rc = ir_raw_event_register(dev);