[media] em28xx: initialize button/I2C IR earlier
The em28xx-input is used by 3 different types of input devices: - devices with buttons (like cameras and grabber devices); - devices with I2C remotes; - em2860 or latter chips with RC support embedded. When the device has an I2C remote, all it needs to do is to call the proper I2C driver (ir-i2c-kbd), passing the proper data to it, and just leave the code. Also, button devices have its own init code that doesn't depend on having an IR or not (as a general rule, they don't have). So, move its init code to fix bugs introduced by earlier patches that prevent them to work. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
8cd7085ff4
commit
8303dc9952
|
@ -590,6 +590,17 @@ static int em28xx_ir_init(struct em28xx *dev)
|
|||
int err = -ENOMEM;
|
||||
u64 rc_type;
|
||||
|
||||
if (dev->board.has_snapshot_button)
|
||||
em28xx_register_snapshot_button(dev);
|
||||
|
||||
if (dev->board.has_ir_i2c) {
|
||||
em28xx_register_i2c_ir(dev);
|
||||
#if defined(CONFIG_MODULES) && defined(MODULE)
|
||||
request_module("ir-kbd-i2c");
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (dev->board.ir_codes == NULL) {
|
||||
/* No remote control support */
|
||||
em28xx_warn("Remote control support is not available for "
|
||||
|
@ -663,15 +674,6 @@ static int em28xx_ir_init(struct em28xx *dev)
|
|||
if (err)
|
||||
goto error;
|
||||
|
||||
em28xx_register_i2c_ir(dev);
|
||||
|
||||
#if defined(CONFIG_MODULES) && defined(MODULE)
|
||||
if (dev->board.has_ir_i2c)
|
||||
request_module("ir-kbd-i2c");
|
||||
#endif
|
||||
if (dev->board.has_snapshot_button)
|
||||
em28xx_register_snapshot_button(dev);
|
||||
|
||||
return 0;
|
||||
|
||||
error:
|
||||
|
|
Loading…
Reference in New Issue