upstream: [media] rc-main: allow raw protocol drivers to restrict the allowed protos
authorMauro Carvalho Chehab <m.chehab@samsung.com>
Mon, 28 Jul 2014 17:25:28 +0000 (14:25 -0300)
committerChanho Park <chanho61.park@samsung.com>
Thu, 7 Aug 2014 06:17:56 +0000 (15:17 +0900)
On some hardware (au0828/au8522), the hardware is broken with
regards to the initial pulse detection. So, the driver needs to
produce a fake start pulse. That limits the acceptable protocols,
as it is not possible to produce a fake pulse that would cover
all supported protocols.

So, allow the driver to explicitly set the allowed protocols.

If the driver doesn't specify, keep the old behavior.

Backports http://git.linuxtv.org/cgit.cgi/media_tree.git/commit/?id=d24b69fc6b0a
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/rc/rc-main.c

index ecbc20c..e4c8a0e 100644 (file)
@@ -860,9 +860,11 @@ static ssize_t show_protocols(struct device *device,
        if (dev->driver_type == RC_DRIVER_SCANCODE ||
            fattr->type == RC_FILTER_WAKEUP)
                allowed = dev->allowed_protocols[fattr->type];
-       else if (dev->raw)
-               allowed = ir_raw_get_allowed_protocols();
-       else {
+       else if (dev->raw) {
+               allowed = dev->allowed_protocols[fattr->type];
+               if (!allowed)
+                       allowed = ir_raw_get_allowed_protocols();
+       } else {
                mutex_unlock(&dev->lock);
                return -ENODEV;
        }