diff options
Diffstat (limited to 'drivers/media/video/saa7134/saa7134-dvb.c')
-rw-r--r-- | drivers/media/video/saa7134/saa7134-dvb.c | 197 |
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 | |||
48 | MODULE_AUTHOR("Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]"); | 45 | MODULE_AUTHOR("Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]"); |
49 | MODULE_LICENSE("GPL"); | 46 | MODULE_LICENSE("GPL"); |
50 | 47 | ||
@@ -54,8 +51,6 @@ module_param(antenna_pwr, int, 0444); | |||
54 | MODULE_PARM_DESC(antenna_pwr,"enable antenna power (Pinnacle 300i)"); | 51 | MODULE_PARM_DESC(antenna_pwr,"enable antenna power (Pinnacle 300i)"); |
55 | 52 | ||
56 | /* ------------------------------------------------------------------ */ | 53 | /* ------------------------------------------------------------------ */ |
57 | |||
58 | #ifdef HAVE_MT352 | ||
59 | static int pinnacle_antenna_pwr(struct saa7134_dev *dev, int on) | 54 | static 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 | |||
194 | static int philips_tda6651_pll_set(u8 addr, struct dvb_frontend *fe, struct dvb_frontend_parameters *params) | 185 | static 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 | |||
965 | static 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 | |||
976 | static 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 | |||
998 | static 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 | |||
1008 | static struct tda10086_config flydvbs = { | ||
1009 | .demod_address = 0x0e, | ||
1010 | .invert = 0, | ||
1011 | }; | ||
973 | 1012 | ||
974 | /* ------------------------------------------------------------------ */ | 1013 | /* ------------------------------------------------------------------ */ |
975 | 1014 | ||
976 | #ifdef HAVE_NXT200X | ||
977 | static struct nxt200x_config avertvhda180 = { | 1015 | static 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; |