diff options
Diffstat (limited to 'drivers/media/video/em28xx/em28xx-cards.c')
-rw-r--r-- | drivers/media/video/em28xx/em28xx-cards.c | 18 |
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 | }; |
430 | const unsigned int em28xx_bcount = ARRAY_SIZE(em28xx_boards); | 443 | const unsigned int em28xx_bcount = ARRAY_SIZE(em28xx_boards); |
431 | 444 | ||
@@ -522,6 +535,7 @@ static struct em28xx_hash_table em28xx_eeprom_hash [] = { | |||
522 | static struct em28xx_hash_table em28xx_i2c_hash[] = { | 535 | static 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 | ||
527 | int em28xx_tuner_callback(void *ptr, int command, int arg) | 541 | int 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; |