|
@@ -414,6 +414,41 @@ static int __saa7134_ir_start(void *priv)
|
|
if (ir->running)
|
|
if (ir->running)
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
|
|
+ /* Moved here from saa7134_input_init1() because the latter
|
|
|
|
+ * is not called on device resume */
|
|
|
|
+ switch (dev->board) {
|
|
|
|
+ case SAA7134_BOARD_MD2819:
|
|
|
|
+ case SAA7134_BOARD_KWORLD_VSTREAM_XPERT:
|
|
|
|
+ case SAA7134_BOARD_AVERMEDIA_305:
|
|
|
|
+ case SAA7134_BOARD_AVERMEDIA_307:
|
|
|
|
+ case SAA7134_BOARD_AVERMEDIA_STUDIO_305:
|
|
|
|
+ case SAA7134_BOARD_AVERMEDIA_STUDIO_505:
|
|
|
|
+ case SAA7134_BOARD_AVERMEDIA_STUDIO_307:
|
|
|
|
+ case SAA7134_BOARD_AVERMEDIA_STUDIO_507:
|
|
|
|
+ case SAA7134_BOARD_AVERMEDIA_STUDIO_507UA:
|
|
|
|
+ case SAA7134_BOARD_AVERMEDIA_GO_007_FM:
|
|
|
|
+ case SAA7134_BOARD_AVERMEDIA_M102:
|
|
|
|
+ case SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS:
|
|
|
|
+ /* Without this we won't receive key up events */
|
|
|
|
+ saa_setb(SAA7134_GPIO_GPMODE0, 0x4);
|
|
|
|
+ saa_setb(SAA7134_GPIO_GPSTATUS0, 0x4);
|
|
|
|
+ break;
|
|
|
|
+ case SAA7134_BOARD_AVERMEDIA_777:
|
|
|
|
+ case SAA7134_BOARD_AVERMEDIA_A16AR:
|
|
|
|
+ /* Without this we won't receive key up events */
|
|
|
|
+ saa_setb(SAA7134_GPIO_GPMODE1, 0x1);
|
|
|
|
+ saa_setb(SAA7134_GPIO_GPSTATUS1, 0x1);
|
|
|
|
+ break;
|
|
|
|
+ case SAA7134_BOARD_AVERMEDIA_A16D:
|
|
|
|
+ /* Without this we won't receive key up events */
|
|
|
|
+ saa_setb(SAA7134_GPIO_GPMODE1, 0x1);
|
|
|
|
+ saa_setb(SAA7134_GPIO_GPSTATUS1, 0x1);
|
|
|
|
+ break;
|
|
|
|
+ case SAA7134_BOARD_GOTVIEW_7135:
|
|
|
|
+ saa_setb(SAA7134_GPIO_GPMODE1, 0x80);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+
|
|
ir->running = true;
|
|
ir->running = true;
|
|
ir->active = false;
|
|
ir->active = false;
|
|
|
|
|
|
@@ -548,9 +583,7 @@ int saa7134_input_init1(struct saa7134_dev *dev)
|
|
mask_keycode = 0x0007C8;
|
|
mask_keycode = 0x0007C8;
|
|
mask_keydown = 0x000010;
|
|
mask_keydown = 0x000010;
|
|
polling = 50; // ms
|
|
polling = 50; // ms
|
|
- /* Set GPIO pin2 to high to enable the IR controller */
|
|
|
|
- saa_setb(SAA7134_GPIO_GPMODE0, 0x4);
|
|
|
|
- saa_setb(SAA7134_GPIO_GPSTATUS0, 0x4);
|
|
|
|
|
|
+ /* GPIO stuff moved to __saa7134_ir_start() */
|
|
break;
|
|
break;
|
|
case SAA7134_BOARD_AVERMEDIA_M135A:
|
|
case SAA7134_BOARD_AVERMEDIA_M135A:
|
|
ir_codes = RC_MAP_AVERMEDIA_M135A;
|
|
ir_codes = RC_MAP_AVERMEDIA_M135A;
|
|
@@ -572,18 +605,14 @@ int saa7134_input_init1(struct saa7134_dev *dev)
|
|
mask_keycode = 0x02F200;
|
|
mask_keycode = 0x02F200;
|
|
mask_keydown = 0x000400;
|
|
mask_keydown = 0x000400;
|
|
polling = 50; // ms
|
|
polling = 50; // ms
|
|
- /* Without this we won't receive key up events */
|
|
|
|
- saa_setb(SAA7134_GPIO_GPMODE1, 0x1);
|
|
|
|
- saa_setb(SAA7134_GPIO_GPSTATUS1, 0x1);
|
|
|
|
|
|
+ /* GPIO stuff moved to __saa7134_ir_start() */
|
|
break;
|
|
break;
|
|
case SAA7134_BOARD_AVERMEDIA_A16D:
|
|
case SAA7134_BOARD_AVERMEDIA_A16D:
|
|
ir_codes = RC_MAP_AVERMEDIA_A16D;
|
|
ir_codes = RC_MAP_AVERMEDIA_A16D;
|
|
mask_keycode = 0x02F200;
|
|
mask_keycode = 0x02F200;
|
|
mask_keydown = 0x000400;
|
|
mask_keydown = 0x000400;
|
|
polling = 50; /* ms */
|
|
polling = 50; /* ms */
|
|
- /* Without this we won't receive key up events */
|
|
|
|
- saa_setb(SAA7134_GPIO_GPMODE1, 0x1);
|
|
|
|
- saa_setb(SAA7134_GPIO_GPSTATUS1, 0x1);
|
|
|
|
|
|
+ /* GPIO stuff moved to __saa7134_ir_start() */
|
|
break;
|
|
break;
|
|
case SAA7134_BOARD_KWORLD_TERMINATOR:
|
|
case SAA7134_BOARD_KWORLD_TERMINATOR:
|
|
ir_codes = RC_MAP_PIXELVIEW;
|
|
ir_codes = RC_MAP_PIXELVIEW;
|
|
@@ -635,7 +664,7 @@ int saa7134_input_init1(struct saa7134_dev *dev)
|
|
mask_keycode = 0x0003CC;
|
|
mask_keycode = 0x0003CC;
|
|
mask_keydown = 0x000010;
|
|
mask_keydown = 0x000010;
|
|
polling = 5; /* ms */
|
|
polling = 5; /* ms */
|
|
- saa_setb(SAA7134_GPIO_GPMODE1, 0x80);
|
|
|
|
|
|
+ /* GPIO stuff moved to __saa7134_ir_start() */
|
|
break;
|
|
break;
|
|
case SAA7134_BOARD_VIDEOMATE_TV_PVR:
|
|
case SAA7134_BOARD_VIDEOMATE_TV_PVR:
|
|
case SAA7134_BOARD_VIDEOMATE_GOLD_PLUS:
|
|
case SAA7134_BOARD_VIDEOMATE_GOLD_PLUS:
|