[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: Ricardo Cerqueira <v4l@cerqueira.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
f1bcef8874
commit
cb2444dfa2
4 changed files with 18 additions and 4 deletions
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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 */
|
||||
|
||||
|
|
Loading…
Reference in a new issue