diff options
author | Andrew de Quincey <adq_dvb@lidskialf.net> | 2006-08-08 08:10:08 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2006-09-26 10:53:25 -0400 |
commit | 2bfe031df6bd5e3b8e503eba8e3b6461d7c2c27e (patch) | |
tree | 2d7288c2221fb6f7ef98ef7a1ee3fef3f04cf87e /drivers/media/dvb/ttpci/budget-av.c | |
parent | d995506062c974133ba66d0822e58a923d4d74d9 (diff) |
V4L/DVB (4386): Convert DVB devices to use dvb_attach()
Only devices using > 1 frontend were ported; ones which did not are left
using static binding.
Signed-off-by: Andrew de Quincey <adq_dvb@lidskialf.net>
Acked-by: Michael Krufky <mkrufky@linuxtv.org>
Acked-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/dvb/ttpci/budget-av.c')
-rw-r--r-- | drivers/media/dvb/ttpci/budget-av.c | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/drivers/media/dvb/ttpci/budget-av.c b/drivers/media/dvb/ttpci/budget-av.c index 2d21fec23b4d..c648c01c8ec5 100644 --- a/drivers/media/dvb/ttpci/budget-av.c +++ b/drivers/media/dvb/ttpci/budget-av.c | |||
@@ -235,7 +235,7 @@ static int ciintf_slot_reset(struct dvb_ca_en50221 *ca, int slot) | |||
235 | 235 | ||
236 | /* set tda10021 back to original clock configuration on reset */ | 236 | /* set tda10021 back to original clock configuration on reset */ |
237 | if (budget_av->tda10021_poclkp) { | 237 | if (budget_av->tda10021_poclkp) { |
238 | tda10021_write_byte(budget_av->budget.dvb_frontend, 0x12, 0xa0); | 238 | tda10021_writereg(budget_av->budget.dvb_frontend, 0x12, 0xa0); |
239 | budget_av->tda10021_ts_enabled = 0; | 239 | budget_av->tda10021_ts_enabled = 0; |
240 | } | 240 | } |
241 | 241 | ||
@@ -257,7 +257,7 @@ static int ciintf_slot_shutdown(struct dvb_ca_en50221 *ca, int slot) | |||
257 | 257 | ||
258 | /* set tda10021 back to original clock configuration when cam removed */ | 258 | /* set tda10021 back to original clock configuration when cam removed */ |
259 | if (budget_av->tda10021_poclkp) { | 259 | if (budget_av->tda10021_poclkp) { |
260 | tda10021_write_byte(budget_av->budget.dvb_frontend, 0x12, 0xa0); | 260 | tda10021_writereg(budget_av->budget.dvb_frontend, 0x12, 0xa0); |
261 | budget_av->tda10021_ts_enabled = 0; | 261 | budget_av->tda10021_ts_enabled = 0; |
262 | } | 262 | } |
263 | return 0; | 263 | return 0; |
@@ -277,7 +277,7 @@ static int ciintf_slot_ts_enable(struct dvb_ca_en50221 *ca, int slot) | |||
277 | 277 | ||
278 | /* tda10021 seems to need a different TS clock config when data is routed to the CAM */ | 278 | /* tda10021 seems to need a different TS clock config when data is routed to the CAM */ |
279 | if (budget_av->tda10021_poclkp) { | 279 | if (budget_av->tda10021_poclkp) { |
280 | tda10021_write_byte(budget_av->budget.dvb_frontend, 0x12, 0xa1); | 280 | tda10021_writereg(budget_av->budget.dvb_frontend, 0x12, 0xa1); |
281 | budget_av->tda10021_ts_enabled = 1; | 281 | budget_av->tda10021_ts_enabled = 1; |
282 | } | 282 | } |
283 | 283 | ||
@@ -1068,9 +1068,9 @@ static int tda10021_set_frontend(struct dvb_frontend *fe, | |||
1068 | 1068 | ||
1069 | result = budget_av->tda10021_set_frontend(fe, p); | 1069 | result = budget_av->tda10021_set_frontend(fe, p); |
1070 | if (budget_av->tda10021_ts_enabled) { | 1070 | if (budget_av->tda10021_ts_enabled) { |
1071 | tda10021_write_byte(budget_av->budget.dvb_frontend, 0x12, 0xa1); | 1071 | tda10021_writereg(budget_av->budget.dvb_frontend, 0x12, 0xa1); |
1072 | } else { | 1072 | } else { |
1073 | tda10021_write_byte(budget_av->budget.dvb_frontend, 0x12, 0xa0); | 1073 | tda10021_writereg(budget_av->budget.dvb_frontend, 0x12, 0xa0); |
1074 | } | 1074 | } |
1075 | 1075 | ||
1076 | return result; | 1076 | return result; |
@@ -1098,13 +1098,13 @@ static void frontend_init(struct budget_av *budget_av) | |||
1098 | case SUBID_DVBS_KNC1: | 1098 | case SUBID_DVBS_KNC1: |
1099 | case SUBID_DVBS_EASYWATCH_1: | 1099 | case SUBID_DVBS_EASYWATCH_1: |
1100 | if (saa->pci->subsystem_vendor == 0x1894) { | 1100 | if (saa->pci->subsystem_vendor == 0x1894) { |
1101 | fe = stv0299_attach(&cinergy_1200s_1894_0010_config, | 1101 | fe = dvb_attach(stv0299_attach, &cinergy_1200s_1894_0010_config, |
1102 | &budget_av->budget.i2c_adap); | 1102 | &budget_av->budget.i2c_adap); |
1103 | if (fe) { | 1103 | if (fe) { |
1104 | fe->ops.tuner_ops.set_params = philips_su1278sh2_tua6100_tuner_set_params; | 1104 | fe->ops.tuner_ops.set_params = philips_su1278sh2_tua6100_tuner_set_params; |
1105 | } | 1105 | } |
1106 | } else { | 1106 | } else { |
1107 | fe = stv0299_attach(&typhoon_config, | 1107 | fe = dvb_attach(stv0299_attach, &typhoon_config, |
1108 | &budget_av->budget.i2c_adap); | 1108 | &budget_av->budget.i2c_adap); |
1109 | if (fe) { | 1109 | if (fe) { |
1110 | fe->ops.tuner_ops.set_params = philips_su1278_ty_ci_tuner_set_params; | 1110 | fe->ops.tuner_ops.set_params = philips_su1278_ty_ci_tuner_set_params; |
@@ -1116,7 +1116,7 @@ static void frontend_init(struct budget_av *budget_av) | |||
1116 | case SUBID_DVBS_TV_STAR_CI: | 1116 | case SUBID_DVBS_TV_STAR_CI: |
1117 | case SUBID_DVBS_CYNERGY1200N: | 1117 | case SUBID_DVBS_CYNERGY1200N: |
1118 | case SUBID_DVBS_EASYWATCH: | 1118 | case SUBID_DVBS_EASYWATCH: |
1119 | fe = stv0299_attach(&philips_sd1878_config, | 1119 | fe = dvb_attach(stv0299_attach, &philips_sd1878_config, |
1120 | &budget_av->budget.i2c_adap); | 1120 | &budget_av->budget.i2c_adap); |
1121 | if (fe) { | 1121 | if (fe) { |
1122 | fe->ops.tuner_ops.set_params = philips_sd1878_tda8261_tuner_set_params; | 1122 | fe->ops.tuner_ops.set_params = philips_sd1878_tda8261_tuner_set_params; |
@@ -1125,7 +1125,7 @@ static void frontend_init(struct budget_av *budget_av) | |||
1125 | 1125 | ||
1126 | case SUBID_DVBS_KNC1_PLUS: | 1126 | case SUBID_DVBS_KNC1_PLUS: |
1127 | case SUBID_DVBS_TYPHOON: | 1127 | case SUBID_DVBS_TYPHOON: |
1128 | fe = stv0299_attach(&typhoon_config, | 1128 | fe = dvb_attach(stv0299_attach, &typhoon_config, |
1129 | &budget_av->budget.i2c_adap); | 1129 | &budget_av->budget.i2c_adap); |
1130 | if (fe) { | 1130 | if (fe) { |
1131 | fe->ops.tuner_ops.set_params = philips_su1278_ty_ci_tuner_set_params; | 1131 | fe->ops.tuner_ops.set_params = philips_su1278_ty_ci_tuner_set_params; |
@@ -1133,7 +1133,7 @@ static void frontend_init(struct budget_av *budget_av) | |||
1133 | break; | 1133 | break; |
1134 | 1134 | ||
1135 | case SUBID_DVBS_CINERGY1200: | 1135 | case SUBID_DVBS_CINERGY1200: |
1136 | fe = stv0299_attach(&cinergy_1200s_config, | 1136 | fe = dvb_attach(stv0299_attach, &cinergy_1200s_config, |
1137 | &budget_av->budget.i2c_adap); | 1137 | &budget_av->budget.i2c_adap); |
1138 | if (fe) { | 1138 | if (fe) { |
1139 | fe->ops.tuner_ops.set_params = philips_su1278_ty_ci_tuner_set_params; | 1139 | fe->ops.tuner_ops.set_params = philips_su1278_ty_ci_tuner_set_params; |
@@ -1142,7 +1142,7 @@ static void frontend_init(struct budget_av *budget_av) | |||
1142 | 1142 | ||
1143 | case SUBID_DVBC_KNC1: | 1143 | case SUBID_DVBC_KNC1: |
1144 | budget_av->reinitialise_demod = 1; | 1144 | budget_av->reinitialise_demod = 1; |
1145 | fe = tda10021_attach(&philips_cu1216_config, | 1145 | fe = dvb_attach(tda10021_attach, &philips_cu1216_config, |
1146 | &budget_av->budget.i2c_adap, | 1146 | &budget_av->budget.i2c_adap, |
1147 | read_pwm(budget_av)); | 1147 | read_pwm(budget_av)); |
1148 | if (fe) { | 1148 | if (fe) { |
@@ -1153,7 +1153,7 @@ static void frontend_init(struct budget_av *budget_av) | |||
1153 | case SUBID_DVBC_KNC1_PLUS: | 1153 | case SUBID_DVBC_KNC1_PLUS: |
1154 | case SUBID_DVBC_CINERGY1200: | 1154 | case SUBID_DVBC_CINERGY1200: |
1155 | budget_av->reinitialise_demod = 1; | 1155 | budget_av->reinitialise_demod = 1; |
1156 | fe = tda10021_attach(&philips_cu1216_config, | 1156 | fe = dvb_attach(tda10021_attach, &philips_cu1216_config, |
1157 | &budget_av->budget.i2c_adap, | 1157 | &budget_av->budget.i2c_adap, |
1158 | read_pwm(budget_av)); | 1158 | read_pwm(budget_av)); |
1159 | if (fe) { | 1159 | if (fe) { |
@@ -1168,7 +1168,7 @@ static void frontend_init(struct budget_av *budget_av) | |||
1168 | case SUBID_DVBT_KNC1_PLUS: | 1168 | case SUBID_DVBT_KNC1_PLUS: |
1169 | case SUBID_DVBT_CINERGY1200: | 1169 | case SUBID_DVBT_CINERGY1200: |
1170 | budget_av->reinitialise_demod = 1; | 1170 | budget_av->reinitialise_demod = 1; |
1171 | fe = tda10046_attach(&philips_tu1216_config, | 1171 | fe = dvb_attach(tda10046_attach, &philips_tu1216_config, |
1172 | &budget_av->budget.i2c_adap); | 1172 | &budget_av->budget.i2c_adap); |
1173 | if (fe) { | 1173 | if (fe) { |
1174 | fe->ops.tuner_ops.init = philips_tu1216_tuner_init; | 1174 | fe->ops.tuner_ops.init = philips_tu1216_tuner_init; |
@@ -1192,8 +1192,9 @@ static void frontend_init(struct budget_av *budget_av) | |||
1192 | if (dvb_register_frontend(&budget_av->budget.dvb_adapter, | 1192 | if (dvb_register_frontend(&budget_av->budget.dvb_adapter, |
1193 | budget_av->budget.dvb_frontend)) { | 1193 | budget_av->budget.dvb_frontend)) { |
1194 | printk(KERN_ERR "budget-av: Frontend registration failed!\n"); | 1194 | printk(KERN_ERR "budget-av: Frontend registration failed!\n"); |
1195 | if (budget_av->budget.dvb_frontend->ops.release) | 1195 | dvb_detach(budget_av->budget.dvb_frontend->ops.release_sec, budget_av->budget.dvb_frontend); |
1196 | budget_av->budget.dvb_frontend->ops.release(budget_av->budget.dvb_frontend); | 1196 | dvb_detach(budget_av->budget.dvb_frontend->ops.tuner_ops.release, budget_av->budget.dvb_frontend); |
1197 | dvb_detach(budget_av->budget.dvb_frontend->ops.release, budget_av->budget.dvb_frontend); | ||
1197 | budget_av->budget.dvb_frontend = NULL; | 1198 | budget_av->budget.dvb_frontend = NULL; |
1198 | } | 1199 | } |
1199 | } | 1200 | } |
@@ -1227,8 +1228,12 @@ static int budget_av_detach(struct saa7146_dev *dev) | |||
1227 | if (budget_av->budget.ci_present) | 1228 | if (budget_av->budget.ci_present) |
1228 | ciintf_deinit(budget_av); | 1229 | ciintf_deinit(budget_av); |
1229 | 1230 | ||
1230 | if (budget_av->budget.dvb_frontend != NULL) | 1231 | if (budget_av->budget.dvb_frontend != NULL) { |
1231 | dvb_unregister_frontend(budget_av->budget.dvb_frontend); | 1232 | dvb_unregister_frontend(budget_av->budget.dvb_frontend); |
1233 | dvb_detach(budget_av->budget.dvb_frontend->ops.release_sec, budget_av->budget.dvb_frontend); | ||
1234 | dvb_detach(budget_av->budget.dvb_frontend->ops.tuner_ops.release, budget_av->budget.dvb_frontend); | ||
1235 | dvb_detach(budget_av->budget.dvb_frontend->ops.release, budget_av->budget.dvb_frontend); | ||
1236 | } | ||
1232 | err = ttpci_budget_deinit(&budget_av->budget); | 1237 | err = ttpci_budget_deinit(&budget_av->budget); |
1233 | 1238 | ||
1234 | kfree(budget_av); | 1239 | kfree(budget_av); |