aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/saa7134/saa7134-dvb.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video/saa7134/saa7134-dvb.c')
-rw-r--r--drivers/media/video/saa7134/saa7134-dvb.c197
1 files changed, 134 insertions, 63 deletions
diff --git a/drivers/media/video/saa7134/saa7134-dvb.c b/drivers/media/video/saa7134/saa7134-dvb.c
index 279828b8f299..b6881541e704 100644
--- a/drivers/media/video/saa7134/saa7134-dvb.c
+++ b/drivers/media/video/saa7134/saa7134-dvb.c
@@ -34,17 +34,14 @@
34#include <media/v4l2-common.h> 34#include <media/v4l2-common.h>
35#include "dvb-pll.h" 35#include "dvb-pll.h"
36 36
37#ifdef HAVE_MT352 37#include "mt352.h"
38# include "mt352.h" 38#include "mt352_priv.h" /* FIXME */
39# include "mt352_priv.h" /* FIXME */ 39#include "tda1004x.h"
40#endif 40#include "nxt200x.h"
41#ifdef HAVE_TDA1004X 41
42# include "tda1004x.h" 42#include "tda10086.h"
43#endif 43#include "tda826x.h"
44#ifdef HAVE_NXT200X 44#include "isl6421.h"
45# include "nxt200x.h"
46#endif
47
48MODULE_AUTHOR("Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]"); 45MODULE_AUTHOR("Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]");
49MODULE_LICENSE("GPL"); 46MODULE_LICENSE("GPL");
50 47
@@ -54,8 +51,6 @@ module_param(antenna_pwr, int, 0444);
54MODULE_PARM_DESC(antenna_pwr,"enable antenna power (Pinnacle 300i)"); 51MODULE_PARM_DESC(antenna_pwr,"enable antenna power (Pinnacle 300i)");
55 52
56/* ------------------------------------------------------------------ */ 53/* ------------------------------------------------------------------ */
57
58#ifdef HAVE_MT352
59static int pinnacle_antenna_pwr(struct saa7134_dev *dev, int on) 54static int pinnacle_antenna_pwr(struct saa7134_dev *dev, int on)
60{ 55{
61 u32 ok; 56 u32 ok;
@@ -185,12 +180,8 @@ static struct mt352_config avermedia_777 = {
185 .demod_address = 0xf, 180 .demod_address = 0xf,
186 .demod_init = mt352_aver777_init, 181 .demod_init = mt352_aver777_init,
187}; 182};
188#endif
189 183
190/* ------------------------------------------------------------------ */ 184/* ------------------------------------------------------------------ */
191
192#ifdef HAVE_TDA1004X
193
194static int philips_tda6651_pll_set(u8 addr, struct dvb_frontend *fe, struct dvb_frontend_parameters *params) 185static int philips_tda6651_pll_set(u8 addr, struct dvb_frontend *fe, struct dvb_frontend_parameters *params)
195{ 186{
196 struct saa7134_dev *dev = fe->dvb->priv; 187 struct saa7134_dev *dev = fe->dvb->priv;
@@ -969,11 +960,58 @@ static struct tda1004x_config tevion_dvbt220rf_config = {
969 .request_firmware = NULL, 960 .request_firmware = NULL,
970}; 961};
971 962
972#endif 963/* ------------------------------------------------------------------ */
964
965static int md8800_dvbt_analog_mode(struct dvb_frontend *fe)
966{
967 struct saa7134_dev *dev = fe->dvb->priv;
968 static u8 data[] = { 0x3c, 0x33, 0x68};
969 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
970
971 i2c_transfer(&dev->i2c_adap, &msg, 1);
972 philips_tda827xa_tuner_sleep( 0x61, fe);
973 return 0;
974}
975
976static int md8800_dvbt_pll_set(struct dvb_frontend *fe, struct dvb_frontend_parameters *params)
977{
978 int ret;
979 struct saa7134_dev *dev = fe->dvb->priv;
980 static u8 tda8290_close[] = { 0x21, 0xc0};
981 static u8 tda8290_open[] = { 0x21, 0x80};
982 struct i2c_msg tda8290_msg = {.addr = 0x4b,.flags = 0, .len = 2};
983 /* close tda8290 i2c bridge */
984 tda8290_msg.buf = tda8290_close;
985 ret = i2c_transfer(&dev->i2c_adap, &tda8290_msg, 1);
986 if (ret != 1)
987 return -EIO;
988 msleep(20);
989 ret = philips_tda827xa_pll_set(0x60, fe, params);
990 if (ret != 0)
991 return ret;
992 /* open tda8290 i2c bridge */
993 tda8290_msg.buf = tda8290_open;
994 i2c_transfer(&dev->i2c_adap, &tda8290_msg, 1);
995 return ret;
996}
997
998static struct tda1004x_config md8800_dvbt_config = {
999 .demod_address = 0x08,
1000 .invert = 1,
1001 .invert_oclk = 0,
1002 .xtal_freq = TDA10046_XTAL_16M,
1003 .agc_config = TDA10046_AGC_TDA827X,
1004 .if_freq = TDA10046_FREQ_045,
1005 .request_firmware = NULL,
1006};
1007
1008static struct tda10086_config flydvbs = {
1009 .demod_address = 0x0e,
1010 .invert = 0,
1011};
973 1012
974/* ------------------------------------------------------------------ */ 1013/* ------------------------------------------------------------------ */
975 1014
976#ifdef HAVE_NXT200X
977static struct nxt200x_config avertvhda180 = { 1015static struct nxt200x_config avertvhda180 = {
978 .demod_address = 0x0a, 1016 .demod_address = 0x0a,
979}; 1017};
@@ -991,7 +1029,6 @@ static struct nxt200x_config kworldatsc110 = {
991 .demod_address = 0x0a, 1029 .demod_address = 0x0a,
992 .set_pll_input = nxt200x_set_pll_input, 1030 .set_pll_input = nxt200x_set_pll_input,
993}; 1031};
994#endif
995 1032
996/* ------------------------------------------------------------------ */ 1033/* ------------------------------------------------------------------ */
997 1034
@@ -1009,29 +1046,26 @@ static int dvb_init(struct saa7134_dev *dev)
1009 dev); 1046 dev);
1010 1047
1011 switch (dev->board) { 1048 switch (dev->board) {
1012#ifdef HAVE_MT352
1013 case SAA7134_BOARD_PINNACLE_300I_DVBT_PAL: 1049 case SAA7134_BOARD_PINNACLE_300I_DVBT_PAL:
1014 printk("%s: pinnacle 300i dvb setup\n",dev->name); 1050 printk("%s: pinnacle 300i dvb setup\n",dev->name);
1015 dev->dvb.frontend = mt352_attach(&pinnacle_300i, 1051 dev->dvb.frontend = dvb_attach(mt352_attach, &pinnacle_300i,
1016 &dev->i2c_adap); 1052 &dev->i2c_adap);
1017 if (dev->dvb.frontend) { 1053 if (dev->dvb.frontend) {
1018 dev->dvb.frontend->ops.tuner_ops.set_params = mt352_pinnacle_tuner_set_params; 1054 dev->dvb.frontend->ops.tuner_ops.set_params = mt352_pinnacle_tuner_set_params;
1019 } 1055 }
1020 break; 1056 break;
1021
1022 case SAA7134_BOARD_AVERMEDIA_777: 1057 case SAA7134_BOARD_AVERMEDIA_777:
1023 printk("%s: avertv 777 dvb setup\n",dev->name); 1058 printk("%s: avertv 777 dvb setup\n",dev->name);
1024 dev->dvb.frontend = mt352_attach(&avermedia_777, 1059 dev->dvb.frontend = dvb_attach(mt352_attach, &avermedia_777,
1025 &dev->i2c_adap); 1060 &dev->i2c_adap);
1026 if (dev->dvb.frontend) { 1061 if (dev->dvb.frontend) {
1027 dev->dvb.frontend->ops.tuner_ops.calc_regs = mt352_aver777_tuner_calc_regs; 1062 dev->dvb.frontend->ops.tuner_ops.calc_regs = mt352_aver777_tuner_calc_regs;
1028 } 1063 }
1029 break; 1064 break;
1030#endif
1031#ifdef HAVE_TDA1004X
1032 case SAA7134_BOARD_MD7134: 1065 case SAA7134_BOARD_MD7134:
1033 dev->dvb.frontend = tda10046_attach(&medion_cardbus, 1066 dev->dvb.frontend = dvb_attach(tda10046_attach,
1034 &dev->i2c_adap); 1067 &medion_cardbus,
1068 &dev->i2c_adap);
1035 if (dev->dvb.frontend) { 1069 if (dev->dvb.frontend) {
1036 dev->dvb.frontend->ops.tuner_ops.init = philips_fmd1216_tuner_init; 1070 dev->dvb.frontend->ops.tuner_ops.init = philips_fmd1216_tuner_init;
1037 dev->dvb.frontend->ops.tuner_ops.sleep = philips_fmd1216_tuner_sleep; 1071 dev->dvb.frontend->ops.tuner_ops.sleep = philips_fmd1216_tuner_sleep;
@@ -1039,16 +1073,18 @@ static int dvb_init(struct saa7134_dev *dev)
1039 } 1073 }
1040 break; 1074 break;
1041 case SAA7134_BOARD_PHILIPS_TOUGH: 1075 case SAA7134_BOARD_PHILIPS_TOUGH:
1042 dev->dvb.frontend = tda10046_attach(&philips_tu1216_60_config, 1076 dev->dvb.frontend = dvb_attach(tda10046_attach,
1043 &dev->i2c_adap); 1077 &philips_tu1216_60_config,
1078 &dev->i2c_adap);
1044 if (dev->dvb.frontend) { 1079 if (dev->dvb.frontend) {
1045 dev->dvb.frontend->ops.tuner_ops.init = philips_tu1216_tuner_60_init; 1080 dev->dvb.frontend->ops.tuner_ops.init = philips_tu1216_tuner_60_init;
1046 dev->dvb.frontend->ops.tuner_ops.set_params = philips_tu1216_tuner_60_set_params; 1081 dev->dvb.frontend->ops.tuner_ops.set_params = philips_tu1216_tuner_60_set_params;
1047 } 1082 }
1048 break; 1083 break;
1049 case SAA7134_BOARD_FLYDVBTDUO: 1084 case SAA7134_BOARD_FLYDVBTDUO:
1050 dev->dvb.frontend = tda10046_attach(&tda827x_lifeview_config, 1085 dev->dvb.frontend = dvb_attach(tda10046_attach,
1051 &dev->i2c_adap); 1086 &tda827x_lifeview_config,
1087 &dev->i2c_adap);
1052 if (dev->dvb.frontend) { 1088 if (dev->dvb.frontend) {
1053 dev->dvb.frontend->ops.tuner_ops.init = philips_tda827x_tuner_init; 1089 dev->dvb.frontend->ops.tuner_ops.init = philips_tda827x_tuner_init;
1054 dev->dvb.frontend->ops.tuner_ops.sleep = philips_tda827x_tuner_sleep; 1090 dev->dvb.frontend->ops.tuner_ops.sleep = philips_tda827x_tuner_sleep;
@@ -1056,8 +1092,9 @@ static int dvb_init(struct saa7134_dev *dev)
1056 } 1092 }
1057 break; 1093 break;
1058 case SAA7134_BOARD_FLYDVBT_DUO_CARDBUS: 1094 case SAA7134_BOARD_FLYDVBT_DUO_CARDBUS:
1059 dev->dvb.frontend = tda10046_attach(&tda827x_lifeview_config, 1095 dev->dvb.frontend = dvb_attach(tda10046_attach,
1060 &dev->i2c_adap); 1096 &tda827x_lifeview_config,
1097 &dev->i2c_adap);
1061 if (dev->dvb.frontend) { 1098 if (dev->dvb.frontend) {
1062 dev->dvb.frontend->ops.tuner_ops.init = philips_tda827x_tuner_init; 1099 dev->dvb.frontend->ops.tuner_ops.init = philips_tda827x_tuner_init;
1063 dev->dvb.frontend->ops.tuner_ops.sleep = philips_tda827x_tuner_sleep; 1100 dev->dvb.frontend->ops.tuner_ops.sleep = philips_tda827x_tuner_sleep;
@@ -1065,8 +1102,9 @@ static int dvb_init(struct saa7134_dev *dev)
1065 } 1102 }
1066 break; 1103 break;
1067 case SAA7134_BOARD_PHILIPS_EUROPA: 1104 case SAA7134_BOARD_PHILIPS_EUROPA:
1068 dev->dvb.frontend = tda10046_attach(&philips_europa_config, 1105 dev->dvb.frontend = dvb_attach(tda10046_attach,
1069 &dev->i2c_adap); 1106 &philips_europa_config,
1107 &dev->i2c_adap);
1070 if (dev->dvb.frontend) { 1108 if (dev->dvb.frontend) {
1071 dev->original_demod_sleep = dev->dvb.frontend->ops.sleep; 1109 dev->original_demod_sleep = dev->dvb.frontend->ops.sleep;
1072 dev->dvb.frontend->ops.sleep = philips_europa_demod_sleep; 1110 dev->dvb.frontend->ops.sleep = philips_europa_demod_sleep;
@@ -1076,8 +1114,9 @@ static int dvb_init(struct saa7134_dev *dev)
1076 } 1114 }
1077 break; 1115 break;
1078 case SAA7134_BOARD_VIDEOMATE_DVBT_300: 1116 case SAA7134_BOARD_VIDEOMATE_DVBT_300:
1079 dev->dvb.frontend = tda10046_attach(&philips_europa_config, 1117 dev->dvb.frontend = dvb_attach(tda10046_attach,
1080 &dev->i2c_adap); 1118 &philips_europa_config,
1119 &dev->i2c_adap);
1081 if (dev->dvb.frontend) { 1120 if (dev->dvb.frontend) {
1082 dev->dvb.frontend->ops.tuner_ops.init = philips_europa_tuner_init; 1121 dev->dvb.frontend->ops.tuner_ops.init = philips_europa_tuner_init;
1083 dev->dvb.frontend->ops.tuner_ops.sleep = philips_europa_tuner_sleep; 1122 dev->dvb.frontend->ops.tuner_ops.sleep = philips_europa_tuner_sleep;
@@ -1085,16 +1124,18 @@ static int dvb_init(struct saa7134_dev *dev)
1085 } 1124 }
1086 break; 1125 break;
1087 case SAA7134_BOARD_VIDEOMATE_DVBT_200: 1126 case SAA7134_BOARD_VIDEOMATE_DVBT_200:
1088 dev->dvb.frontend = tda10046_attach(&philips_tu1216_61_config, 1127 dev->dvb.frontend = dvb_attach(tda10046_attach,
1089 &dev->i2c_adap); 1128 &philips_tu1216_61_config,
1129 &dev->i2c_adap);
1090 if (dev->dvb.frontend) { 1130 if (dev->dvb.frontend) {
1091 dev->dvb.frontend->ops.tuner_ops.init = philips_tu1216_tuner_61_init; 1131 dev->dvb.frontend->ops.tuner_ops.init = philips_tu1216_tuner_61_init;
1092 dev->dvb.frontend->ops.tuner_ops.set_params = philips_tu1216_tuner_61_set_params; 1132 dev->dvb.frontend->ops.tuner_ops.set_params = philips_tu1216_tuner_61_set_params;
1093 } 1133 }
1094 break; 1134 break;
1095 case SAA7134_BOARD_PHILIPS_TIGER: 1135 case SAA7134_BOARD_PHILIPS_TIGER:
1096 dev->dvb.frontend = tda10046_attach(&philips_tiger_config, 1136 dev->dvb.frontend = dvb_attach(tda10046_attach,
1097 &dev->i2c_adap); 1137 &philips_tiger_config,
1138 &dev->i2c_adap);
1098 if (dev->dvb.frontend) { 1139 if (dev->dvb.frontend) {
1099 dev->dvb.frontend->ops.tuner_ops.init = philips_tiger_tuner_init; 1140 dev->dvb.frontend->ops.tuner_ops.init = philips_tiger_tuner_init;
1100 dev->dvb.frontend->ops.tuner_ops.sleep = philips_tiger_tuner_sleep; 1141 dev->dvb.frontend->ops.tuner_ops.sleep = philips_tiger_tuner_sleep;
@@ -1102,8 +1143,9 @@ static int dvb_init(struct saa7134_dev *dev)
1102 } 1143 }
1103 break; 1144 break;
1104 case SAA7134_BOARD_ASUSTeK_P7131_DUAL: 1145 case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
1105 dev->dvb.frontend = tda10046_attach(&philips_tiger_config, 1146 dev->dvb.frontend = dvb_attach(tda10046_attach,
1106 &dev->i2c_adap); 1147 &philips_tiger_config,
1148 &dev->i2c_adap);
1107 if (dev->dvb.frontend) { 1149 if (dev->dvb.frontend) {
1108 dev->dvb.frontend->ops.tuner_ops.init = philips_tiger_tuner_init; 1150 dev->dvb.frontend->ops.tuner_ops.init = philips_tiger_tuner_init;
1109 dev->dvb.frontend->ops.tuner_ops.sleep = philips_tiger_tuner_sleep; 1151 dev->dvb.frontend->ops.tuner_ops.sleep = philips_tiger_tuner_sleep;
@@ -1111,8 +1153,9 @@ static int dvb_init(struct saa7134_dev *dev)
1111 } 1153 }
1112 break; 1154 break;
1113 case SAA7134_BOARD_FLYDVBT_LR301: 1155 case SAA7134_BOARD_FLYDVBT_LR301:
1114 dev->dvb.frontend = tda10046_attach(&tda827x_lifeview_config, 1156 dev->dvb.frontend = dvb_attach(tda10046_attach,
1115 &dev->i2c_adap); 1157 &tda827x_lifeview_config,
1158 &dev->i2c_adap);
1116 if (dev->dvb.frontend) { 1159 if (dev->dvb.frontend) {
1117 dev->dvb.frontend->ops.tuner_ops.init = philips_tda827x_tuner_init; 1160 dev->dvb.frontend->ops.tuner_ops.init = philips_tda827x_tuner_init;
1118 dev->dvb.frontend->ops.tuner_ops.sleep = philips_tda827x_tuner_sleep; 1161 dev->dvb.frontend->ops.tuner_ops.sleep = philips_tda827x_tuner_sleep;
@@ -1120,16 +1163,18 @@ static int dvb_init(struct saa7134_dev *dev)
1120 } 1163 }
1121 break; 1164 break;
1122 case SAA7134_BOARD_FLYDVB_TRIO: 1165 case SAA7134_BOARD_FLYDVB_TRIO:
1123 dev->dvb.frontend = tda10046_attach(&lifeview_trio_config, 1166 dev->dvb.frontend = dvb_attach(tda10046_attach,
1124 &dev->i2c_adap); 1167 &lifeview_trio_config,
1168 &dev->i2c_adap);
1125 if (dev->dvb.frontend) { 1169 if (dev->dvb.frontend) {
1126 dev->dvb.frontend->ops.tuner_ops.sleep = lifeview_trio_tuner_sleep; 1170 dev->dvb.frontend->ops.tuner_ops.sleep = lifeview_trio_tuner_sleep;
1127 dev->dvb.frontend->ops.tuner_ops.set_params = lifeview_trio_tuner_set_params; 1171 dev->dvb.frontend->ops.tuner_ops.set_params = lifeview_trio_tuner_set_params;
1128 } 1172 }
1129 break; 1173 break;
1130 case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331: 1174 case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331:
1131 dev->dvb.frontend = tda10046_attach(&ads_tech_duo_config, 1175 dev->dvb.frontend = dvb_attach(tda10046_attach,
1132 &dev->i2c_adap); 1176 &ads_tech_duo_config,
1177 &dev->i2c_adap);
1133 if (dev->dvb.frontend) { 1178 if (dev->dvb.frontend) {
1134 dev->dvb.frontend->ops.tuner_ops.init = ads_duo_tuner_init; 1179 dev->dvb.frontend->ops.tuner_ops.init = ads_duo_tuner_init;
1135 dev->dvb.frontend->ops.tuner_ops.sleep = ads_duo_tuner_sleep; 1180 dev->dvb.frontend->ops.tuner_ops.sleep = ads_duo_tuner_sleep;
@@ -1137,37 +1182,63 @@ static int dvb_init(struct saa7134_dev *dev)
1137 } 1182 }
1138 break; 1183 break;
1139 case SAA7134_BOARD_TEVION_DVBT_220RF: 1184 case SAA7134_BOARD_TEVION_DVBT_220RF:
1140 dev->dvb.frontend = tda10046_attach(&tevion_dvbt220rf_config, 1185 dev->dvb.frontend = dvb_attach(tda10046_attach,
1141 &dev->i2c_adap); 1186 &tevion_dvbt220rf_config,
1187 &dev->i2c_adap);
1142 if (dev->dvb.frontend) { 1188 if (dev->dvb.frontend) {
1143 dev->dvb.frontend->ops.tuner_ops.sleep = tevion_dvb220rf_tuner_sleep; 1189 dev->dvb.frontend->ops.tuner_ops.sleep = tevion_dvb220rf_tuner_sleep;
1144 dev->dvb.frontend->ops.tuner_ops.set_params = tevion_dvb220rf_tuner_set_params; 1190 dev->dvb.frontend->ops.tuner_ops.set_params = tevion_dvb220rf_tuner_set_params;
1145 } 1191 }
1146 break; 1192 break;
1147 case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS: 1193 case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS:
1148 dev->dvb.frontend = tda10046_attach(&ads_tech_duo_config, 1194 dev->dvb.frontend = dvb_attach(tda10046_attach,
1149 &dev->i2c_adap); 1195 &ads_tech_duo_config,
1196 &dev->i2c_adap);
1150 if (dev->dvb.frontend) { 1197 if (dev->dvb.frontend) {
1151 dev->dvb.frontend->ops.tuner_ops.init = ads_duo_tuner_init; 1198 dev->dvb.frontend->ops.tuner_ops.init = ads_duo_tuner_init;
1152 dev->dvb.frontend->ops.tuner_ops.sleep = ads_duo_tuner_sleep; 1199 dev->dvb.frontend->ops.tuner_ops.sleep = ads_duo_tuner_sleep;
1153 dev->dvb.frontend->ops.tuner_ops.set_params = ads_duo_tuner_set_params; 1200 dev->dvb.frontend->ops.tuner_ops.set_params = ads_duo_tuner_set_params;
1154 } 1201 }
1155 break; 1202 break;
1156#endif 1203 case SAA7134_BOARD_MEDION_MD8800_QUADRO:
1157#ifdef HAVE_NXT200X 1204 dev->dvb.frontend = tda10046_attach(&md8800_dvbt_config,
1205 &dev->i2c_adap);
1206 if (dev->dvb.frontend) {
1207 dev->dvb.frontend->ops.tuner_ops.init = philips_tiger_tuner_init;
1208 dev->dvb.frontend->ops.tuner_ops.sleep = md8800_dvbt_analog_mode;
1209 dev->dvb.frontend->ops.tuner_ops.set_params = md8800_dvbt_pll_set;
1210 }
1211 break;
1158 case SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180: 1212 case SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180:
1159 dev->dvb.frontend = nxt200x_attach(&avertvhda180, &dev->i2c_adap); 1213 dev->dvb.frontend = dvb_attach(nxt200x_attach, &avertvhda180,
1214 &dev->i2c_adap);
1160 if (dev->dvb.frontend) { 1215 if (dev->dvb.frontend) {
1161 dvb_pll_attach(dev->dvb.frontend, 0x61, &dev->i2c_adap, &dvb_pll_tdhu2); 1216 dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61,
1217 NULL, &dvb_pll_tdhu2);
1162 } 1218 }
1163 break; 1219 break;
1164 case SAA7134_BOARD_KWORLD_ATSC110: 1220 case SAA7134_BOARD_KWORLD_ATSC110:
1165 dev->dvb.frontend = nxt200x_attach(&kworldatsc110, &dev->i2c_adap); 1221 dev->dvb.frontend = dvb_attach(nxt200x_attach, &kworldatsc110,
1222 &dev->i2c_adap);
1223 if (dev->dvb.frontend) {
1224 dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61,
1225 NULL, &dvb_pll_tuv1236d);
1226 }
1227 break;
1228 case SAA7134_BOARD_FLYDVBS_LR300:
1229 dev->dvb.frontend = dvb_attach(tda10086_attach, &flydvbs,
1230 &dev->i2c_adap);
1166 if (dev->dvb.frontend) { 1231 if (dev->dvb.frontend) {
1167 dvb_pll_attach(dev->dvb.frontend, 0x61, &dev->i2c_adap, &dvb_pll_tuv1236d); 1232 if (dvb_attach(tda826x_attach, dev->dvb.frontend, 0x60,
1233 &dev->i2c_adap, 0) == NULL) {
1234 printk("%s: No tda826x found!\n", __FUNCTION__);
1235 }
1236 if (dvb_attach(isl6421_attach, dev->dvb.frontend,
1237 &dev->i2c_adap, 0x08, 0, 0) == NULL) {
1238 printk("%s: No ISL6421 found!\n", __FUNCTION__);
1239 }
1168 } 1240 }
1169 break; 1241 break;
1170#endif
1171 default: 1242 default:
1172 printk("%s: Huh? unknown DVB card?\n",dev->name); 1243 printk("%s: Huh? unknown DVB card?\n",dev->name);
1173 break; 1244 break;