Lines Matching refs:dev

167 static inline void print_err_status(struct cx231xx *dev, int packet, int status)  in print_err_status()  argument
198 dev_dbg(dev->dev, in print_err_status()
201 dev_dbg(dev->dev, in print_err_status()
207 static inline int dvb_isoc_copy(struct cx231xx *dev, struct urb *urb) in dvb_isoc_copy() argument
211 if (!dev) in dvb_isoc_copy()
214 if (dev->state & DEV_DISCONNECTED) in dvb_isoc_copy()
218 print_err_status(dev, -1, urb->status); in dvb_isoc_copy()
227 print_err_status(dev, i, status); in dvb_isoc_copy()
232 dvb_dmx_swfilter(&dev->dvb->demux, in dvb_isoc_copy()
241 static inline int dvb_bulk_copy(struct cx231xx *dev, struct urb *urb) in dvb_bulk_copy() argument
243 if (!dev) in dvb_bulk_copy()
246 if (dev->state & DEV_DISCONNECTED) in dvb_bulk_copy()
250 print_err_status(dev, -1, urb->status); in dvb_bulk_copy()
256 dvb_dmx_swfilter(&dev->dvb->demux, in dvb_bulk_copy()
265 struct cx231xx *dev = dvb->adapter.priv; in start_streaming() local
267 if (dev->USE_ISO) { in start_streaming()
268 dev_dbg(dev->dev, "DVB transfer mode is ISO.\n"); in start_streaming()
269 cx231xx_set_alt_setting(dev, INDEX_TS1, 5); in start_streaming()
270 rc = cx231xx_set_mode(dev, CX231XX_DIGITAL_MODE); in start_streaming()
273 dev->mode_tv = 1; in start_streaming()
274 return cx231xx_init_isoc(dev, CX231XX_DVB_MAX_PACKETS, in start_streaming()
276 dev->ts1_mode.max_pkt_size, in start_streaming()
279 dev_dbg(dev->dev, "DVB transfer mode is BULK.\n"); in start_streaming()
280 cx231xx_set_alt_setting(dev, INDEX_TS1, 0); in start_streaming()
281 rc = cx231xx_set_mode(dev, CX231XX_DIGITAL_MODE); in start_streaming()
284 dev->mode_tv = 1; in start_streaming()
285 return cx231xx_init_bulk(dev, CX231XX_DVB_MAX_PACKETS, in start_streaming()
287 dev->ts1_mode.max_pkt_size, in start_streaming()
295 struct cx231xx *dev = dvb->adapter.priv; in stop_streaming() local
297 if (dev->USE_ISO) in stop_streaming()
298 cx231xx_uninit_isoc(dev); in stop_streaming()
300 cx231xx_uninit_bulk(dev); in stop_streaming()
302 cx231xx_set_mode(dev, CX231XX_SUSPEND); in stop_streaming()
349 struct cx231xx *dev = fe->dvb->priv; in cx231xx_dvb_bus_ctrl() local
352 return cx231xx_set_mode(dev, CX231XX_DIGITAL_MODE); in cx231xx_dvb_bus_ctrl()
354 return cx231xx_set_mode(dev, CX231XX_SUSPEND); in cx231xx_dvb_bus_ctrl()
370 static int attach_xc5000(u8 addr, struct cx231xx *dev)
377 cfg.i2c_adap = cx231xx_get_i2c_adap(dev, dev->board.tuner_i2c_master);
380 if (!dev->dvb->frontend[0]) {
381 dev_err(dev->dev, "%s/2: dvb frontend not attached. Can't attach xc5000\n",
382 dev->name);
386 fe = dvb_attach(xc5000_attach, dev->dvb->frontend[0], &cfg);
388 dev_err(dev->dev, "%s/2: xc5000 attach failed\n", dev->name);
389 dvb_frontend_detach(dev->dvb->frontend[0]);
390 dev->dvb->frontend[0] = NULL;
394 dev_info(dev->dev, "%s/2: xc5000 attached\n", dev->name);
400 int cx231xx_set_analog_freq(struct cx231xx *dev, u32 freq) in cx231xx_set_analog_freq() argument
402 if (dev->dvb && dev->dvb->frontend[0]) { in cx231xx_set_analog_freq()
404 struct dvb_tuner_ops *dops = &dev->dvb->frontend[0]->ops.tuner_ops; in cx231xx_set_analog_freq()
410 params.std = dev->norm; in cx231xx_set_analog_freq()
415 dops->set_analog_params(dev->dvb->frontend[0], &params); in cx231xx_set_analog_freq()
423 int cx231xx_reset_analog_tuner(struct cx231xx *dev) in cx231xx_reset_analog_tuner() argument
427 if (dev->dvb && dev->dvb->frontend[0]) { in cx231xx_reset_analog_tuner()
429 struct dvb_tuner_ops *dops = &dev->dvb->frontend[0]->ops.tuner_ops; in cx231xx_reset_analog_tuner()
431 if (dops->init != NULL && !dev->xc_fw_load_done) { in cx231xx_reset_analog_tuner()
433 dev_dbg(dev->dev, in cx231xx_reset_analog_tuner()
435 status = dops->init(dev->dvb->frontend[0]); in cx231xx_reset_analog_tuner()
437 dev->xc_fw_load_done = 1; in cx231xx_reset_analog_tuner()
438 dev_dbg(dev->dev, in cx231xx_reset_analog_tuner()
441 dev->xc_fw_load_done = 0; in cx231xx_reset_analog_tuner()
442 dev_dbg(dev->dev, in cx231xx_reset_analog_tuner()
456 struct cx231xx *dev, struct device *device) in register_dvb() argument
464 result = dvb_register_adapter(&dvb->adapter, dev->name, module, device, in register_dvb()
467 dev_warn(dev->dev, in register_dvb()
469 dev->name, result); in register_dvb()
472 dvb_register_media_controller(&dvb->adapter, dev->media_dev); in register_dvb()
479 dvb->adapter.priv = dev; in register_dvb()
484 dev_warn(dev->dev, in register_dvb()
486 dev->name, result); in register_dvb()
493 dev_warn(dev->dev, in register_dvb()
495 dev->name, result); in register_dvb()
515 dev_warn(dev->dev, in register_dvb()
517 dev->name, result); in register_dvb()
526 dev_warn(dev->dev, in register_dvb()
528 dev->name, result); in register_dvb()
535 dev_warn(dev->dev, in register_dvb()
537 dev->name, result); in register_dvb()
544 dev_warn(dev->dev, in register_dvb()
546 dev->name, result); in register_dvb()
552 dev_warn(dev->dev, in register_dvb()
554 dev->name, result); in register_dvb()
561 dev->tuner_type == TUNER_ABSENT); in register_dvb()
616 static int dvb_init(struct cx231xx *dev) in dvb_init() argument
625 if (!dev->board.has_dvb) { in dvb_init()
633 dev_info(dev->dev, in dvb_init()
637 dev->dvb = dvb; in dvb_init()
638 dev->cx231xx_set_analog_freq = cx231xx_set_analog_freq; in dvb_init()
639 dev->cx231xx_reset_analog_tuner = cx231xx_reset_analog_tuner; in dvb_init()
641 tuner_i2c = cx231xx_get_i2c_adap(dev, dev->board.tuner_i2c_master); in dvb_init()
642 demod_i2c = cx231xx_get_i2c_adap(dev, dev->board.demod_i2c_master); in dvb_init()
643 mutex_lock(&dev->lock); in dvb_init()
644 cx231xx_set_mode(dev, CX231XX_DIGITAL_MODE); in dvb_init()
645 cx231xx_demod_reset(dev); in dvb_init()
647 switch (dev->model) { in dvb_init()
651 dev->dvb->frontend[0] = dvb_attach(s5h1432_attach, in dvb_init()
655 if (!dev->dvb->frontend[0]) { in dvb_init()
656 dev_err(dev->dev, in dvb_init()
665 if (!dvb_attach(xc5000_attach, dev->dvb->frontend[0], in dvb_init()
676 dev->dvb->frontend[0] = dvb_attach(s5h1411_attach, in dvb_init()
680 if (!dev->dvb->frontend[0]) { in dvb_init()
681 dev_err(dev->dev, in dvb_init()
690 if (!dvb_attach(xc5000_attach, dev->dvb->frontend[0], in dvb_init()
699 dev->dvb->frontend[0] = dvb_attach(s5h1432_attach, in dvb_init()
703 if (!dev->dvb->frontend[0]) { in dvb_init()
704 dev_err(dev->dev, in dvb_init()
713 if (!dvb_attach(tda18271_attach, dev->dvb->frontend[0], in dvb_init()
714 dev->board.tuner_addr, tuner_i2c, in dvb_init()
723 dev->dvb->frontend[0] = dvb_attach(s5h1411_attach, in dvb_init()
727 if (!dev->dvb->frontend[0]) { in dvb_init()
728 dev_err(dev->dev, in dvb_init()
737 if (!dvb_attach(tda18271_attach, dev->dvb->frontend[0], in dvb_init()
738 dev->board.tuner_addr, tuner_i2c, in dvb_init()
746 dev_info(dev->dev, in dvb_init()
750 dev->dvb->frontend[0] = dvb_attach(lgdt3305_attach, in dvb_init()
754 if (!dev->dvb->frontend[0]) { in dvb_init()
755 dev_err(dev->dev, in dvb_init()
764 dvb_attach(tda18271_attach, dev->dvb->frontend[0], in dvb_init()
765 dev->board.tuner_addr, tuner_i2c, in dvb_init()
774 si2165_pdata.fe = &dev->dvb->frontend[0]; in dvb_init()
780 dev->board.demod_addr, in dvb_init()
788 dev->dvb->frontend[0]->ops.i2c_gate_ctrl = NULL; in dvb_init()
793 dvb_attach(tda18271_attach, dev->dvb->frontend[0], in dvb_init()
794 dev->board.tuner_addr, tuner_i2c, in dvb_init()
797 dev->cx231xx_reset_analog_tuner = NULL; in dvb_init()
806 si2165_pdata.fe = &dev->dvb->frontend[0]; in dvb_init()
812 dev->board.demod_addr, in dvb_init()
820 dev->dvb->frontend[0]->ops.i2c_gate_ctrl = NULL; in dvb_init()
826 si2157_config.fe = dev->dvb->frontend[0]; in dvb_init()
828 si2157_config.mdev = dev->media_dev; in dvb_init()
835 dev->board.tuner_addr, in dvb_init()
841 dev->cx231xx_reset_analog_tuner = NULL; in dvb_init()
843 dev->dvb->i2c_client_tuner = client; in dvb_init()
852 lgdt3306a_config.fe = &dev->dvb->frontend[0]; in dvb_init()
857 dev->board.demod_addr, in dvb_init()
865 dev->dvb->frontend[0]->ops.i2c_gate_ctrl = NULL; in dvb_init()
871 si2157_config.fe = dev->dvb->frontend[0]; in dvb_init()
873 si2157_config.mdev = dev->media_dev; in dvb_init()
880 dev->board.tuner_addr, in dvb_init()
886 dev->cx231xx_reset_analog_tuner = NULL; in dvb_init()
888 dev->dvb->i2c_client_tuner = client; in dvb_init()
894 dev_info(dev->dev, in dvb_init()
898 dev->dvb->frontend[0] = dvb_attach(mb86a20s_attach, in dvb_init()
902 if (!dev->dvb->frontend[0]) { in dvb_init()
903 dev_err(dev->dev, in dvb_init()
912 dvb_attach(tda18271_attach, dev->dvb->frontend[0], in dvb_init()
913 dev->board.tuner_addr, tuner_i2c, in dvb_init()
924 si2168_config.fe = &dev->dvb->frontend[0]; in dvb_init()
930 dev->board.demod_addr, in dvb_init()
939 si2157_config.fe = dev->dvb->frontend[0]; in dvb_init()
941 si2157_config.mdev = dev->media_dev; in dvb_init()
948 dev->board.tuner_addr, in dvb_init()
954 dev->cx231xx_reset_analog_tuner = NULL; in dvb_init()
955 dev->dvb->i2c_client_tuner = client; in dvb_init()
965 mn88473_config.fe = &dev->dvb->frontend[0]; in dvb_init()
969 dev->board.demod_addr, in dvb_init()
981 dvb_attach(r820t_attach, dev->dvb->frontend[0], in dvb_init()
993 si2168_config.fe = &dev->dvb->frontend[0]; in dvb_init()
999 dev->board.demod_addr, in dvb_init()
1006 dev->dvb->frontend[0]->ops.i2c_gate_ctrl = NULL; in dvb_init()
1012 si2157_config.fe = dev->dvb->frontend[0]; in dvb_init()
1014 si2157_config.mdev = dev->media_dev; in dvb_init()
1021 dev->board.tuner_addr, in dvb_init()
1027 dev->cx231xx_reset_analog_tuner = NULL; in dvb_init()
1028 dev->dvb->i2c_client_tuner = client; in dvb_init()
1040 lgdt3306a_config.fe = &dev->dvb->frontend[0]; in dvb_init()
1045 dev->board.demod_addr, in dvb_init()
1055 si2168_config.fe = &dev->dvb->frontend[1]; in dvb_init()
1061 dev->board.demod_addr2, in dvb_init()
1075 si2157_config.fe = dev->dvb->frontend[0]; in dvb_init()
1077 si2157_config.mdev = dev->media_dev; in dvb_init()
1084 dev->board.tuner_addr, in dvb_init()
1090 dev->cx231xx_reset_analog_tuner = NULL; in dvb_init()
1101 dev_err(dev->dev, in dvb_init()
1103 dev->name); in dvb_init()
1107 dev_err(dev->dev, in dvb_init()
1108 "%s/2: frontend initialization failed\n", dev->name); in dvb_init()
1114 result = register_dvb(dvb, THIS_MODULE, dev, dev->dev); in dvb_init()
1120 dev_info(dev->dev, "Successfully loaded cx231xx-dvb\n"); in dvb_init()
1123 cx231xx_set_mode(dev, CX231XX_SUSPEND); in dvb_init()
1124 mutex_unlock(&dev->lock); in dvb_init()
1137 dev->dvb = NULL; in dvb_init()
1141 static int dvb_fini(struct cx231xx *dev) in dvb_fini() argument
1143 if (!dev->board.has_dvb) { in dvb_fini()
1148 if (dev->dvb) { in dvb_fini()
1149 unregister_dvb(dev->dvb); in dvb_fini()
1150 kfree(dev->dvb); in dvb_fini()
1151 dev->dvb = NULL; in dvb_fini()