Lines Matching refs:budget_av

52 struct budget_av {
125 struct budget_av *budget_av = ca->data;
131 saa7146_setgpio(budget_av->budget.dev, 1, SAA7146_GPIO_OUTHI);
134 result = ttpci_budget_debiread(&budget_av->budget, DEBICICAM, address & 0xfff, 1, 0, 1);
144 struct budget_av *budget_av = ca->data;
150 saa7146_setgpio(budget_av->budget.dev, 1, SAA7146_GPIO_OUTHI);
153 result = ttpci_budget_debiwrite(&budget_av->budget, DEBICICAM, address & 0xfff, 1, value, 0, 1);
163 struct budget_av *budget_av = ca->data;
169 saa7146_setgpio(budget_av->budget.dev, 1, SAA7146_GPIO_OUTLO);
172 result = ttpci_budget_debiread(&budget_av->budget, DEBICICAM, address & 3, 1, 0, 0);
183 struct budget_av *budget_av = ca->data;
189 saa7146_setgpio(budget_av->budget.dev, 1, SAA7146_GPIO_OUTLO);
192 result = ttpci_budget_debiwrite(&budget_av->budget, DEBICICAM, address & 3, 1, value, 0, 0);
202 struct budget_av *budget_av = ca->data;
203 struct saa7146_dev *saa = budget_av->budget.dev;
209 budget_av->slot_status = SLOTSTATUS_RESET;
223 if (budget_av->reinitialise_demod)
224 dvb_frontend_reinitialise(budget_av->budget.dvb_frontend);
231 struct budget_av *budget_av = ca->data;
232 struct saa7146_dev *saa = budget_av->budget.dev;
240 budget_av->slot_status = SLOTSTATUS_NONE;
247 struct budget_av *budget_av = ca->data;
248 struct saa7146_dev *saa = budget_av->budget.dev;
253 dprintk(1, "ci slot status: %d\n", budget_av->slot_status);
262 struct budget_av *budget_av = ca->data;
263 struct saa7146_dev *saa = budget_av->budget.dev;
273 if (budget_av->slot_status == SLOTSTATUS_NONE) {
277 if (budget_av->slot_status == SLOTSTATUS_NONE) {
278 budget_av->slot_status = SLOTSTATUS_PRESENT;
293 if ((budget_av->slot_status == SLOTSTATUS_NONE) || (!open)) {
294 saa7146_setgpio(budget_av->budget.dev, 1, SAA7146_GPIO_OUTLO);
295 result = ttpci_budget_debiread(&budget_av->budget, DEBICICAM, 0, 1, 0, 1);
296 if ((result >= 0) && (budget_av->slot_status == SLOTSTATUS_NONE)) {
297 budget_av->slot_status = SLOTSTATUS_PRESENT;
300 if (budget_av->slot_status != SLOTSTATUS_NONE) {
309 if (budget_av->slot_status == SLOTSTATUS_RESET) {
312 budget_av->slot_status = SLOTSTATUS_READY;
316 if (budget_av->slot_status != SLOTSTATUS_NONE) {
317 if (budget_av->slot_status & SLOTSTATUS_READY)
324 static int ciintf_init(struct budget_av *budget_av)
326 struct saa7146_dev *saa = budget_av->budget.dev;
329 memset(&budget_av->ca, 0, sizeof(struct dvb_ca_en50221));
340 budget_av->ca.owner = THIS_MODULE;
341 budget_av->ca.read_attribute_mem = ciintf_read_attribute_mem;
342 budget_av->ca.write_attribute_mem = ciintf_write_attribute_mem;
343 budget_av->ca.read_cam_control = ciintf_read_cam_control;
344 budget_av->ca.write_cam_control = ciintf_write_cam_control;
345 budget_av->ca.slot_reset = ciintf_slot_reset;
346 budget_av->ca.slot_shutdown = ciintf_slot_shutdown;
347 budget_av->ca.slot_ts_enable = ciintf_slot_ts_enable;
348 budget_av->ca.poll_slot_status = ciintf_poll_slot_status;
349 budget_av->ca.data = budget_av;
350 budget_av->budget.ci_present = 1;
351 budget_av->slot_status = SLOTSTATUS_NONE;
353 result = dvb_ca_en50221_init(&budget_av->budget.dvb_adapter,
354 &budget_av->ca, 0, 1);
368 static void ciintf_deinit(struct budget_av *budget_av)
370 struct saa7146_dev *saa = budget_av->budget.dev;
378 dvb_ca_en50221_release(&budget_av->ca);
414 static int saa7113_init(struct budget_av *budget_av)
416 struct budget *budget = &budget_av->budget;
440 static int saa7113_setinput(struct budget_av *budget_av, int input)
442 struct budget *budget = &budget_av->budget;
444 if (budget_av->has_saa7113 != 1)
457 budget_av->cur_input = input;
1155 static u8 read_pwm(struct budget_av *budget_av)
1163 if ((i2c_transfer(&budget_av->budget.i2c_adap, msg, 2) != 2)
1200 static void frontend_init(struct budget_av *budget_av)
1202 struct saa7146_dev *saa = budget_av->budget.dev;
1232 budget_av->reinitialise_demod = 1;
1238 &budget_av->budget.i2c_adap);
1240 dvb_attach(tua6100_attach, fe, 0x60, &budget_av->budget.i2c_adap);
1243 &budget_av->budget.i2c_adap);
1256 &budget_av->budget.i2c_adap);
1259 &budget_av->budget.i2c_adap,
1265 &budget_av->budget.i2c_adap);
1272 budget_av->reinitialise_demod = 1;
1273 fe = dvb_attach(stb0899_attach, &knc1_dvbs2_config, &budget_av->budget.i2c_adap);
1275 dvb_attach(tda8261_attach, fe, &sd1878c_config, &budget_av->budget.i2c_adap);
1280 &budget_av->budget.i2c_adap);
1289 budget_av->reinitialise_demod = 1;
1290 budget_av->budget.dev->i2c_bitrate = SAA7146_I2C_BUS_BIT_RATE_240;
1292 &budget_av->budget.i2c_adap,
1293 read_pwm(budget_av));
1296 &budget_av->budget.i2c_adap,
1297 read_pwm(budget_av));
1307 budget_av->reinitialise_demod = 1;
1308 budget_av->budget.dev->i2c_bitrate = SAA7146_I2C_BUS_BIT_RATE_240;
1311 &budget_av->budget.i2c_adap,
1312 read_pwm(budget_av));
1321 budget_av->reinitialise_demod = 1;
1323 &budget_av->budget.i2c_adap);
1340 budget_av->budget.dvb_frontend = fe;
1342 if (dvb_register_frontend(&budget_av->budget.dvb_adapter,
1343 budget_av->budget.dvb_frontend)) {
1345 dvb_frontend_detach(budget_av->budget.dvb_frontend);
1346 budget_av->budget.dvb_frontend = NULL;
1353 struct budget_av *budget_av = dev->ext_priv;
1355 dprintk(8, "dev: %p, budget_av: %p\n", dev, budget_av);
1363 struct budget_av *budget_av = dev->ext_priv;
1368 if (budget_av->has_saa7113 == 1) {
1373 saa7146_unregister_device(&budget_av->vd, dev);
1378 if (budget_av->budget.ci_present)
1379 ciintf_deinit(budget_av);
1381 if (budget_av->budget.dvb_frontend != NULL) {
1382 dvb_unregister_frontend(budget_av->budget.dvb_frontend);
1383 dvb_frontend_detach(budget_av->budget.dvb_frontend);
1385 err = ttpci_budget_deinit(&budget_av->budget);
1387 kfree(budget_av);
1412 struct budget_av *budget_av = dev->ext_priv;
1414 *i = budget_av->cur_input;
1423 struct budget_av *budget_av = dev->ext_priv;
1426 return saa7113_setinput(budget_av, input);
1433 struct budget_av *budget_av;
1439 budget_av = kzalloc(sizeof(struct budget_av), GFP_KERNEL);
1440 if (!budget_av)
1443 budget_av->has_saa7113 = 0;
1444 budget_av->budget.ci_present = 0;
1446 dev->ext_priv = budget_av;
1448 err = ttpci_budget_init(&budget_av->budget, dev, info, THIS_MODULE,
1451 kfree(budget_av);
1460 if (saa7113_init(budget_av) == 0) {
1461 budget_av->has_saa7113 = 1;
1464 ttpci_budget_deinit(&budget_av->budget);
1465 kfree(budget_av);
1473 err = saa7146_register_device(&budget_av->vd, dev, "knc1", VFL_TYPE_VIDEO);
1476 ttpci_budget_deinit(&budget_av->budget);
1477 kfree(budget_av);
1486 saa7113_setinput(budget_av, 0);
1492 mac = budget_av->budget.dvb_adapter.proposed_mac;
1493 if (i2c_readregs(&budget_av->budget.i2c_adap, 0xa0, 0x30, mac, 6)) {
1495 budget_av->budget.dvb_adapter.num);
1499 budget_av->budget.dvb_adapter.num, mac);
1502 budget_av->budget.dvb_adapter.priv = budget_av;
1503 frontend_init(budget_av);
1504 ciintf_init(budget_av);
1506 ttpci_budget_init_hooks(&budget_av->budget);
1596 .name = "budget_av",