aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/em28xx/em28xx-cards.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video/em28xx/em28xx-cards.c')
-rw-r--r--drivers/media/video/em28xx/em28xx-cards.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c
index 938c51e1c86d..05f0d5a15058 100644
--- a/drivers/media/video/em28xx/em28xx-cards.c
+++ b/drivers/media/video/em28xx/em28xx-cards.c
@@ -426,6 +426,19 @@ struct em28xx_board em28xx_boards[] = {
426 .amux = EM28XX_AMUX_LINE_IN, 426 .amux = EM28XX_AMUX_LINE_IN,
427 } }, 427 } },
428 }, 428 },
429 [EM2860_BOARD_POINTNIX_INTRAORAL_CAMERA] = {
430 .name = "PointNix Intra-Oral Camera",
431 .has_snapshot_button = 1,
432 .vchannels = 1,
433 .tda9887_conf = TDA9887_PRESENT,
434 .tuner_type = TUNER_ABSENT,
435 .decoder = EM28XX_SAA7113,
436 .input = { {
437 .type = EM28XX_VMUX_SVIDEO,
438 .vmux = SAA7115_SVIDEO3,
439 .amux = 0,
440 } },
441 },
429}; 442};
430const unsigned int em28xx_bcount = ARRAY_SIZE(em28xx_boards); 443const unsigned int em28xx_bcount = ARRAY_SIZE(em28xx_boards);
431 444
@@ -522,6 +535,7 @@ static struct em28xx_hash_table em28xx_eeprom_hash [] = {
522static struct em28xx_hash_table em28xx_i2c_hash[] = { 535static struct em28xx_hash_table em28xx_i2c_hash[] = {
523 {0xb06a32c3, EM2800_BOARD_TERRATEC_CINERGY_200, TUNER_LG_PAL_NEW_TAPC}, 536 {0xb06a32c3, EM2800_BOARD_TERRATEC_CINERGY_200, TUNER_LG_PAL_NEW_TAPC},
524 {0xf51200e3, EM2800_BOARD_VGEAR_POCKETTV, TUNER_LG_PAL_NEW_TAPC}, 537 {0xf51200e3, EM2800_BOARD_VGEAR_POCKETTV, TUNER_LG_PAL_NEW_TAPC},
538 {0x1ba50080, EM2860_BOARD_POINTNIX_INTRAORAL_CAMERA, TUNER_ABSENT},
525}; 539};
526 540
527int em28xx_tuner_callback(void *ptr, int command, int arg) 541int em28xx_tuner_callback(void *ptr, int command, int arg)
@@ -554,6 +568,7 @@ static void em28xx_set_model(struct em28xx *dev)
554 dev->has_12mhz_i2s = em28xx_boards[dev->model].has_12mhz_i2s; 568 dev->has_12mhz_i2s = em28xx_boards[dev->model].has_12mhz_i2s;
555 dev->max_range_640_480 = em28xx_boards[dev->model].max_range_640_480; 569 dev->max_range_640_480 = em28xx_boards[dev->model].max_range_640_480;
556 dev->has_dvb = em28xx_boards[dev->model].has_dvb; 570 dev->has_dvb = em28xx_boards[dev->model].has_dvb;
571 dev->has_snapshot_button = em28xx_boards[dev->model].has_snapshot_button;
557} 572}
558 573
559/* Since em28xx_pre_card_setup() requires a proper dev->model, 574/* Since em28xx_pre_card_setup() requires a proper dev->model,
@@ -841,6 +856,9 @@ void em28xx_card_setup(struct em28xx *dev)
841 em28xx_set_model(dev); 856 em28xx_set_model(dev);
842 } 857 }
843 858
859 if (dev->has_snapshot_button)
860 em28xx_register_snapshot_button(dev);
861
844 /* Allow override tuner type by a module parameter */ 862 /* Allow override tuner type by a module parameter */
845 if (tuner >= 0) 863 if (tuner >= 0)
846 dev->tuner_type = tuner; 864 dev->tuner_type = tuner;