Lines Matching refs:budget

3  * budget-ci.c: driver for the SAA7146 based Budget DVB cards
22 #include "budget.h"
93 struct budget budget;
107 u32 command = ttpci_budget_debiread(&budget_ci->budget, DEBINOSWAP, DEBIADDR_IR, 2, 1, 0) >> 8;
161 struct saa7146_dev *saa = budget_ci->budget.dev;
196 switch (budget_ci->budget.dev->pci->subsystem_device) {
243 struct saa7146_dev *saa = budget_ci->budget.dev;
259 return ttpci_budget_debiread(&budget_ci->budget, DEBICICAM,
270 return ttpci_budget_debiwrite(&budget_ci->budget, DEBICICAM,
281 return ttpci_budget_debiread(&budget_ci->budget, DEBICICAM,
292 return ttpci_budget_debiwrite(&budget_ci->budget, DEBICICAM,
299 struct saa7146_dev *saa = budget_ci->budget.dev;
309 ttpci_budget_debiwrite(&budget_ci->budget, DEBICICTL, DEBIADDR_CICONTROL, 1, 0, 1, 0);
311 ttpci_budget_debiwrite(&budget_ci->budget, DEBICICTL, DEBIADDR_CICONTROL, 1,
322 struct saa7146_dev *saa = budget_ci->budget.dev;
335 struct saa7146_dev *saa = budget_ci->budget.dev;
343 tmp = ttpci_budget_debiread(&budget_ci->budget, DEBICICTL, DEBIADDR_CICONTROL, 1, 1, 0);
344 ttpci_budget_debiwrite(&budget_ci->budget, DEBICICTL, DEBIADDR_CICONTROL, 1,
355 struct saa7146_dev *saa = budget_ci->budget.dev;
359 if (!budget_ci->budget.ci_present)
363 flags = ttpci_budget_debiread(&budget_ci->budget, DEBICICTL, DEBIADDR_CICONTROL, 1, 1, 0);
407 if (!budget_ci->budget.ci_present)
411 flags = ttpci_budget_debiread(&budget_ci->budget, DEBICICTL, DEBIADDR_CICONTROL, 1, 1, 0);
440 struct saa7146_dev *saa = budget_ci->budget.dev;
452 ci_version = ttpci_budget_debiread(&budget_ci->budget, DEBICICTL, DEBIADDR_CIVERSION, 1, 1, 0);
459 flags = ttpci_budget_debiread(&budget_ci->budget, DEBICICTL, DEBIADDR_CICONTROL, 1, 1, 0);
486 if ((result = dvb_ca_en50221_init(&budget_ci->budget.dvb_adapter,
505 ttpci_budget_debiwrite(&budget_ci->budget, DEBICICTL, DEBIADDR_CICONTROL, 1,
510 budget_ci->budget.ci_present = 1;
529 struct saa7146_dev *saa = budget_ci->budget.dev;
539 ttpci_budget_debiwrite(&budget_ci->budget, DEBICICTL, DEBIADDR_CICONTROL, 1, 0, 1, 0);
541 ttpci_budget_debiwrite(&budget_ci->budget, DEBICICTL, DEBIADDR_CICONTROL, 1,
566 if ((*isr & MASK_03) && (budget_ci->budget.ci_present) && (budget_ci->ci_irq))
679 if (i2c_transfer(&budget_ci->budget.i2c_adap, &msg, 1) != 1)
710 if (i2c_transfer(&budget_ci->budget.i2c_adap, &tuner_msg, 1) != 1)
720 if (i2c_transfer(&budget_ci->budget.i2c_adap, &tuner_msg, 1) != 1) {
723 i2c_transfer(&budget_ci->budget.i2c_adap, &tuner_msg, 1);
808 if (i2c_transfer(&budget_ci->budget.i2c_adap, &tuner_msg, 1) != 1)
820 return request_firmware(fw, name, &budget_ci->budget.dev->pci->dev);
906 if (i2c_transfer(&budget_ci->budget.i2c_adap, &tuner_msg, 1) != 1)
913 if (i2c_transfer(&budget_ci->budget.i2c_adap, &tuner_msg, 1) != 1)
1302 switch (budget_ci->budget.dev->pci->subsystem_device) {
1303 case 0x100c: // Hauppauge/TT Nova-CI budget (stv0299/ALPS BSRU6(tsa5059))
1304 budget_ci->budget.dvb_frontend =
1305 dvb_attach(stv0299_attach, &alps_bsru6_config, &budget_ci->budget.i2c_adap);
1306 if (budget_ci->budget.dvb_frontend) {
1307 budget_ci->budget.dvb_frontend->ops.tuner_ops.set_params = alps_bsru6_tuner_set_params;
1308 budget_ci->budget.dvb_frontend->tuner_priv = &budget_ci->budget.i2c_adap;
1313 case 0x100f: // Hauppauge/TT Nova-CI budget (stv0299b/Philips su1278(tsa5059))
1314 budget_ci->budget.dvb_frontend =
1315 dvb_attach(stv0299_attach, &philips_su1278_tt_config, &budget_ci->budget.i2c_adap);
1316 if (budget_ci->budget.dvb_frontend) {
1317 budget_ci->budget.dvb_frontend->ops.tuner_ops.set_params = philips_su1278_tt_tuner_set_params;
1322 case 0x1010: // TT DVB-C CI budget (stv0297/Philips tdm1316l(tda6651tt))
1324 budget_ci->budget.dvb_frontend =
1325 dvb_attach(stv0297_attach, &dvbc_philips_tdm1316l_config, &budget_ci->budget.i2c_adap);
1326 if (budget_ci->budget.dvb_frontend) {
1327 budget_ci->budget.dvb_frontend->ops.tuner_ops.set_params = dvbc_philips_tdm1316l_tuner_set_params;
1332 case 0x1011: // Hauppauge/TT Nova-T budget (tda10045/Philips tdm1316l(tda6651tt) + TDA9889)
1334 budget_ci->budget.dvb_frontend =
1335 dvb_attach(tda10045_attach, &philips_tdm1316l_config, &budget_ci->budget.i2c_adap);
1336 if (budget_ci->budget.dvb_frontend) {
1337 budget_ci->budget.dvb_frontend->ops.tuner_ops.init = philips_tdm1316l_tuner_init;
1338 budget_ci->budget.dvb_frontend->ops.tuner_ops.set_params = philips_tdm1316l_tuner_set_params;
1343 case 0x1012: // TT DVB-T CI budget (tda10046/Philips tdm1316l(tda6651tt))
1345 budget_ci->budget.dvb_frontend =
1346 dvb_attach(tda10046_attach, &philips_tdm1316l_config_invert, &budget_ci->budget.i2c_adap);
1347 if (budget_ci->budget.dvb_frontend) {
1348 budget_ci->budget.dvb_frontend->ops.tuner_ops.init = philips_tdm1316l_tuner_init;
1349 budget_ci->budget.dvb_frontend->ops.tuner_ops.set_params = philips_tdm1316l_tuner_set_params;
1355 budget_ci->budget.dvb_frontend = dvb_attach(stv0299_attach, &alps_bsbe1_config, &budget_ci->budget.i2c_adap);
1356 if (budget_ci->budget.dvb_frontend) {
1357 budget_ci->budget.dvb_frontend->ops.tuner_ops.set_params = alps_bsbe1_tuner_set_params;
1358 budget_ci->budget.dvb_frontend->tuner_priv = &budget_ci->budget.i2c_adap;
1360 budget_ci->budget.dvb_frontend->ops.dishnetwork_send_legacy_command = NULL;
1361 if (dvb_attach(lnbp21_attach, budget_ci->budget.dvb_frontend, &budget_ci->budget.i2c_adap, LNBP21_LLC, 0) == NULL) {
1363 dvb_frontend_detach(budget_ci->budget.dvb_frontend);
1364 budget_ci->budget.dvb_frontend = NULL;
1370 budget_ci->budget.dvb_frontend = dvb_attach(tda10023_attach, &tda10023_config, &budget_ci->budget.i2c_adap, 0x48);
1371 if (budget_ci->budget.dvb_frontend) {
1372 if (dvb_attach(tda827x_attach, budget_ci->budget.dvb_frontend, 0x61, &budget_ci->budget.i2c_adap, &tda827x_config) == NULL) {
1374 dvb_frontend_detach(budget_ci->budget.dvb_frontend);
1375 budget_ci->budget.dvb_frontend = NULL;
1381 budget_ci->budget.dvb_frontend = dvb_attach(stv0288_attach, &stv0288_bsbe1_d01a_config, &budget_ci->budget.i2c_adap);
1382 if (budget_ci->budget.dvb_frontend) {
1383 if (dvb_attach(stb6000_attach, budget_ci->budget.dvb_frontend, 0x63, &budget_ci->budget.i2c_adap)) {
1384 if (!dvb_attach(lnbp21_attach, budget_ci->budget.dvb_frontend, &budget_ci->budget.i2c_adap, 0, 0)) {
1386 dvb_frontend_detach(budget_ci->budget.dvb_frontend);
1387 budget_ci->budget.dvb_frontend = NULL;
1391 dvb_frontend_detach(budget_ci->budget.dvb_frontend);
1392 budget_ci->budget.dvb_frontend = NULL;
1410 saa7146_setgpio(budget_ci->budget.dev, 2, SAA7146_GPIO_OUTLO);
1414 saa7146_setgpio(budget_ci->budget.dev, 2, SAA7146_GPIO_OUTHI);
1421 budget_ci->budget.dvb_frontend = dvb_attach(stb0899_attach, &tt3200_config, &budget_ci->budget.i2c_adap);
1422 if (budget_ci->budget.dvb_frontend) {
1423 if (dvb_attach(stb6100_attach, budget_ci->budget.dvb_frontend, &tt3200_stb6100_config, &budget_ci->budget.i2c_adap)) {
1424 if (!dvb_attach(lnbp21_attach, budget_ci->budget.dvb_frontend, &budget_ci->budget.i2c_adap, 0, 0)) {
1426 dvb_frontend_detach(budget_ci->budget.dvb_frontend);
1427 budget_ci->budget.dvb_frontend = NULL;
1430 dvb_frontend_detach(budget_ci->budget.dvb_frontend);
1431 budget_ci->budget.dvb_frontend = NULL;
1438 if (budget_ci->budget.dvb_frontend == NULL) {
1439 printk("budget-ci: A frontend driver was not found for device [%04x:%04x] subsystem [%04x:%04x]\n",
1440 budget_ci->budget.dev->pci->vendor,
1441 budget_ci->budget.dev->pci->device,
1442 budget_ci->budget.dev->pci->subsystem_vendor,
1443 budget_ci->budget.dev->pci->subsystem_device);
1446 (&budget_ci->budget.dvb_adapter, budget_ci->budget.dvb_frontend)) {
1447 printk("budget-ci: Frontend registration failed!\n");
1448 dvb_frontend_detach(budget_ci->budget.dvb_frontend);
1449 budget_ci->budget.dvb_frontend = NULL;
1469 err = ttpci_budget_init(&budget_ci->budget, dev, info, THIS_MODULE,
1480 budget_ci->budget.dvb_adapter.priv = budget_ci;
1483 ttpci_budget_init_hooks(&budget_ci->budget);
1488 ttpci_budget_deinit(&budget_ci->budget);
1498 struct saa7146_dev *saa = budget_ci->budget.dev;
1501 if (budget_ci->budget.ci_present)
1504 if (budget_ci->budget.dvb_frontend) {
1505 dvb_unregister_frontend(budget_ci->budget.dvb_frontend);
1506 dvb_frontend_detach(budget_ci->budget.dvb_frontend);
1508 err = ttpci_budget_deinit(&budget_ci->budget);
1574 MODULE_DESCRIPTION("driver for the SAA7146 based so-called budget PCI DVB cards w/ CI-module produced by Siemens, Technotrend, Hauppauge");