aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/video/saa7134/saa7134-cards.c33
-rw-r--r--drivers/media/video/saa7134/saa7134.h2
2 files changed, 33 insertions, 2 deletions
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c
index 138cec8bb023..533fb02394fb 100644
--- a/drivers/media/video/saa7134/saa7134-cards.c
+++ b/drivers/media/video/saa7134/saa7134-cards.c
@@ -26,6 +26,7 @@
26#include "saa7134-reg.h" 26#include "saa7134-reg.h"
27#include "saa7134.h" 27#include "saa7134.h"
28#include <media/v4l2-common.h> 28#include <media/v4l2-common.h>
29#include <media/tveeprom.h>
29 30
30/* commly used strings */ 31/* commly used strings */
31static char name_mute[] = "mute"; 32static char name_mute[] = "mute";
@@ -4381,6 +4382,34 @@ static void board_flyvideo(struct saa7134_dev *dev)
4381 4382
4382/* ----------------------------------------------------------- */ 4383/* ----------------------------------------------------------- */
4383 4384
4385static void hauppauge_eeprom(struct saa7134_dev *dev, u8 *eeprom_data)
4386{
4387 struct tveeprom tv;
4388
4389 tveeprom_hauppauge_analog(&dev->i2c_client, &tv, eeprom_data);
4390
4391 /* Make sure we support the board model */
4392 switch (tv.model) {
4393 case 67019: /* WinTV-HVR1110 (Retail, IR Blaster, hybrid, FM, SVid/Comp, 3.5mm audio in) */
4394 case 67109: /* WinTV-HVR1000 (Retail, IR Receive, analog, no FM, SVid/Comp, 3.5mm audio in) */
4395 case 67559: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM, SVid/Comp, RCA aud) */
4396 case 67569: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM) */
4397 case 67579: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM) */
4398 case 67589: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM, SVid/Comp, RCA aud) */
4399 case 67599: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM, SVid/Comp, RCA aud) */
4400 break;
4401 default:
4402 printk(KERN_WARNING "%s: warning: "
4403 "unknown hauppauge model #%d\n", dev->name, tv.model);
4404 break;
4405 }
4406
4407 printk(KERN_INFO "%s: hauppauge eeprom: model=%d\n",
4408 dev->name, tv.model);
4409}
4410
4411/* ----------------------------------------------------------- */
4412
4384int saa7134_board_init1(struct saa7134_dev *dev) 4413int saa7134_board_init1(struct saa7134_dev *dev)
4385{ 4414{
4386 /* Always print gpio, often manufacturers encode tuner type and other info. */ 4415 /* Always print gpio, often manufacturers encode tuner type and other info. */
@@ -4661,13 +4690,15 @@ int saa7134_board_init2(struct saa7134_dev *dev)
4661 i2c_transfer(&dev->i2c_adap, &msg, 1); 4690 i2c_transfer(&dev->i2c_adap, &msg, 1);
4662 } 4691 }
4663 break; 4692 break;
4693 case SAA7134_BOARD_HAUPPAUGE_HVR1110:
4694 hauppauge_eeprom(dev, dev->eedata+0x80);
4695 /* break intentionally omitted */
4664 case SAA7134_BOARD_PINNACLE_PCTV_310i: 4696 case SAA7134_BOARD_PINNACLE_PCTV_310i:
4665 case SAA7134_BOARD_KWORLD_DVBT_210: 4697 case SAA7134_BOARD_KWORLD_DVBT_210:
4666 case SAA7134_BOARD_TEVION_DVBT_220RF: 4698 case SAA7134_BOARD_TEVION_DVBT_220RF:
4667 case SAA7134_BOARD_ASUSTeK_P7131_DUAL: 4699 case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
4668 case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA: 4700 case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA:
4669 case SAA7134_BOARD_MEDION_MD8800_QUADRO: 4701 case SAA7134_BOARD_MEDION_MD8800_QUADRO:
4670 case SAA7134_BOARD_HAUPPAUGE_HVR1110:
4671 /* this is a hybrid board, initialize to analog mode 4702 /* this is a hybrid board, initialize to analog mode
4672 * and configure firmware eeprom address 4703 * and configure firmware eeprom address
4673 */ 4704 */
diff --git a/drivers/media/video/saa7134/saa7134.h b/drivers/media/video/saa7134/saa7134.h
index 16f4b5ce34d9..a531e3c6c941 100644
--- a/drivers/media/video/saa7134/saa7134.h
+++ b/drivers/media/video/saa7134/saa7134.h
@@ -481,7 +481,7 @@ struct saa7134_dev {
481 /* i2c i/o */ 481 /* i2c i/o */
482 struct i2c_adapter i2c_adap; 482 struct i2c_adapter i2c_adap;
483 struct i2c_client i2c_client; 483 struct i2c_client i2c_client;
484 unsigned char eedata[128]; 484 unsigned char eedata[256];
485 485
486 /* video overlay */ 486 /* video overlay */
487 struct v4l2_framebuffer ovbuf; 487 struct v4l2_framebuffer ovbuf;