* [Patch 11/20] V4L(913) Saa713x cards with i2c remotes now autoload ir kbd i2c
@ 2005-11-07 2:58 mchehab
0 siblings, 0 replies; only message in thread
From: mchehab @ 2005-11-07 2:58 UTC (permalink / raw)
To: linux-kernel; +Cc: akpm, video4linux-list, Ricardo Cerqueira
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 3543 bytes --]
From: Ricardo Cerqueira <v4l@cerqueira.org>
- 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>
-----------------
drivers/media/video/saa7134/saa7134-cards.c | 9 +++++++--
drivers/media/video/saa7134/saa7134-core.c | 4 +++-
drivers/media/video/saa7134/saa7134-input.c | 3 ++-
drivers/media/video/saa7134/saa7134.h | 6 ++++++
4 files changed, 18 insertions(+), 4 deletions(-)
--- hg.orig/drivers/media/video/saa7134/saa7134-cards.c
+++ hg/drivers/media/video/saa7134/saa7134-cards.c
@@ -3038,7 +3038,7 @@ int saa7134_board_init1(struct saa7134_d
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_d
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_d
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;
}
--- hg.orig/drivers/media/video/saa7134/saa7134-core.c
+++ hg/drivers/media/video/saa7134/saa7134-core.c
@@ -712,10 +712,12 @@ static int saa7134_hwinit2(struct saa713
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);
--- hg.orig/drivers/media/video/saa7134/saa7134.h
+++ hg/drivers/media/video/saa7134/saa7134.h
@@ -213,6 +213,12 @@ struct saa7134_format {
#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 */
#define SET_T_CODE_POLARITY_NON_INVERTED (1 << 0)
--- hg.orig/drivers/media/video/saa7134/saa7134-input.c
+++ hg/drivers/media/video/saa7134/saa7134-input.c
@@ -716,7 +716,7 @@ int saa7134_input_init1(struct saa7134_d
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_d
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;
}
_______________________________________________________
Yahoo! Acesso Grátis: Internet rápida e grátis.
Instale o discador agora!
http://br.acesso.yahoo.com/
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2005-11-07 3:19 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-11-07 2:58 [Patch 11/20] V4L(913) Saa713x cards with i2c remotes now autoload ir kbd i2c mchehab
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.