aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew de Quincey <adq_dvb@lidskialf.net>2006-04-18 16:47:11 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2006-06-25 00:59:09 -0400
commit651b81be154ccf001890e77fbd45cdcac079e253 (patch)
treeeaeeb814234b0f3c61fed95601dc35e02a9e0382
parenta79ddae9fe993adab8d728a7a2a6a4038f0861c8 (diff)
V4L/DVB (3880): Convert dvb-ttusb-budget to refactored tuner code
Rename pll calls to appropriate tuner calls. Remove pll functions from demod structures. Hook tuner call into tuner_ops. Add pll gate control calls where appropriate. Signed-off-by: Andrew de Quincey <adq_dvb@lidskialf.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r--drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c37
1 files changed, 20 insertions, 17 deletions
diff --git a/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c b/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
index 95558608b03e..cd19ba628101 100644
--- a/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
+++ b/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
@@ -1048,7 +1048,7 @@ static u32 functionality(struct i2c_adapter *adapter)
1048 1048
1049 1049
1050 1050
1051static int alps_tdmb7_pll_set(struct dvb_frontend* fe, struct dvb_frontend_parameters* params) 1051static int alps_tdmb7_tuner_set_params(struct dvb_frontend* fe, struct dvb_frontend_parameters* params)
1052{ 1052{
1053 struct ttusb* ttusb = (struct ttusb*) fe->dvb->priv; 1053 struct ttusb* ttusb = (struct ttusb*) fe->dvb->priv;
1054 u8 data[4]; 1054 u8 data[4];
@@ -1068,14 +1068,13 @@ static int alps_tdmb7_pll_set(struct dvb_frontend* fe, struct dvb_frontend_param
1068 1068
1069static struct cx22700_config alps_tdmb7_config = { 1069static struct cx22700_config alps_tdmb7_config = {
1070 .demod_address = 0x43, 1070 .demod_address = 0x43,
1071 .pll_set = alps_tdmb7_pll_set,
1072}; 1071};
1073 1072
1074 1073
1075 1074
1076 1075
1077 1076
1078static int philips_tdm1316l_pll_init(struct dvb_frontend* fe) 1077static int philips_tdm1316l_tuner_init(struct dvb_frontend* fe)
1079{ 1078{
1080 struct ttusb* ttusb = (struct ttusb*) fe->dvb->priv; 1079 struct ttusb* ttusb = (struct ttusb*) fe->dvb->priv;
1081 static u8 td1316_init[] = { 0x0b, 0xf5, 0x85, 0xab }; 1080 static u8 td1316_init[] = { 0x0b, 0xf5, 0x85, 0xab };
@@ -1097,7 +1096,7 @@ static int philips_tdm1316l_pll_init(struct dvb_frontend* fe)
1097 return 0; 1096 return 0;
1098} 1097}
1099 1098
1100static int philips_tdm1316l_pll_set(struct dvb_frontend* fe, struct dvb_frontend_parameters* params) 1099static int philips_tdm1316l_tuner_set_params(struct dvb_frontend* fe, struct dvb_frontend_parameters* params)
1101{ 1100{
1102 struct ttusb* ttusb = (struct ttusb*) fe->dvb->priv; 1101 struct ttusb* ttusb = (struct ttusb*) fe->dvb->priv;
1103 u8 tuner_buf[4]; 1102 u8 tuner_buf[4];
@@ -1176,8 +1175,6 @@ static struct tda1004x_config philips_tdm1316l_config = {
1176 .demod_address = 0x8, 1175 .demod_address = 0x8,
1177 .invert = 1, 1176 .invert = 1,
1178 .invert_oclk = 0, 1177 .invert_oclk = 0,
1179 .pll_init = philips_tdm1316l_pll_init,
1180 .pll_set = philips_tdm1316l_pll_set,
1181 .request_firmware = philips_tdm1316l_request_firmware, 1178 .request_firmware = philips_tdm1316l_request_firmware,
1182}; 1179};
1183 1180
@@ -1299,7 +1296,7 @@ static int alps_stv0299_set_symbol_rate(struct dvb_frontend *fe, u32 srate, u32
1299 return 0; 1296 return 0;
1300} 1297}
1301 1298
1302static int philips_tsa5059_pll_set(struct dvb_frontend *fe, struct i2c_adapter *i2c, struct dvb_frontend_parameters *params) 1299static int philips_tsa5059_tuner_set_params(struct dvb_frontend *fe, struct dvb_frontend_parameters *params)
1303{ 1300{
1304 struct ttusb* ttusb = (struct ttusb*) fe->dvb->priv; 1301 struct ttusb* ttusb = (struct ttusb*) fe->dvb->priv;
1305 u8 buf[4]; 1302 u8 buf[4];
@@ -1322,7 +1319,7 @@ static int philips_tsa5059_pll_set(struct dvb_frontend *fe, struct i2c_adapter *
1322 if (ttusb->revision == TTUSB_REV_2_2) 1319 if (ttusb->revision == TTUSB_REV_2_2)
1323 buf[3] |= 0x20; 1320 buf[3] |= 0x20;
1324 1321
1325 if (i2c_transfer(i2c, &msg, 1) != 1) 1322 if (i2c_transfer(&ttusb->i2c_adap, &msg, 1) != 1)
1326 return -EIO; 1323 return -EIO;
1327 1324
1328 return 0; 1325 return 0;
@@ -1338,10 +1335,9 @@ static struct stv0299_config alps_stv0299_config = {
1338 .volt13_op0_op1 = STV0299_VOLT13_OP1, 1335 .volt13_op0_op1 = STV0299_VOLT13_OP1,
1339 .min_delay_ms = 100, 1336 .min_delay_ms = 100,
1340 .set_symbol_rate = alps_stv0299_set_symbol_rate, 1337 .set_symbol_rate = alps_stv0299_set_symbol_rate,
1341 .pll_set = philips_tsa5059_pll_set,
1342}; 1338};
1343 1339
1344static int ttusb_novas_grundig_29504_491_pll_set(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) 1340static int ttusb_novas_grundig_29504_491_tuner_set_params(struct dvb_frontend *fe, struct dvb_frontend_parameters *params)
1345{ 1341{
1346 struct ttusb* ttusb = (struct ttusb*) fe->dvb->priv; 1342 struct ttusb* ttusb = (struct ttusb*) fe->dvb->priv;
1347 u8 buf[4]; 1343 u8 buf[4];
@@ -1364,10 +1360,9 @@ static int ttusb_novas_grundig_29504_491_pll_set(struct dvb_frontend *fe, struct
1364static struct tda8083_config ttusb_novas_grundig_29504_491_config = { 1360static struct tda8083_config ttusb_novas_grundig_29504_491_config = {
1365 1361
1366 .demod_address = 0x68, 1362 .demod_address = 0x68,
1367 .pll_set = ttusb_novas_grundig_29504_491_pll_set,
1368}; 1363};
1369 1364
1370static int alps_tdbe2_pll_set(struct dvb_frontend* fe, struct dvb_frontend_parameters* params) 1365static int alps_tdbe2_tuner_set_params(struct dvb_frontend* fe, struct dvb_frontend_parameters* params)
1371{ 1366{
1372 struct ttusb* ttusb = fe->dvb->priv; 1367 struct ttusb* ttusb = fe->dvb->priv;
1373 u32 div; 1368 u32 div;
@@ -1393,7 +1388,6 @@ static struct ves1820_config alps_tdbe2_config = {
1393 .xin = 57840000UL, 1388 .xin = 57840000UL,
1394 .invert = 1, 1389 .invert = 1,
1395 .selagc = VES1820_SELAGC_SIGNAMPERR, 1390 .selagc = VES1820_SELAGC_SIGNAMPERR,
1396 .pll_set = alps_tdbe2_pll_set,
1397}; 1391};
1398 1392
1399static u8 read_pwm(struct ttusb* ttusb) 1393static u8 read_pwm(struct ttusb* ttusb)
@@ -1417,6 +1411,8 @@ static void frontend_init(struct ttusb* ttusb)
1417 // try the stv0299 based first 1411 // try the stv0299 based first
1418 ttusb->fe = stv0299_attach(&alps_stv0299_config, &ttusb->i2c_adap); 1412 ttusb->fe = stv0299_attach(&alps_stv0299_config, &ttusb->i2c_adap);
1419 if (ttusb->fe != NULL) { 1413 if (ttusb->fe != NULL) {
1414 ttusb->fe->ops->tuner_ops.set_params = philips_tsa5059_tuner_set_params;
1415
1420 if(ttusb->revision == TTUSB_REV_2_2) { // ALPS BSBE1 1416 if(ttusb->revision == TTUSB_REV_2_2) { // ALPS BSBE1
1421 alps_stv0299_config.inittab = alps_bsbe1_inittab; 1417 alps_stv0299_config.inittab = alps_bsbe1_inittab;
1422 ttusb->fe->ops->set_voltage = lnbp21_set_voltage; 1418 ttusb->fe->ops->set_voltage = lnbp21_set_voltage;
@@ -1429,28 +1425,35 @@ static void frontend_init(struct ttusb* ttusb)
1429 // Grundig 29504-491 1425 // Grundig 29504-491
1430 ttusb->fe = tda8083_attach(&ttusb_novas_grundig_29504_491_config, &ttusb->i2c_adap); 1426 ttusb->fe = tda8083_attach(&ttusb_novas_grundig_29504_491_config, &ttusb->i2c_adap);
1431 if (ttusb->fe != NULL) { 1427 if (ttusb->fe != NULL) {
1428 ttusb->fe->ops->tuner_ops.set_params = ttusb_novas_grundig_29504_491_tuner_set_params;
1432 ttusb->fe->ops->set_voltage = ttusb_set_voltage; 1429 ttusb->fe->ops->set_voltage = ttusb_set_voltage;
1433 break; 1430 break;
1434 } 1431 }
1435
1436 break; 1432 break;
1437 1433
1438 case 0x1004: // Hauppauge/TT DVB-C budget (ves1820/ALPS TDBE2(sp5659)) 1434 case 0x1004: // Hauppauge/TT DVB-C budget (ves1820/ALPS TDBE2(sp5659))
1439 ttusb->fe = ves1820_attach(&alps_tdbe2_config, &ttusb->i2c_adap, read_pwm(ttusb)); 1435 ttusb->fe = ves1820_attach(&alps_tdbe2_config, &ttusb->i2c_adap, read_pwm(ttusb));
1440 if (ttusb->fe != NULL) 1436 if (ttusb->fe != NULL) {
1437 ttusb->fe->ops->tuner_ops.set_params = alps_tdbe2_tuner_set_params;
1441 break; 1438 break;
1439 }
1442 break; 1440 break;
1443 1441
1444 case 0x1005: // Hauppauge/TT Nova-USB-t budget (tda10046/Philips td1316(tda6651tt) OR cx22700/ALPS TDMB7(??)) 1442 case 0x1005: // Hauppauge/TT Nova-USB-t budget (tda10046/Philips td1316(tda6651tt) OR cx22700/ALPS TDMB7(??))
1445 // try the ALPS TDMB7 first 1443 // try the ALPS TDMB7 first
1446 ttusb->fe = cx22700_attach(&alps_tdmb7_config, &ttusb->i2c_adap); 1444 ttusb->fe = cx22700_attach(&alps_tdmb7_config, &ttusb->i2c_adap);
1447 if (ttusb->fe != NULL) 1445 if (ttusb->fe != NULL) {
1446 ttusb->fe->ops->tuner_ops.set_params = alps_tdmb7_tuner_set_params;
1448 break; 1447 break;
1448 }
1449 1449
1450 // Philips td1316 1450 // Philips td1316
1451 ttusb->fe = tda10046_attach(&philips_tdm1316l_config, &ttusb->i2c_adap); 1451 ttusb->fe = tda10046_attach(&philips_tdm1316l_config, &ttusb->i2c_adap);
1452 if (ttusb->fe != NULL) 1452 if (ttusb->fe != NULL) {
1453 ttusb->fe->ops->tuner_ops.init = philips_tdm1316l_tuner_init;
1454 ttusb->fe->ops->tuner_ops.set_params = philips_tdm1316l_tuner_set_params;
1453 break; 1455 break;
1456 }
1454 break; 1457 break;
1455 } 1458 }
1456 1459