rc: raw decoder for keymap protocol is not loaded on register
commit413808685dupstream. 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:acc1c3c("[media] media: rc: load decoder modules on-demand") Signed-off-by: Sean Young <sean@mess.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
21582cd0b6
commit
39df5977fd
@ -1411,6 +1411,7 @@ int rc_register_device(struct rc_dev *dev)
|
||||
int attr = 0;
|
||||
int minor;
|
||||
int rc;
|
||||
u64 rc_type;
|
||||
|
||||
if (!dev || !dev->map_name)
|
||||
return -EINVAL;
|
||||
@ -1496,14 +1497,18 @@ int rc_register_device(struct rc_dev *dev)
|
||||
goto out_input;
|
||||
}
|
||||
|
||||
rc_type = BIT_ULL(rc_map->rc_type);
|
||||
|
||||
if (dev->change_protocol) {
|
||||
u64 rc_type = (1ll << rc_map->rc_type);
|
||||
rc = dev->change_protocol(dev, &rc_type);
|
||||
if (rc < 0)
|
||||
goto out_raw;
|
||||
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 */
|
||||
atomic_set(&dev->initialized, 1);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user