Lines Matching refs:dev

176 static inline void print_err_status(struct cx231xx *dev, int packet, int status)  in print_err_status()  argument
207 dev_dbg(dev->dev, in print_err_status()
210 dev_dbg(dev->dev, in print_err_status()
216 static inline int dvb_isoc_copy(struct cx231xx *dev, struct urb *urb) in dvb_isoc_copy() argument
220 if (!dev) in dvb_isoc_copy()
223 if (dev->state & DEV_DISCONNECTED) in dvb_isoc_copy()
227 print_err_status(dev, -1, urb->status); in dvb_isoc_copy()
236 print_err_status(dev, i, status); in dvb_isoc_copy()
241 dvb_dmx_swfilter(&dev->dvb->demux, in dvb_isoc_copy()
250 static inline int dvb_bulk_copy(struct cx231xx *dev, struct urb *urb) in dvb_bulk_copy() argument
252 if (!dev) in dvb_bulk_copy()
255 if (dev->state & DEV_DISCONNECTED) in dvb_bulk_copy()
259 print_err_status(dev, -1, urb->status); in dvb_bulk_copy()
265 dvb_dmx_swfilter(&dev->dvb->demux, in dvb_bulk_copy()
274 struct cx231xx *dev = dvb->adapter.priv; in start_streaming() local
276 if (dev->USE_ISO) { in start_streaming()
277 dev_dbg(dev->dev, "DVB transfer mode is ISO.\n"); in start_streaming()
278 cx231xx_set_alt_setting(dev, INDEX_TS1, 4); in start_streaming()
279 rc = cx231xx_set_mode(dev, CX231XX_DIGITAL_MODE); in start_streaming()
282 dev->mode_tv = 1; in start_streaming()
283 return cx231xx_init_isoc(dev, CX231XX_DVB_MAX_PACKETS, in start_streaming()
285 dev->ts1_mode.max_pkt_size, in start_streaming()
288 dev_dbg(dev->dev, "DVB transfer mode is BULK.\n"); in start_streaming()
289 cx231xx_set_alt_setting(dev, INDEX_TS1, 0); in start_streaming()
290 rc = cx231xx_set_mode(dev, CX231XX_DIGITAL_MODE); in start_streaming()
293 dev->mode_tv = 1; in start_streaming()
294 return cx231xx_init_bulk(dev, CX231XX_DVB_MAX_PACKETS, in start_streaming()
296 dev->ts1_mode.max_pkt_size, in start_streaming()
304 struct cx231xx *dev = dvb->adapter.priv; in stop_streaming() local
306 if (dev->USE_ISO) in stop_streaming()
307 cx231xx_uninit_isoc(dev); in stop_streaming()
309 cx231xx_uninit_bulk(dev); in stop_streaming()
311 cx231xx_set_mode(dev, CX231XX_SUSPEND); in stop_streaming()
358 struct cx231xx *dev = fe->dvb->priv; in cx231xx_dvb_bus_ctrl() local
361 return cx231xx_set_mode(dev, CX231XX_DIGITAL_MODE); in cx231xx_dvb_bus_ctrl()
363 return cx231xx_set_mode(dev, CX231XX_SUSPEND); in cx231xx_dvb_bus_ctrl()
379 static int attach_xc5000(u8 addr, struct cx231xx *dev)
386 cfg.i2c_adap = cx231xx_get_i2c_adap(dev, dev->board.tuner_i2c_master);
389 if (!dev->dvb->frontend) {
390 dev_err(dev->dev, "%s/2: dvb frontend not attached. "
391 "Can't attach xc5000\n", dev->name);
395 fe = dvb_attach(xc5000_attach, dev->dvb->frontend, &cfg);
397 dev_err(dev->dev, "%s/2: xc5000 attach failed\n", dev->name);
398 dvb_frontend_detach(dev->dvb->frontend);
399 dev->dvb->frontend = NULL;
403 dev_info(dev->dev, "%s/2: xc5000 attached\n", dev->name);
409 int cx231xx_set_analog_freq(struct cx231xx *dev, u32 freq) in cx231xx_set_analog_freq() argument
411 if ((dev->dvb != NULL) && (dev->dvb->frontend != NULL)) { in cx231xx_set_analog_freq()
413 struct dvb_tuner_ops *dops = &dev->dvb->frontend->ops.tuner_ops; in cx231xx_set_analog_freq()
419 params.std = dev->norm; in cx231xx_set_analog_freq()
424 dops->set_analog_params(dev->dvb->frontend, &params); in cx231xx_set_analog_freq()
432 int cx231xx_reset_analog_tuner(struct cx231xx *dev) in cx231xx_reset_analog_tuner() argument
436 if ((dev->dvb != NULL) && (dev->dvb->frontend != NULL)) { in cx231xx_reset_analog_tuner()
438 struct dvb_tuner_ops *dops = &dev->dvb->frontend->ops.tuner_ops; in cx231xx_reset_analog_tuner()
440 if (dops->init != NULL && !dev->xc_fw_load_done) { in cx231xx_reset_analog_tuner()
442 dev_dbg(dev->dev, in cx231xx_reset_analog_tuner()
444 status = dops->init(dev->dvb->frontend); in cx231xx_reset_analog_tuner()
446 dev->xc_fw_load_done = 1; in cx231xx_reset_analog_tuner()
447 dev_dbg(dev->dev, in cx231xx_reset_analog_tuner()
450 dev->xc_fw_load_done = 0; in cx231xx_reset_analog_tuner()
451 dev_dbg(dev->dev, in cx231xx_reset_analog_tuner()
465 struct cx231xx *dev, struct device *device) in register_dvb() argument
473 result = dvb_register_adapter(&dvb->adapter, dev->name, module, device, in register_dvb()
476 dev_warn(dev->dev, in register_dvb()
478 dev->name, result); in register_dvb()
481 dvb_register_media_controller(&dvb->adapter, dev->media_dev); in register_dvb()
486 dvb->adapter.priv = dev; in register_dvb()
491 dev_warn(dev->dev, in register_dvb()
493 dev->name, result); in register_dvb()
509 dev_warn(dev->dev, in register_dvb()
511 dev->name, result); in register_dvb()
520 dev_warn(dev->dev, in register_dvb()
522 dev->name, result); in register_dvb()
529 dev_warn(dev->dev, in register_dvb()
531 dev->name, result); in register_dvb()
538 dev_warn(dev->dev, in register_dvb()
540 dev->name, result); in register_dvb()
546 dev_warn(dev->dev, in register_dvb()
548 dev->name, result); in register_dvb()
586 module_put(client->dev.driver->owner); in unregister_dvb()
594 static int dvb_init(struct cx231xx *dev) in dvb_init() argument
601 if (!dev->board.has_dvb) { in dvb_init()
609 dev_info(dev->dev, in dvb_init()
613 dev->dvb = dvb; in dvb_init()
614 dev->cx231xx_set_analog_freq = cx231xx_set_analog_freq; in dvb_init()
615 dev->cx231xx_reset_analog_tuner = cx231xx_reset_analog_tuner; in dvb_init()
617 tuner_i2c = cx231xx_get_i2c_adap(dev, dev->board.tuner_i2c_master); in dvb_init()
618 demod_i2c = cx231xx_get_i2c_adap(dev, dev->board.demod_i2c_master); in dvb_init()
619 mutex_lock(&dev->lock); in dvb_init()
620 cx231xx_set_mode(dev, CX231XX_DIGITAL_MODE); in dvb_init()
621 cx231xx_demod_reset(dev); in dvb_init()
623 switch (dev->model) { in dvb_init()
627 dev->dvb->frontend = dvb_attach(s5h1432_attach, in dvb_init()
631 if (dev->dvb->frontend == NULL) { in dvb_init()
632 dev_err(dev->dev, in dvb_init()
641 if (!dvb_attach(xc5000_attach, dev->dvb->frontend, in dvb_init()
652 dev->dvb->frontend = dvb_attach(s5h1411_attach, in dvb_init()
656 if (dev->dvb->frontend == NULL) { in dvb_init()
657 dev_err(dev->dev, in dvb_init()
666 if (!dvb_attach(xc5000_attach, dev->dvb->frontend, in dvb_init()
675 dev->dvb->frontend = dvb_attach(s5h1432_attach, in dvb_init()
679 if (dev->dvb->frontend == NULL) { in dvb_init()
680 dev_err(dev->dev, in dvb_init()
689 if (!dvb_attach(tda18271_attach, dev->dvb->frontend, in dvb_init()
699 dev->dvb->frontend = dvb_attach(s5h1411_attach, in dvb_init()
703 if (dev->dvb->frontend == NULL) { in dvb_init()
704 dev_err(dev->dev, in dvb_init()
713 if (!dvb_attach(tda18271_attach, dev->dvb->frontend, in dvb_init()
722 dev_info(dev->dev, in dvb_init()
726 dev->dvb->frontend = dvb_attach(lgdt3305_attach, in dvb_init()
730 if (dev->dvb->frontend == NULL) { in dvb_init()
731 dev_err(dev->dev, in dvb_init()
740 dvb_attach(tda18271_attach, dev->dvb->frontend, in dvb_init()
747 dev->dvb->frontend = dvb_attach(si2165_attach, in dvb_init()
752 if (dev->dvb->frontend == NULL) { in dvb_init()
753 dev_err(dev->dev, in dvb_init()
759 dev->dvb->frontend->ops.i2c_gate_ctrl = NULL; in dvb_init()
764 dvb_attach(tda18271_attach, dev->dvb->frontend, in dvb_init()
769 dev->cx231xx_reset_analog_tuner = NULL; in dvb_init()
780 dev->dvb->frontend = dvb_attach(si2165_attach, in dvb_init()
785 if (dev->dvb->frontend == NULL) { in dvb_init()
786 dev_err(dev->dev, in dvb_init()
792 dev->dvb->frontend->ops.i2c_gate_ctrl = NULL; in dvb_init()
799 si2157_config.fe = dev->dvb->frontend; in dvb_init()
810 if (client == NULL || client->dev.driver == NULL) { in dvb_init()
811 dvb_frontend_detach(dev->dvb->frontend); in dvb_init()
816 if (!try_module_get(client->dev.driver->owner)) { in dvb_init()
818 dvb_frontend_detach(dev->dvb->frontend); in dvb_init()
823 dev->cx231xx_reset_analog_tuner = NULL; in dvb_init()
825 dev->dvb->i2c_client_tuner = client; in dvb_init()
836 dev->dvb->frontend = dvb_attach(lgdt3306a_attach, in dvb_init()
841 if (dev->dvb->frontend == NULL) { in dvb_init()
842 dev_err(dev->dev, in dvb_init()
848 dev->dvb->frontend->ops.i2c_gate_ctrl = NULL; in dvb_init()
855 si2157_config.fe = dev->dvb->frontend; in dvb_init()
866 if (client == NULL || client->dev.driver == NULL) { in dvb_init()
867 dvb_frontend_detach(dev->dvb->frontend); in dvb_init()
872 if (!try_module_get(client->dev.driver->owner)) { in dvb_init()
874 dvb_frontend_detach(dev->dvb->frontend); in dvb_init()
879 dev->cx231xx_reset_analog_tuner = NULL; in dvb_init()
881 dev->dvb->i2c_client_tuner = client; in dvb_init()
887 dev_info(dev->dev, in dvb_init()
891 dev->dvb->frontend = dvb_attach(mb86a20s_attach, in dvb_init()
895 if (dev->dvb->frontend == NULL) { in dvb_init()
896 dev_err(dev->dev, in dvb_init()
905 dvb_attach(tda18271_attach, dev->dvb->frontend, in dvb_init()
911 dev_err(dev->dev, in dvb_init()
913 dev->name); in dvb_init()
917 dev_err(dev->dev, in dvb_init()
918 "%s/2: frontend initialization failed\n", dev->name); in dvb_init()
924 result = register_dvb(dvb, THIS_MODULE, dev, dev->dev); in dvb_init()
930 dev_info(dev->dev, "Successfully loaded cx231xx-dvb\n"); in dvb_init()
933 cx231xx_set_mode(dev, CX231XX_SUSPEND); in dvb_init()
934 mutex_unlock(&dev->lock); in dvb_init()
939 dev->dvb = NULL; in dvb_init()
943 static int dvb_fini(struct cx231xx *dev) in dvb_fini() argument
945 if (!dev->board.has_dvb) { in dvb_fini()
950 if (dev->dvb) { in dvb_fini()
951 unregister_dvb(dev->dvb); in dvb_fini()
952 dev->dvb = NULL; in dvb_fini()