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

Commit cb2444df authored by Ricardo Cerqueira's avatar Ricardo Cerqueira Committed by Linus Torvalds
Browse files

[PATCH] V4L: 913: saa713x cards with i2c remotes now autoload ir-kbd-i2c



SAA713x cards with i2c remotes now autoload ir-kbd-i2c (disable_ir works, as
it does for GPIO remotes)

Signed-off-by: default avatarRicardo Cerqueira <v4l@cerqueira.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent f1bcef88
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -3038,7 +3038,7 @@ int saa7134_board_init1(struct saa7134_dev *dev)
	switch (dev->board) {
	case SAA7134_BOARD_FLYVIDEO2000:
	case SAA7134_BOARD_FLYVIDEO3000:
		dev->has_remote = 1;
		dev->has_remote = SAA7134_REMOTE_GPIO;
		board_flyvideo(dev);
		break;
	case SAA7134_BOARD_FLYTVPLATINUM_MINI2:
@@ -3068,7 +3068,7 @@ int saa7134_board_init1(struct saa7134_dev *dev)
	case SAA7134_BOARD_GOTVIEW_7135:
	case SAA7134_BOARD_KWORLD_TERMINATOR:
	case SAA7134_BOARD_PCTV_CARDBUS:
		dev->has_remote = 1;
		dev->has_remote = SAA7134_REMOTE_GPIO;
		break;
	case SAA7134_BOARD_MD5044:
		printk("%s: seems there are two different versions of the MD5044\n"
@@ -3108,6 +3108,11 @@ int saa7134_board_init1(struct saa7134_dev *dev)

		saa_writeb (SAA7134_PRODUCTION_TEST_MODE, 0x00);
		break;
	/* i2c remotes */
	case SAA7134_BOARD_PINNACLE_PCTV_110i:
	case SAA7134_BOARD_UPMOST_PURPLE_TV:
		dev->has_remote = SAA7134_REMOTE_I2C;
		break;
	}
	return 0;
}
+3 −1
Original line number Diff line number Diff line
@@ -712,10 +712,12 @@ static int saa7134_hwinit2(struct saa7134_dev *dev)
		SAA7134_IRQ2_INTE_PE      |
		SAA7134_IRQ2_INTE_AR;

	if (dev->has_remote)
	if (dev->has_remote == SAA7134_REMOTE_GPIO)
		irq2_mask |= (SAA7134_IRQ2_INTE_GPIO18  |
			      SAA7134_IRQ2_INTE_GPIO18A |
			      SAA7134_IRQ2_INTE_GPIO16  );
	else if (dev->has_remote == SAA7134_REMOTE_I2C)
		request_module("ir-kbd-i2c");

	saa_writel(SAA7134_IRQ1, 0);
	saa_writel(SAA7134_IRQ2, irq2_mask);
+2 −1
Original line number Diff line number Diff line
@@ -716,7 +716,7 @@ int saa7134_input_init1(struct saa7134_dev *dev)
	int polling      = 0;
	int ir_type      = IR_TYPE_OTHER;

	if (!dev->has_remote)
	if (dev->has_remote != SAA7134_REMOTE_GPIO)
		return -ENODEV;
	if (disable_ir)
		return -ENODEV;
@@ -877,6 +877,7 @@ void saa7134_input_fini(struct saa7134_dev *dev)
void saa7134_set_i2c_ir(struct saa7134_dev *dev, struct IR_i2c *ir)
{
	if (disable_ir) {
		dprintk("Found supported i2c remote, but IR has been disabled\n");
		ir->get_key=NULL;
		return;
	}
+6 −0
Original line number Diff line number Diff line
@@ -212,6 +212,12 @@ struct saa7134_format {
#define SAA7134_MAXBOARDS 8
#define SAA7134_INPUT_MAX 8

/* ----------------------------------------------------------- */
/* Since we support 2 remote types, lets tell them apart       */

#define SAA7134_REMOTE_GPIO  1
#define SAA7134_REMOTE_I2C   2

/* ----------------------------------------------------------- */
/* Video Output Port Register Initialization Options           */