Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8303dc99 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab
Browse files

[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: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 8cd7085f
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -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: