diff options
author | Mauro Carvalho Chehab <m.chehab@samsung.com> | 2014-07-28 14:25:28 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <m.chehab@samsung.com> | 2014-07-30 16:05:08 -0300 |
commit | 3aaa633ee096bfe085c346314d076204e75b7d35 (patch) | |
tree | 8c616bf20f5ec25a1dd661f289329f22b35058d6 | |
parent | 4ad262ba0ad409fc7fce481ba98e3ff8efffd309 (diff) | |
download | linux-3.10-3aaa633ee096bfe085c346314d076204e75b7d35.tar.gz linux-3.10-3aaa633ee096bfe085c346314d076204e75b7d35.tar.bz2 linux-3.10-3aaa633ee096bfe085c346314d076204e75b7d35.zip |
upstream: [media] rc-main: allow raw protocol drivers to restrict the allowed protos
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>
-rw-r--r-- | drivers/media/rc/rc-main.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c index ecbc20c4252..e4c8a0e7e14 100644 --- a/drivers/media/rc/rc-main.c +++ b/drivers/media/rc/rc-main.c @@ -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; } |