aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx88
diff options
context:
space:
mode:
authorSteven Toth <stoth@hauppauge.com>2006-01-09 12:25:17 -0500
committerMauro Carvalho Chehab <mchehab@brturbo.com.br>2006-01-09 12:25:17 -0500
commit0345c387de72b5d7fbfeda9d92818fa7013a6d1c (patch)
tree2d1b8277b7c5989aa1c8f75fa25f51f881c7a4ae /drivers/media/video/cx88
parent2304759d7e5debbd400eca6e9bb979a186c798a9 (diff)
V4L/DVB (3112): Several fixes for Hauppauge Roselyn Design (blackbird)
- This patch adds eeprom awareness for the Roslyn. In effect, the blackbird will query the tuner V4L2_STD_xxxx definitions to determine whether it's connected to a NTSC or PAL tuner. Based on that, various default values will change for blackbird encoding. - Fixes back panel SVIDEO/COMPOSITE with audio, work properly. - Fixes a problem with lip sync issues, due to bad framerate vs audio rate assumptions. - Fixed a problem with the GPIO configuration in cx88-cards. - Removed the comments in cx88-cards that made no sense. Signed-off-by: Steven Toth <stoth@hauppauge.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Diffstat (limited to 'drivers/media/video/cx88')
-rw-r--r--drivers/media/video/cx88/cx88-blackbird.c12
-rw-r--r--drivers/media/video/cx88/cx88-cards.c6
-rw-r--r--drivers/media/video/cx88/cx88-tvaudio.c6
-rw-r--r--drivers/media/video/cx88/cx88.h3
4 files changed, 24 insertions, 3 deletions
diff --git a/drivers/media/video/cx88/cx88-blackbird.c b/drivers/media/video/cx88/cx88-blackbird.c
index 74e57a53116f..99bfa3238294 100644
--- a/drivers/media/video/cx88/cx88-blackbird.c
+++ b/drivers/media/video/cx88/cx88-blackbird.c
@@ -1689,6 +1689,18 @@ static int __devinit blackbird_probe(struct pci_dev *pci_dev,
1689 memcpy(&dev->params,&default_mpeg_params,sizeof(default_mpeg_params)); 1689 memcpy(&dev->params,&default_mpeg_params,sizeof(default_mpeg_params));
1690 memcpy(&dev->dnr_params,&default_dnr_params,sizeof(default_dnr_params)); 1690 memcpy(&dev->dnr_params,&default_dnr_params,sizeof(default_dnr_params));
1691 1691
1692 if (core->board == CX88_BOARD_HAUPPAUGE_ROSLYN) {
1693
1694 if (core->tuner_formats & V4L2_STD_525_60) {
1695 dev->height = 480;
1696 dev->params.vi_frame_rate = 30;
1697 } else {
1698 dev->height = 576;
1699 dev->params.vi_frame_rate = 25;
1700 }
1701
1702 }
1703
1692 err = cx8802_init_common(dev); 1704 err = cx8802_init_common(dev);
1693 if (0 != err) 1705 if (0 != err)
1694 goto fail_free; 1706 goto fail_free;
diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c
index c95438abcd7b..c20c07117537 100644
--- a/drivers/media/video/cx88/cx88-cards.c
+++ b/drivers/media/video/cx88/cx88-cards.c
@@ -611,12 +611,12 @@ struct cx88_board cx88_boards[] = {
611 .input = {{ 611 .input = {{
612 .type = CX88_VMUX_TELEVISION, 612 .type = CX88_VMUX_TELEVISION,
613 .vmux = 0, 613 .vmux = 0,
614 .gpio0 = 0xed12, /* internal decoder */ 614 .gpio0 = 0xed1a,
615 .gpio2 = 0x00ff, 615 .gpio2 = 0x00ff,
616 },{ 616 },{
617 .type = CX88_VMUX_DEBUG, 617 .type = CX88_VMUX_DEBUG,
618 .vmux = 0, 618 .vmux = 0,
619 .gpio0 = 0xff01, /* mono from tuner chip */ 619 .gpio0 = 0xff01,
620 },{ 620 },{
621 .type = CX88_VMUX_COMPOSITE1, 621 .type = CX88_VMUX_COMPOSITE1,
622 .vmux = 1, 622 .vmux = 1,
@@ -1202,11 +1202,13 @@ static void hauppauge_eeprom(struct cx88_core *core, u8 *eeprom_data)
1202 1202
1203 tveeprom_hauppauge_analog(&core->i2c_client, &tv, eeprom_data); 1203 tveeprom_hauppauge_analog(&core->i2c_client, &tv, eeprom_data);
1204 core->tuner_type = tv.tuner_type; 1204 core->tuner_type = tv.tuner_type;
1205 core->tuner_formats = tv.tuner_formats;
1205 core->has_radio = tv.has_radio; 1206 core->has_radio = tv.has_radio;
1206 1207
1207 /* Make sure we support the board model */ 1208 /* Make sure we support the board model */
1208 switch (tv.model) 1209 switch (tv.model)
1209 { 1210 {
1211 case 28552: /* WinTV-PVR 'Roslyn' (No IR) */
1210 case 90002: /* Nova-T-PCI (9002) */ 1212 case 90002: /* Nova-T-PCI (9002) */
1211 case 92001: /* Nova-S-Plus (Video and IR) */ 1213 case 92001: /* Nova-S-Plus (Video and IR) */
1212 case 92002: /* Nova-S-Plus (Video and IR) */ 1214 case 92002: /* Nova-S-Plus (Video and IR) */
diff --git a/drivers/media/video/cx88/cx88-tvaudio.c b/drivers/media/video/cx88/cx88-tvaudio.c
index a1b120c8a9b5..00051a4c1dc2 100644
--- a/drivers/media/video/cx88/cx88-tvaudio.c
+++ b/drivers/media/video/cx88/cx88-tvaudio.c
@@ -139,7 +139,11 @@ static void set_audio_finish(struct cx88_core *core, u32 ctl)
139 139
140 if (cx88_boards[core->board].blackbird) { 140 if (cx88_boards[core->board].blackbird) {
141 /* sets sound input from external adc */ 141 /* sets sound input from external adc */
142 cx_set(AUD_CTL, EN_I2SIN_ENABLE); 142 if (core->board == CX88_BOARD_HAUPPAUGE_ROSLYN)
143 cx_clear(AUD_CTL, EN_I2SIN_ENABLE);
144 else
145 cx_set(AUD_CTL, EN_I2SIN_ENABLE);
146
143 cx_write(AUD_I2SINPUTCNTL, 4); 147 cx_write(AUD_I2SINPUTCNTL, 4);
144 cx_write(AUD_BAUDRATE, 1); 148 cx_write(AUD_BAUDRATE, 1);
145 /* 'pass-thru mode': this enables the i2s output to the mpeg encoder */ 149 /* 'pass-thru mode': this enables the i2s output to the mpeg encoder */
diff --git a/drivers/media/video/cx88/cx88.h b/drivers/media/video/cx88/cx88.h
index 3e2bcd241a27..0bbf68b325c4 100644
--- a/drivers/media/video/cx88/cx88.h
+++ b/drivers/media/video/cx88/cx88.h
@@ -285,6 +285,9 @@ struct cx88_core {
285 unsigned int tda9887_conf; 285 unsigned int tda9887_conf;
286 unsigned int has_radio; 286 unsigned int has_radio;
287 287
288 /* Supported V4L _STD_ tuner formats */
289 unsigned int tuner_formats;
290
288 /* config info -- dvb */ 291 /* config info -- dvb */
289 struct dvb_pll_desc *pll_desc; 292 struct dvb_pll_desc *pll_desc;
290 unsigned int pll_addr; 293 unsigned int pll_addr;