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

[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
...@@ -3038,7 +3038,7 @@ int saa7134_board_init1(struct saa7134_dev *dev) ...@@ -3038,7 +3038,7 @@ int saa7134_board_init1(struct saa7134_dev *dev)
switch (dev->board) { switch (dev->board) {
case SAA7134_BOARD_FLYVIDEO2000: case SAA7134_BOARD_FLYVIDEO2000:
case SAA7134_BOARD_FLYVIDEO3000: case SAA7134_BOARD_FLYVIDEO3000:
dev->has_remote = 1; dev->has_remote = SAA7134_REMOTE_GPIO;
board_flyvideo(dev); board_flyvideo(dev);
break; break;
case SAA7134_BOARD_FLYTVPLATINUM_MINI2: case SAA7134_BOARD_FLYTVPLATINUM_MINI2:
...@@ -3068,7 +3068,7 @@ int saa7134_board_init1(struct saa7134_dev *dev) ...@@ -3068,7 +3068,7 @@ int saa7134_board_init1(struct saa7134_dev *dev)
case SAA7134_BOARD_GOTVIEW_7135: case SAA7134_BOARD_GOTVIEW_7135:
case SAA7134_BOARD_KWORLD_TERMINATOR: case SAA7134_BOARD_KWORLD_TERMINATOR:
case SAA7134_BOARD_PCTV_CARDBUS: case SAA7134_BOARD_PCTV_CARDBUS:
dev->has_remote = 1; dev->has_remote = SAA7134_REMOTE_GPIO;
break; break;
case SAA7134_BOARD_MD5044: case SAA7134_BOARD_MD5044:
printk("%s: seems there are two different versions of the MD5044\n" printk("%s: seems there are two different versions of the MD5044\n"
...@@ -3108,6 +3108,11 @@ int saa7134_board_init1(struct saa7134_dev *dev) ...@@ -3108,6 +3108,11 @@ int saa7134_board_init1(struct saa7134_dev *dev)
saa_writeb (SAA7134_PRODUCTION_TEST_MODE, 0x00); saa_writeb (SAA7134_PRODUCTION_TEST_MODE, 0x00);
break; break;
/* i2c remotes */
case SAA7134_BOARD_PINNACLE_PCTV_110i:
case SAA7134_BOARD_UPMOST_PURPLE_TV:
dev->has_remote = SAA7134_REMOTE_I2C;
break;
} }
return 0; return 0;
} }
......
...@@ -712,10 +712,12 @@ static int saa7134_hwinit2(struct saa7134_dev *dev) ...@@ -712,10 +712,12 @@ static int saa7134_hwinit2(struct saa7134_dev *dev)
SAA7134_IRQ2_INTE_PE | SAA7134_IRQ2_INTE_PE |
SAA7134_IRQ2_INTE_AR; SAA7134_IRQ2_INTE_AR;
if (dev->has_remote) if (dev->has_remote == SAA7134_REMOTE_GPIO)
irq2_mask |= (SAA7134_IRQ2_INTE_GPIO18 | irq2_mask |= (SAA7134_IRQ2_INTE_GPIO18 |
SAA7134_IRQ2_INTE_GPIO18A | SAA7134_IRQ2_INTE_GPIO18A |
SAA7134_IRQ2_INTE_GPIO16 ); 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_IRQ1, 0);
saa_writel(SAA7134_IRQ2, irq2_mask); saa_writel(SAA7134_IRQ2, irq2_mask);
......
...@@ -716,7 +716,7 @@ int saa7134_input_init1(struct saa7134_dev *dev) ...@@ -716,7 +716,7 @@ int saa7134_input_init1(struct saa7134_dev *dev)
int polling = 0; int polling = 0;
int ir_type = IR_TYPE_OTHER; int ir_type = IR_TYPE_OTHER;
if (!dev->has_remote) if (dev->has_remote != SAA7134_REMOTE_GPIO)
return -ENODEV; return -ENODEV;
if (disable_ir) if (disable_ir)
return -ENODEV; return -ENODEV;
...@@ -877,6 +877,7 @@ void saa7134_input_fini(struct saa7134_dev *dev) ...@@ -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) void saa7134_set_i2c_ir(struct saa7134_dev *dev, struct IR_i2c *ir)
{ {
if (disable_ir) { if (disable_ir) {
dprintk("Found supported i2c remote, but IR has been disabled\n");
ir->get_key=NULL; ir->get_key=NULL;
return; return;
} }
......
...@@ -212,6 +212,12 @@ struct saa7134_format { ...@@ -212,6 +212,12 @@ struct saa7134_format {
#define SAA7134_MAXBOARDS 8 #define SAA7134_MAXBOARDS 8
#define SAA7134_INPUT_MAX 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 */ /* Video Output Port Register Initialization Options */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment