Commit 1cda2908 authored by Sean Young's avatar Sean Young Committed by Greg Kroah-Hartman

rc: raw decoder for keymap protocol is not loaded on register

commit 41380868 upstream.

When the protocol is set via the sysfs protocols attribute, the
decoder is loaded. However, when it is not when a device is first
plugged in or registered.

Fixes: acc1c3c6 ("[media] media: rc: load decoder modules on-demand")
Signed-off-by: default avatarSean Young <sean@mess.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 22fc2f9e
...@@ -1441,6 +1441,7 @@ int rc_register_device(struct rc_dev *dev) ...@@ -1441,6 +1441,7 @@ int rc_register_device(struct rc_dev *dev)
int attr = 0; int attr = 0;
int minor; int minor;
int rc; int rc;
u64 rc_type;
if (!dev || !dev->map_name) if (!dev || !dev->map_name)
return -EINVAL; return -EINVAL;
...@@ -1526,14 +1527,18 @@ int rc_register_device(struct rc_dev *dev) ...@@ -1526,14 +1527,18 @@ int rc_register_device(struct rc_dev *dev)
goto out_input; goto out_input;
} }
rc_type = BIT_ULL(rc_map->rc_type);
if (dev->change_protocol) { if (dev->change_protocol) {
u64 rc_type = (1ll << rc_map->rc_type);
rc = dev->change_protocol(dev, &rc_type); rc = dev->change_protocol(dev, &rc_type);
if (rc < 0) if (rc < 0)
goto out_raw; goto out_raw;
dev->enabled_protocols = rc_type; dev->enabled_protocols = rc_type;
} }
if (dev->driver_type == RC_DRIVER_IR_RAW)
ir_raw_load_modules(&rc_type);
/* Allow the RC sysfs nodes to be accessible */ /* Allow the RC sysfs nodes to be accessible */
atomic_set(&dev->initialized, 1); atomic_set(&dev->initialized, 1);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment