Lines Matching refs:dev

84 int (*saa7134_dmasound_init)(struct saa7134_dev *dev);
85 int (*saa7134_dmasound_exit)(struct saa7134_dev *dev);
97 void saa7134_track_gpio(struct saa7134_dev *dev, const char *msg) in saa7134_track_gpio() argument
109 dev->name, mode, (~mode) & status, mode & status, msg); in saa7134_track_gpio()
112 void saa7134_set_gpio(struct saa7134_dev *dev, int bit_no, int value) in saa7134_set_gpio() argument
147 struct saa7134_dev* dev = container_of(work, struct saa7134_dev, request_module_wk); in request_module_async() local
148 if (card_is_empress(dev)) in request_module_async()
150 if (card_is_dvb(dev)) in request_module_async()
152 if (card_is_go7007(dev)) in request_module_async()
155 if (dev->pci->device != PCI_DEVICE_ID_PHILIPS_SAA7130) in request_module_async()
160 static void request_submodules(struct saa7134_dev *dev) in request_submodules() argument
162 INIT_WORK(&dev->request_module_wk, request_module_async); in request_submodules()
163 schedule_work(&dev->request_module_wk); in request_submodules()
166 static void flush_request_submodules(struct saa7134_dev *dev) in flush_request_submodules() argument
168 flush_work(&dev->request_module_wk); in flush_request_submodules()
172 #define request_submodules(dev) argument
173 #define flush_request_submodules(dev) argument
222 cpu = dma_alloc_coherent(&pci->dev, SAA7134_PGTABLE_SIZE, &dma_addr, in saa7134_pgtable_alloc()
254 dma_free_coherent(&pci->dev, pt->size, pt->cpu, pt->dma); in saa7134_pgtable_free()
260 int saa7134_buffer_queue(struct saa7134_dev *dev, in saa7134_buffer_queue() argument
267 spin_lock_irqsave(&dev->slock, flags); in saa7134_buffer_queue()
272 buf->activate(dev, buf, NULL); in saa7134_buffer_queue()
279 buf->activate(dev, buf, next); in saa7134_buffer_queue()
284 spin_unlock_irqrestore(&dev->slock, flags); in saa7134_buffer_queue()
288 void saa7134_buffer_finish(struct saa7134_dev *dev, in saa7134_buffer_finish() argument
301 void saa7134_buffer_next(struct saa7134_dev *dev, in saa7134_buffer_next() argument
306 assert_spin_locked(&dev->slock); in saa7134_buffer_next()
318 buf->activate(dev, buf, next); in saa7134_buffer_next()
324 saa7134_set_dmabits(dev); in saa7134_buffer_next()
332 struct saa7134_dev *dev = q->dev; in saa7134_buffer_timeout() local
335 spin_lock_irqsave(&dev->slock, flags); in saa7134_buffer_timeout()
346 saa7134_buffer_finish(dev, q, VB2_BUF_STATE_ERROR); in saa7134_buffer_timeout()
348 saa7134_buffer_next(dev, q); in saa7134_buffer_timeout()
349 spin_unlock_irqrestore(&dev->slock, flags); in saa7134_buffer_timeout()
352 void saa7134_stop_streaming(struct saa7134_dev *dev, struct saa7134_dmaqueue *q) in saa7134_stop_streaming() argument
358 spin_lock_irqsave(&dev->slock, flags); in saa7134_stop_streaming()
366 spin_unlock_irqrestore(&dev->slock, flags); in saa7134_stop_streaming()
373 int saa7134_set_dmabits(struct saa7134_dev *dev) in saa7134_set_dmabits() argument
379 assert_spin_locked(&dev->slock); in saa7134_set_dmabits()
381 if (dev->insuspend) in saa7134_set_dmabits()
385 if (dev->video_q.curr) { in saa7134_set_dmabits()
390 cap = dev->field; in saa7134_set_dmabits()
394 if (dev->video_q.curr && dev->fmt->planar) { in saa7134_set_dmabits()
400 if (dev->vbi_q.curr) { in saa7134_set_dmabits()
411 if (dev->dmasound.dma_running) { in saa7134_set_dmabits()
418 if (dev->ts_q.curr) { in saa7134_set_dmabits()
477 static void print_irqstatus(struct saa7134_dev *dev, int loop, in print_irqstatus() argument
501 struct saa7134_dev *dev = (struct saa7134_dev*) dev_id; in saa7134_irq() local
505 if (dev->insuspend) in saa7134_irq()
516 (dev->dmasound.priv_data != NULL) ) in saa7134_irq()
530 print_irqstatus(dev,loop,report,status); in saa7134_irq()
535 saa7134_irq_video_signalchange(dev); in saa7134_irq()
540 saa7134_irq_video_done(dev,status); in saa7134_irq()
544 saa7134_irq_vbi_done(dev,status); in saa7134_irq()
547 card_has_mpeg(dev)) { in saa7134_irq()
548 if (dev->mops->irq_ts_done != NULL) in saa7134_irq()
549 dev->mops->irq_ts_done(dev, status); in saa7134_irq()
551 saa7134_irq_ts_done(dev, status); in saa7134_irq()
555 switch (dev->has_remote) { in saa7134_irq()
557 if (!dev->remote) in saa7134_irq()
559 if (dev->remote->mask_keydown & 0x10000) { in saa7134_irq()
560 saa7134_input_irq(dev); in saa7134_irq()
573 switch (dev->has_remote) { in saa7134_irq()
575 if (!dev->remote) in saa7134_irq()
577 if ((dev->remote->mask_keydown & 0x40000) || in saa7134_irq()
578 (dev->remote->mask_keyup & 0x40000)) { in saa7134_irq()
579 saa7134_input_irq(dev); in saa7134_irq()
593 print_irqstatus(dev,loop,report,status); in saa7134_irq()
597 dev->name); in saa7134_irq()
602 dev->name); in saa7134_irq()
608 dev->name); in saa7134_irq()
614 dev->name); in saa7134_irq()
628 static int saa7134_hw_enable1(struct saa7134_dev *dev) in saa7134_hw_enable1() argument
660 static int saa7134_hwinit1(struct saa7134_dev *dev) in saa7134_hwinit1() argument
670 mutex_init(&dev->lock); in saa7134_hwinit1()
671 spin_lock_init(&dev->slock); in saa7134_hwinit1()
673 saa7134_track_gpio(dev,"pre-init"); in saa7134_hwinit1()
674 saa7134_video_init1(dev); in saa7134_hwinit1()
675 saa7134_vbi_init1(dev); in saa7134_hwinit1()
676 if (card_has_mpeg(dev)) in saa7134_hwinit1()
677 saa7134_ts_init1(dev); in saa7134_hwinit1()
678 saa7134_input_init1(dev); in saa7134_hwinit1()
680 saa7134_hw_enable1(dev); in saa7134_hwinit1()
686 static int saa7134_hw_enable2(struct saa7134_dev *dev) in saa7134_hw_enable2() argument
700 if (dev->has_remote == SAA7134_REMOTE_GPIO && dev->remote) { in saa7134_hw_enable2()
701 if (dev->remote->mask_keydown & 0x10000) in saa7134_hw_enable2()
704 if (dev->remote->mask_keydown & 0x40000) in saa7134_hw_enable2()
706 if (dev->remote->mask_keyup & 0x40000) in saa7134_hw_enable2()
711 if (dev->has_remote == SAA7134_REMOTE_I2C) { in saa7134_hw_enable2()
721 static int saa7134_hwinit2(struct saa7134_dev *dev) in saa7134_hwinit2() argument
726 saa7134_video_init2(dev); in saa7134_hwinit2()
727 saa7134_tvaudio_init2(dev); in saa7134_hwinit2()
729 saa7134_hw_enable2(dev); in saa7134_hwinit2()
736 static int saa7134_hwfini(struct saa7134_dev *dev) in saa7134_hwfini() argument
740 if (card_has_mpeg(dev)) in saa7134_hwfini()
741 saa7134_ts_fini(dev); in saa7134_hwfini()
742 saa7134_input_fini(dev); in saa7134_hwfini()
743 saa7134_vbi_fini(dev); in saa7134_hwfini()
744 saa7134_tvaudio_fini(dev); in saa7134_hwfini()
745 saa7134_video_fini(dev); in saa7134_hwfini()
783 static void saa7134_unregister_media_device(struct saa7134_dev *dev) in saa7134_unregister_media_device() argument
787 if (!dev->media_dev) in saa7134_unregister_media_device()
789 media_device_unregister(dev->media_dev); in saa7134_unregister_media_device()
790 media_device_cleanup(dev->media_dev); in saa7134_unregister_media_device()
791 kfree(dev->media_dev); in saa7134_unregister_media_device()
792 dev->media_dev = NULL; in saa7134_unregister_media_device()
796 static void saa7134_media_release(struct saa7134_dev *dev) in saa7134_media_release() argument
802 media_device_unregister_entity(&dev->input_ent[i]); in saa7134_media_release()
807 static void saa7134_create_entities(struct saa7134_dev *dev) in saa7134_create_entities() argument
814 media_device_for_each_entity(entity, dev->media_dev) { in saa7134_create_entities()
826 dev->demod.name = "saa713x"; in saa7134_create_entities()
827 dev->demod_pad[SAA7134_PAD_IF_INPUT].flags = MEDIA_PAD_FL_SINK; in saa7134_create_entities()
828 dev->demod_pad[SAA7134_PAD_IF_INPUT].sig_type = PAD_SIGNAL_ANALOG; in saa7134_create_entities()
829 dev->demod_pad[SAA7134_PAD_VID_OUT].flags = MEDIA_PAD_FL_SOURCE; in saa7134_create_entities()
830 dev->demod_pad[SAA7134_PAD_VID_OUT].sig_type = PAD_SIGNAL_DV; in saa7134_create_entities()
831 dev->demod.function = MEDIA_ENT_F_ATV_DECODER; in saa7134_create_entities()
833 ret = media_entity_pads_init(&dev->demod, SAA7134_NUM_PADS, in saa7134_create_entities()
834 dev->demod_pad); in saa7134_create_entities()
838 ret = media_device_register_entity(dev->media_dev, &dev->demod); in saa7134_create_entities()
842 dev->decoder = &dev->demod; in saa7134_create_entities()
844 dev->decoder = decoder; in saa7134_create_entities()
848 dev->video_pad.flags = MEDIA_PAD_FL_SINK; in saa7134_create_entities()
849 ret = media_entity_pads_init(&dev->video_dev->entity, 1, in saa7134_create_entities()
850 &dev->video_pad); in saa7134_create_entities()
854 dev->vbi_pad.flags = MEDIA_PAD_FL_SINK; in saa7134_create_entities()
855 ret = media_entity_pads_init(&dev->vbi_dev->entity, 1, in saa7134_create_entities()
856 &dev->vbi_pad); in saa7134_create_entities()
862 struct media_entity *ent = &dev->input_ent[i]; in saa7134_create_entities()
863 struct saa7134_input *in = &card_in(dev, i); in saa7134_create_entities()
874 dev->input_pad[i].flags = MEDIA_PAD_FL_SOURCE; in saa7134_create_entities()
902 ret = media_entity_pads_init(ent, 1, &dev->input_pad[i]); in saa7134_create_entities()
906 ret = media_device_register_entity(dev->media_dev, ent); in saa7134_create_entities()
912 if (card_has_radio(dev)) { in saa7134_create_entities()
913 struct saa7134_input *in = &saa7134_boards[dev->board].radio; in saa7134_create_entities()
914 struct media_entity *ent = &dev->input_ent[i]; in saa7134_create_entities()
918 dev->input_pad[i].flags = MEDIA_PAD_FL_SOURCE; in saa7134_create_entities()
921 ret = media_entity_pads_init(ent, 1, &dev->input_pad[i]); in saa7134_create_entities()
925 ret = media_device_register_entity(dev->media_dev, ent); in saa7134_create_entities()
932 static struct video_device *vdev_init(struct saa7134_dev *dev, in vdev_init() argument
942 vfd->v4l2_dev = &dev->v4l2_dev; in vdev_init()
945 dev->name, type, saa7134_boards[dev->board].name); in vdev_init()
946 video_set_drvdata(vfd, dev); in vdev_init()
950 static void saa7134_unregister_video(struct saa7134_dev *dev) in saa7134_unregister_video() argument
952 saa7134_media_release(dev); in saa7134_unregister_video()
954 if (dev->video_dev) { in saa7134_unregister_video()
955 if (video_is_registered(dev->video_dev)) in saa7134_unregister_video()
956 vb2_video_unregister_device(dev->video_dev); in saa7134_unregister_video()
958 video_device_release(dev->video_dev); in saa7134_unregister_video()
959 dev->video_dev = NULL; in saa7134_unregister_video()
961 if (dev->vbi_dev) { in saa7134_unregister_video()
962 if (video_is_registered(dev->vbi_dev)) in saa7134_unregister_video()
963 vb2_video_unregister_device(dev->vbi_dev); in saa7134_unregister_video()
965 video_device_release(dev->vbi_dev); in saa7134_unregister_video()
966 dev->vbi_dev = NULL; in saa7134_unregister_video()
968 if (dev->radio_dev) { in saa7134_unregister_video()
969 if (video_is_registered(dev->radio_dev)) in saa7134_unregister_video()
970 video_unregister_device(dev->radio_dev); in saa7134_unregister_video()
972 video_device_release(dev->radio_dev); in saa7134_unregister_video()
973 dev->radio_dev = NULL; in saa7134_unregister_video()
978 struct saa7134_dev *dev) in mpeg_ops_attach() argument
982 if (NULL != dev->mops) in mpeg_ops_attach()
984 if (saa7134_boards[dev->board].mpeg != ops->type) in mpeg_ops_attach()
986 err = ops->init(dev); in mpeg_ops_attach()
989 dev->mops = ops; in mpeg_ops_attach()
993 struct saa7134_dev *dev) in mpeg_ops_detach() argument
995 if (NULL == dev->mops) in mpeg_ops_detach()
997 if (dev->mops != ops) in mpeg_ops_detach()
999 dev->mops->fini(dev); in mpeg_ops_detach()
1000 dev->mops = NULL; in mpeg_ops_detach()
1006 struct saa7134_dev *dev; in saa7134_initdev() local
1013 dev = kzalloc(sizeof(*dev),GFP_KERNEL); in saa7134_initdev()
1014 if (NULL == dev) in saa7134_initdev()
1017 dev->nr = saa7134_devcount; in saa7134_initdev()
1018 sprintf(dev->name, "saa%x[%d]", pci_dev->device, dev->nr); in saa7134_initdev()
1021 dev->media_dev = kzalloc(sizeof(*dev->media_dev), GFP_KERNEL); in saa7134_initdev()
1022 if (!dev->media_dev) { in saa7134_initdev()
1026 media_device_pci_init(dev->media_dev, pci_dev, dev->name); in saa7134_initdev()
1027 dev->v4l2_dev.mdev = dev->media_dev; in saa7134_initdev()
1030 err = v4l2_device_register(&pci_dev->dev, &dev->v4l2_dev); in saa7134_initdev()
1035 dev->pci = pci_dev; in saa7134_initdev()
1044 pr_info("%s: quirk: PCIPCI_TRITON\n", dev->name); in saa7134_initdev()
1046 pr_info("%s: quirk: PCIPCI_NATOMA\n", dev->name); in saa7134_initdev()
1048 pr_info("%s: quirk: PCIPCI_VIAETBF\n", dev->name); in saa7134_initdev()
1050 pr_info("%s: quirk: PCIPCI_VSFX\n", dev->name); in saa7134_initdev()
1054 dev->name); in saa7134_initdev()
1061 dev->name,latency); in saa7134_initdev()
1066 dev->pci_rev = pci_dev->revision; in saa7134_initdev()
1067 pci_read_config_byte(pci_dev, PCI_LATENCY_TIMER, &dev->pci_lat); in saa7134_initdev()
1069 dev->name, pci_name(pci_dev), dev->pci_rev, pci_dev->irq, in saa7134_initdev()
1070 dev->pci_lat, in saa7134_initdev()
1073 err = dma_set_mask(&pci_dev->dev, DMA_BIT_MASK(32)); in saa7134_initdev()
1075 pr_warn("%s: Oops: no 32bit PCI DMA ???\n", dev->name); in saa7134_initdev()
1080 dev->board = pci_id->driver_data; in saa7134_initdev()
1081 if ((unsigned)card[dev->nr] < saa7134_bcount) in saa7134_initdev()
1082 dev->board = card[dev->nr]; in saa7134_initdev()
1083 if (SAA7134_BOARD_UNKNOWN == dev->board) in saa7134_initdev()
1085 else if (SAA7134_BOARD_NOAUTO == dev->board) { in saa7134_initdev()
1087 dev->board = SAA7134_BOARD_UNKNOWN; in saa7134_initdev()
1089 dev->autodetected = card[dev->nr] != dev->board; in saa7134_initdev()
1090 dev->tuner_type = saa7134_boards[dev->board].tuner_type; in saa7134_initdev()
1091 dev->tuner_addr = saa7134_boards[dev->board].tuner_addr; in saa7134_initdev()
1092 dev->radio_type = saa7134_boards[dev->board].radio_type; in saa7134_initdev()
1093 dev->radio_addr = saa7134_boards[dev->board].radio_addr; in saa7134_initdev()
1094 dev->tda9887_conf = saa7134_boards[dev->board].tda9887_conf; in saa7134_initdev()
1095 if (UNSET != tuner[dev->nr]) in saa7134_initdev()
1096 dev->tuner_type = tuner[dev->nr]; in saa7134_initdev()
1098 dev->name,pci_dev->subsystem_vendor, in saa7134_initdev()
1099 pci_dev->subsystem_device,saa7134_boards[dev->board].name, in saa7134_initdev()
1100 dev->board, dev->autodetected ? in saa7134_initdev()
1106 dev->name)) { in saa7134_initdev()
1109 dev->name,(unsigned long long)pci_resource_start(pci_dev,0)); in saa7134_initdev()
1112 dev->lmmio = ioremap(pci_resource_start(pci_dev, 0), in saa7134_initdev()
1114 dev->bmmio = (__u8 __iomem *)dev->lmmio; in saa7134_initdev()
1115 if (NULL == dev->lmmio) { in saa7134_initdev()
1118 dev->name); in saa7134_initdev()
1123 saa7134_board_init1(dev); in saa7134_initdev()
1124 saa7134_hwinit1(dev); in saa7134_initdev()
1128 IRQF_SHARED, dev->name, dev); in saa7134_initdev()
1131 dev->name,pci_dev->irq); in saa7134_initdev()
1137 saa7134_i2c_register(dev); in saa7134_initdev()
1138 saa7134_board_init2(dev); in saa7134_initdev()
1140 saa7134_hwinit2(dev); in saa7134_initdev()
1143 if (card_is_empress(dev)) { in saa7134_initdev()
1144 dev->empress_sd = in saa7134_initdev()
1145 v4l2_i2c_new_subdev(&dev->v4l2_dev, &dev->i2c_adap, in saa7134_initdev()
1147 saa7134_boards[dev->board].empress_addr, NULL); in saa7134_initdev()
1149 if (dev->empress_sd) in saa7134_initdev()
1150 dev->empress_sd->grp_id = GRP_EMPRESS; in saa7134_initdev()
1153 if (saa7134_boards[dev->board].rds_addr) { in saa7134_initdev()
1156 sd = v4l2_i2c_new_subdev(&dev->v4l2_dev, in saa7134_initdev()
1157 &dev->i2c_adap, "saa6588", in saa7134_initdev()
1158 0, I2C_ADDRS(saa7134_boards[dev->board].rds_addr)); in saa7134_initdev()
1160 pr_info("%s: found RDS decoder\n", dev->name); in saa7134_initdev()
1161 dev->has_rds = 1; in saa7134_initdev()
1167 mpeg_ops_attach(mops, dev); in saa7134_initdev()
1168 list_add_tail(&dev->devlist, &saa7134_devlist); in saa7134_initdev()
1172 saa7134_irq_video_signalchange(dev); in saa7134_initdev()
1174 if (TUNER_ABSENT != dev->tuner_type) in saa7134_initdev()
1175 saa_call_all(dev, core, s_power, 0); in saa7134_initdev()
1178 dev->video_dev = vdev_init(dev,&saa7134_video_template,"video"); in saa7134_initdev()
1179 dev->video_dev->ctrl_handler = &dev->ctrl_handler; in saa7134_initdev()
1180 dev->video_dev->lock = &dev->lock; in saa7134_initdev()
1181 dev->video_dev->queue = &dev->video_vbq; in saa7134_initdev()
1182 dev->video_dev->device_caps = V4L2_CAP_READWRITE | V4L2_CAP_STREAMING | in saa7134_initdev()
1184 if (dev->tuner_type != TUNER_ABSENT && dev->tuner_type != UNSET) in saa7134_initdev()
1185 dev->video_dev->device_caps |= V4L2_CAP_TUNER; in saa7134_initdev()
1187 err = video_register_device(dev->video_dev,VFL_TYPE_VIDEO, in saa7134_initdev()
1188 video_nr[dev->nr]); in saa7134_initdev()
1191 dev->name); in saa7134_initdev()
1195 dev->name, video_device_node_name(dev->video_dev)); in saa7134_initdev()
1197 dev->vbi_dev = vdev_init(dev, &saa7134_video_template, "vbi"); in saa7134_initdev()
1198 dev->vbi_dev->ctrl_handler = &dev->ctrl_handler; in saa7134_initdev()
1199 dev->vbi_dev->lock = &dev->lock; in saa7134_initdev()
1200 dev->vbi_dev->queue = &dev->vbi_vbq; in saa7134_initdev()
1201 dev->vbi_dev->device_caps = V4L2_CAP_READWRITE | V4L2_CAP_STREAMING | in saa7134_initdev()
1203 if (dev->tuner_type != TUNER_ABSENT && dev->tuner_type != UNSET) in saa7134_initdev()
1204 dev->vbi_dev->device_caps |= V4L2_CAP_TUNER; in saa7134_initdev()
1206 err = video_register_device(dev->vbi_dev,VFL_TYPE_VBI, in saa7134_initdev()
1207 vbi_nr[dev->nr]); in saa7134_initdev()
1211 dev->name, video_device_node_name(dev->vbi_dev)); in saa7134_initdev()
1213 if (card_has_radio(dev)) { in saa7134_initdev()
1214 dev->radio_dev = vdev_init(dev,&saa7134_radio_template,"radio"); in saa7134_initdev()
1215 dev->radio_dev->ctrl_handler = &dev->radio_ctrl_handler; in saa7134_initdev()
1216 dev->radio_dev->lock = &dev->lock; in saa7134_initdev()
1217 dev->radio_dev->device_caps = V4L2_CAP_RADIO | V4L2_CAP_TUNER; in saa7134_initdev()
1218 if (dev->has_rds) in saa7134_initdev()
1219 dev->radio_dev->device_caps |= V4L2_CAP_RDS_CAPTURE; in saa7134_initdev()
1220 err = video_register_device(dev->radio_dev,VFL_TYPE_RADIO, in saa7134_initdev()
1221 radio_nr[dev->nr]); in saa7134_initdev()
1225 dev->name, video_device_node_name(dev->radio_dev)); in saa7134_initdev()
1229 saa7134_create_entities(dev); in saa7134_initdev()
1231 err = v4l2_mc_create_media_graph(dev->media_dev); in saa7134_initdev()
1240 if (saa7134_dmasound_init && !dev->dmasound.priv_data) in saa7134_initdev()
1241 saa7134_dmasound_init(dev); in saa7134_initdev()
1243 request_submodules(dev); in saa7134_initdev()
1251 err = media_device_register(dev->media_dev); in saa7134_initdev()
1253 media_device_cleanup(dev->media_dev); in saa7134_initdev()
1261 saa7134_unregister_video(dev); in saa7134_initdev()
1262 list_del(&dev->devlist); in saa7134_initdev()
1263 saa7134_i2c_unregister(dev); in saa7134_initdev()
1264 free_irq(pci_dev->irq, dev); in saa7134_initdev()
1266 saa7134_hwfini(dev); in saa7134_initdev()
1267 iounmap(dev->lmmio); in saa7134_initdev()
1272 v4l2_device_unregister(&dev->v4l2_dev); in saa7134_initdev()
1275 kfree(dev->media_dev); in saa7134_initdev()
1277 kfree(dev); in saa7134_initdev()
1284 struct saa7134_dev *dev = container_of(v4l2_dev, struct saa7134_dev, v4l2_dev); in saa7134_finidev() local
1287 flush_request_submodules(dev); in saa7134_finidev()
1290 if (saa7134_dmasound_exit && dev->dmasound.priv_data) { in saa7134_finidev()
1291 saa7134_dmasound_exit(dev); in saa7134_finidev()
1298 print_irqstatus(dev,42,report,status); in saa7134_finidev()
1310 saa7134_hwfini(dev); in saa7134_finidev()
1314 list_del(&dev->devlist); in saa7134_finidev()
1316 mpeg_ops_detach(mops, dev); in saa7134_finidev()
1320 saa7134_i2c_unregister(dev); in saa7134_finidev()
1321 saa7134_unregister_video(dev); in saa7134_finidev()
1326 if (dev->dmasound.priv_data != NULL) { in saa7134_finidev()
1327 free_irq(pci_dev->irq, &dev->dmasound); in saa7134_finidev()
1328 dev->dmasound.priv_data = NULL; in saa7134_finidev()
1333 free_irq(pci_dev->irq, dev); in saa7134_finidev()
1334 iounmap(dev->lmmio); in saa7134_finidev()
1338 v4l2_device_unregister(&dev->v4l2_dev); in saa7134_finidev()
1340 saa7134_unregister_media_device(dev); in saa7134_finidev()
1343 kfree(dev); in saa7134_finidev()
1347 static int __maybe_unused saa7134_buffer_requeue(struct saa7134_dev *dev, in saa7134_buffer_requeue() argument
1352 assert_spin_locked(&dev->slock); in saa7134_buffer_requeue()
1366 buf->activate(dev, buf, next); in saa7134_buffer_requeue()
1375 struct saa7134_dev *dev = container_of(v4l2_dev, struct saa7134_dev, v4l2_dev); in saa7134_suspend() local
1382 dev->insuspend = 1; in saa7134_suspend()
1393 del_timer(&dev->video_q.timeout); in saa7134_suspend()
1394 del_timer(&dev->vbi_q.timeout); in saa7134_suspend()
1395 del_timer(&dev->ts_q.timeout); in saa7134_suspend()
1397 if (dev->remote && dev->remote->dev->users) in saa7134_suspend()
1398 saa7134_ir_close(dev->remote->dev); in saa7134_suspend()
1406 struct saa7134_dev *dev = container_of(v4l2_dev, struct saa7134_dev, v4l2_dev); in saa7134_resume() local
1412 saa7134_board_init1(dev); in saa7134_resume()
1415 if (saa7134_boards[dev->board].video_out) in saa7134_resume()
1416 saa7134_videoport_init(dev); in saa7134_resume()
1417 if (card_has_mpeg(dev)) in saa7134_resume()
1418 saa7134_ts_init_hw(dev); in saa7134_resume()
1419 if (dev->remote && dev->remote->dev->users) in saa7134_resume()
1420 saa7134_ir_open(dev->remote->dev); in saa7134_resume()
1421 saa7134_hw_enable1(dev); in saa7134_resume()
1425 saa7134_board_init2(dev); in saa7134_resume()
1428 saa7134_set_tvnorm_hw(dev); in saa7134_resume()
1429 saa7134_tvaudio_setmute(dev); in saa7134_resume()
1430 saa7134_tvaudio_setvolume(dev, dev->ctl_volume); in saa7134_resume()
1431 saa7134_tvaudio_init(dev); in saa7134_resume()
1432 saa7134_enable_i2s(dev); in saa7134_resume()
1433 saa7134_hw_enable2(dev); in saa7134_resume()
1435 saa7134_irq_video_signalchange(dev); in saa7134_resume()
1438 spin_lock_irqsave(&dev->slock, flags); in saa7134_resume()
1439 saa7134_buffer_requeue(dev, &dev->video_q); in saa7134_resume()
1440 saa7134_buffer_requeue(dev, &dev->vbi_q); in saa7134_resume()
1441 saa7134_buffer_requeue(dev, &dev->ts_q); in saa7134_resume()
1446 dev->dmasound.dma_running = 0; in saa7134_resume()
1449 dev->insuspend = 0; in saa7134_resume()
1451 saa7134_set_dmabits(dev); in saa7134_resume()
1452 spin_unlock_irqrestore(&dev->slock, flags); in saa7134_resume()
1461 struct saa7134_dev *dev; in saa7134_ts_register() local
1464 list_for_each_entry(dev, &saa7134_devlist, devlist) in saa7134_ts_register()
1465 mpeg_ops_attach(ops, dev); in saa7134_ts_register()
1473 struct saa7134_dev *dev; in saa7134_ts_unregister() local
1477 list_for_each_entry(dev, &saa7134_devlist, devlist) in saa7134_ts_unregister()
1478 mpeg_ops_detach(ops, dev); in saa7134_ts_unregister()