diff options
Diffstat (limited to 'drivers/media/video/cx88/cx88-cards.c')
-rw-r--r-- | drivers/media/video/cx88/cx88-cards.c | 38 |
1 files changed, 10 insertions, 28 deletions
diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c index 746ccaf40cfa..cf2d2c3a33a6 100644 --- a/drivers/media/video/cx88/cx88-cards.c +++ b/drivers/media/video/cx88/cx88-cards.c | |||
@@ -1083,44 +1083,26 @@ static void hauppauge_eeprom(struct cx88_core *core, u8 *eeprom_data) | |||
1083 | tveeprom_hauppauge_analog(&core->i2c_client, &tv, eeprom_data); | 1083 | tveeprom_hauppauge_analog(&core->i2c_client, &tv, eeprom_data); |
1084 | core->tuner_type = tv.tuner_type; | 1084 | core->tuner_type = tv.tuner_type; |
1085 | core->has_radio = tv.has_radio; | 1085 | core->has_radio = tv.has_radio; |
1086 | } | ||
1087 | |||
1088 | /* fixme: This is bogus code... add new pnp code to parse or see tveeprom.ko */ | ||
1089 | static int hauppauge_eeprom_dvb(struct cx88_core *core, u8 *ee) | ||
1090 | { | ||
1091 | int model; | ||
1092 | int tuner; | ||
1093 | 1086 | ||
1094 | /* Make sure we support the board model */ | 1087 | /* Make sure we support the board model */ |
1095 | model = ee[0x1f] << 24 | ee[0x1e] << 16 | ee[0x1d] << 8 | ee[0x1c]; | 1088 | switch (tv.model) |
1096 | switch(model) { | 1089 | { |
1097 | case 90002: /* Nova-T-PCI (9002) */ | 1090 | case 90002: /* Nova-T-PCI (9002) */ |
1098 | case 90500: /* Nova-T-PCI (oem) */ | 1091 | case 90500: /* Nova-T-PCI (oem) */ |
1099 | case 90501: /* Nova-T-PCI (oem/IR) */ | 1092 | case 90501: /* Nova-T-PCI (oem/IR) */ |
1100 | case 92000: /* Nova-S-Plus */ | 1093 | case 92000: /* Nova-SE2 (OEM, No Video or IR) */ |
1101 | case 92002: /* Nova-SE2 */ | 1094 | case 92001: /* Nova-S-Plus (Video and IR) */ |
1095 | case 92002: /* Nova-S-Plus (Video and IR) */ | ||
1102 | /* known */ | 1096 | /* known */ |
1103 | break; | 1097 | break; |
1104 | default: | 1098 | default: |
1105 | printk("%s: warning: unknown hauppauge model #%d\n", | 1099 | printk("%s: warning: unknown hauppauge model #%d\n", |
1106 | core->name, model); | 1100 | core->name, tv.model); |
1107 | break; | 1101 | break; |
1108 | } | 1102 | } |
1109 | 1103 | ||
1110 | /* Make sure we support the tuner */ | 1104 | printk(KERN_INFO "%s: hauppauge eeprom: model=%d\n", |
1111 | tuner = ee[0x2d]; | 1105 | core->name, tv.model); |
1112 | switch(tuner) { | ||
1113 | case 0x4B: /* dtt 7595 */ | ||
1114 | case 0x4C: /* dtt 7592 */ | ||
1115 | break; | ||
1116 | default: | ||
1117 | printk("%s: error: unknown hauppauge tuner 0x%02x\n", | ||
1118 | core->name, tuner); | ||
1119 | return -ENODEV; | ||
1120 | } | ||
1121 | printk(KERN_INFO "%s: hauppauge eeprom: model=%d, tuner=%d\n", | ||
1122 | core->name, model, tuner); | ||
1123 | return 0; | ||
1124 | } | 1106 | } |
1125 | 1107 | ||
1126 | /* ----------------------------------------------------------------------- */ | 1108 | /* ----------------------------------------------------------------------- */ |
@@ -1204,7 +1186,7 @@ void cx88_card_list(struct cx88_core *core, struct pci_dev *pci) | |||
1204 | 1186 | ||
1205 | void cx88_card_setup(struct cx88_core *core) | 1187 | void cx88_card_setup(struct cx88_core *core) |
1206 | { | 1188 | { |
1207 | static u8 eeprom[128]; | 1189 | static u8 eeprom[256]; |
1208 | 1190 | ||
1209 | if (0 == core->i2c_rc) { | 1191 | if (0 == core->i2c_rc) { |
1210 | core->i2c_client.addr = 0xa0 >> 1; | 1192 | core->i2c_client.addr = 0xa0 >> 1; |
@@ -1227,7 +1209,7 @@ void cx88_card_setup(struct cx88_core *core) | |||
1227 | break; | 1209 | break; |
1228 | case CX88_BOARD_HAUPPAUGE_DVB_T1: | 1210 | case CX88_BOARD_HAUPPAUGE_DVB_T1: |
1229 | if (0 == core->i2c_rc) | 1211 | if (0 == core->i2c_rc) |
1230 | hauppauge_eeprom_dvb(core,eeprom); | 1212 | hauppauge_eeprom(core,eeprom); |
1231 | break; | 1213 | break; |
1232 | case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T1: | 1214 | case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T1: |
1233 | case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PLUS: | 1215 | case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PLUS: |