Lines Matching refs:av7110

92 static int write_ts_to_decoder(struct av7110 *av7110, int type, const u8 *buf, size_t len);
119 int av7110_av_start_record(struct av7110 *av7110, int av, in av7110_av_start_record() argument
125 dprintk(2, "av7110:%p, , dvb_demux_feed:%p\n", av7110, dvbdmxfeed); in av7110_av_start_record()
127 if (av7110->playing || (av7110->rec_mode & av)) in av7110_av_start_record()
129 av7110_fw_cmd(av7110, COMTYPE_REC_PLAY, __Stop, 0); in av7110_av_start_record()
131 av7110->rec_mode |= av; in av7110_av_start_record()
133 switch (av7110->rec_mode) { in av7110_av_start_record()
135 dvb_filter_pes2ts_init(&av7110->p2t[0], in av7110_av_start_record()
139 ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY, __Record, 2, AudioPES, 0); in av7110_av_start_record()
143 dvb_filter_pes2ts_init(&av7110->p2t[1], in av7110_av_start_record()
147 ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY, __Record, 2, VideoPES, 0); in av7110_av_start_record()
151 dvb_filter_pes2ts_init(&av7110->p2t[0], in av7110_av_start_record()
155 dvb_filter_pes2ts_init(&av7110->p2t[1], in av7110_av_start_record()
159 ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY, __Record, 2, AV_PES, 0); in av7110_av_start_record()
165 int av7110_av_start_play(struct av7110 *av7110, int av) in av7110_av_start_play() argument
168 dprintk(2, "av7110:%p, \n", av7110); in av7110_av_start_play()
170 if (av7110->rec_mode) in av7110_av_start_play()
172 if (av7110->playing & av) in av7110_av_start_play()
175 av7110_fw_cmd(av7110, COMTYPE_REC_PLAY, __Stop, 0); in av7110_av_start_play()
177 if (av7110->playing == RP_NONE) { in av7110_av_start_play()
178 av7110_ipack_reset(&av7110->ipack[0]); in av7110_av_start_play()
179 av7110_ipack_reset(&av7110->ipack[1]); in av7110_av_start_play()
182 av7110->playing |= av; in av7110_av_start_play()
183 switch (av7110->playing) { in av7110_av_start_play()
185 ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY, __Play, 2, AudioPES, 0); in av7110_av_start_play()
188 ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY, __Play, 2, VideoPES, 0); in av7110_av_start_play()
189 av7110->sinfo = 0; in av7110_av_start_play()
192 av7110->sinfo = 0; in av7110_av_start_play()
193 ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY, __Play, 2, AV_PES, 0); in av7110_av_start_play()
199 int av7110_av_stop(struct av7110 *av7110, int av) in av7110_av_stop() argument
202 dprintk(2, "av7110:%p, \n", av7110); in av7110_av_stop()
204 if (!(av7110->playing & av) && !(av7110->rec_mode & av)) in av7110_av_stop()
206 av7110_fw_cmd(av7110, COMTYPE_REC_PLAY, __Stop, 0); in av7110_av_stop()
207 if (av7110->playing) { in av7110_av_stop()
208 av7110->playing &= ~av; in av7110_av_stop()
209 switch (av7110->playing) { in av7110_av_stop()
211 ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY, __Play, 2, AudioPES, 0); in av7110_av_stop()
214 ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY, __Play, 2, VideoPES, 0); in av7110_av_stop()
217 ret = av7110_set_vidmode(av7110, av7110->vidmode); in av7110_av_stop()
221 av7110->rec_mode &= ~av; in av7110_av_stop()
222 switch (av7110->rec_mode) { in av7110_av_stop()
224 ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY, __Record, 2, AudioPES, 0); in av7110_av_stop()
227 ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY, __Record, 2, VideoPES, 0); in av7110_av_stop()
283 int av7110_set_volume(struct av7110 *av7110, int volleft, int volright) in av7110_set_volume() argument
287 dprintk(2, "av7110:%p, \n", av7110); in av7110_set_volume()
289 av7110->mixer.volume_left = volleft; in av7110_set_volume()
290 av7110->mixer.volume_right = volright; in av7110_set_volume()
292 switch (av7110->adac_type) { in av7110_set_volume()
300 if ((err = SendDAC(av7110, 3, 0x80 + volleft))) in av7110_set_volume()
302 return SendDAC(av7110, 4, volright); in av7110_set_volume()
307 i2c_writereg(av7110, 0x20, 0x03, volleft); in av7110_set_volume()
308 i2c_writereg(av7110, 0x20, 0x04, volright); in av7110_set_volume()
316 msp_writereg(av7110, MSP_WR_DSP, 0x0001, balance << 8); in av7110_set_volume()
317 msp_writereg(av7110, MSP_WR_DSP, 0x0000, val); /* loudspeaker */ in av7110_set_volume()
318 msp_writereg(av7110, MSP_WR_DSP, 0x0006, val); /* headphonesr */ in av7110_set_volume()
326 msp_writereg(av7110, MSP_WR_DSP, 0x0001, balance << 8); in av7110_set_volume()
327 msp_writereg(av7110, MSP_WR_DSP, 0x0000, val); /* loudspeaker */ in av7110_set_volume()
334 int av7110_set_vidmode(struct av7110 *av7110, enum av7110_video_mode mode) in av7110_set_vidmode() argument
337 dprintk(2, "av7110:%p, \n", av7110); in av7110_set_vidmode()
339 ret = av7110_fw_cmd(av7110, COMTYPE_ENCODER, LoadVidCode, 1, mode); in av7110_set_vidmode()
341 if (!ret && !av7110->playing) { in av7110_set_vidmode()
342 ret = ChangePIDs(av7110, av7110->pids[DMX_PES_VIDEO], in av7110_set_vidmode()
343 av7110->pids[DMX_PES_AUDIO], in av7110_set_vidmode()
344 av7110->pids[DMX_PES_TELETEXT], in av7110_set_vidmode()
345 0, av7110->pids[DMX_PES_PCR]); in av7110_set_vidmode()
347 ret = av7110_fw_cmd(av7110, COMTYPE_PIDFILTER, Scan, 0); in av7110_set_vidmode()
364 static int get_video_format(struct av7110 *av7110, u8 *buf, int count) in get_video_format() argument
372 dprintk(2, "av7110:%p, \n", av7110); in get_video_format()
374 if (av7110->sinfo) in get_video_format()
384 ret = av7110_set_vidmode(av7110, sw2mode[sw]); in get_video_format()
387 av7110->sinfo = 1; in get_video_format()
424 struct av7110 *av7110 = (struct av7110 *) priv; in play_video_cb() local
425 dprintk(2, "av7110:%p, \n", av7110); in play_video_cb()
428 get_video_format(av7110, buf, count); in play_video_cb()
429 aux_ring_buffer_write(&av7110->avout, buf, count); in play_video_cb()
431 aux_ring_buffer_write(&av7110->aout, buf, count); in play_video_cb()
436 struct av7110 *av7110 = (struct av7110 *) priv; in play_audio_cb() local
437 dprintk(2, "av7110:%p, \n", av7110); in play_audio_cb()
439 aux_ring_buffer_write(&av7110->aout, buf, count); in play_audio_cb()
445 static ssize_t ts_play(struct av7110 *av7110, const char __user *buf, in ts_play() argument
454 rb = (type) ? &av7110->avout : &av7110->aout; in ts_play()
455 kb = av7110->kbuf[type]; in ts_play()
472 write_ts_to_decoder(av7110, type, kb, TS_SIZE); in ts_play()
481 #define FREE_COND (dvb_ringbuffer_free(&av7110->avout) >= 20 * 1024 && \
482 dvb_ringbuffer_free(&av7110->aout) >= 20 * 1024)
484 static ssize_t dvb_play(struct av7110 *av7110, const char __user *buf, in dvb_play() argument
488 dprintk(2, "av7110:%p, \n", av7110); in dvb_play()
490 if (!av7110->kbuf[type]) in dvb_play()
500 if (wait_event_interruptible(av7110->avout.queue, in dvb_play()
507 if (copy_from_user(av7110->kbuf[type], buf, n)) in dvb_play()
509 av7110_ipack_instant_repack(av7110->kbuf[type], n, in dvb_play()
510 &av7110->ipack[type]); in dvb_play()
517 static ssize_t dvb_play_kernel(struct av7110 *av7110, const u8 *buf, in dvb_play_kernel() argument
521 dprintk(2, "av7110:%p, \n", av7110); in dvb_play_kernel()
523 if (!av7110->kbuf[type]) in dvb_play_kernel()
533 if (wait_event_interruptible(av7110->avout.queue, in dvb_play_kernel()
540 av7110_ipack_instant_repack(buf, n, &av7110->ipack[type]); in dvb_play_kernel()
547 static ssize_t dvb_aplay(struct av7110 *av7110, const char __user *buf, in dvb_aplay() argument
551 dprintk(2, "av7110:%p, \n", av7110); in dvb_aplay()
553 if (!av7110->kbuf[type]) in dvb_aplay()
555 if (nonblock && dvb_ringbuffer_free(&av7110->aout) < 20 * 1024) in dvb_aplay()
559 if (dvb_ringbuffer_free(&av7110->aout) < 20 * 1024) { in dvb_aplay()
562 if (wait_event_interruptible(av7110->aout.queue, in dvb_aplay()
563 (dvb_ringbuffer_free(&av7110->aout) >= 20 * 1024))) in dvb_aplay()
569 if (copy_from_user(av7110->kbuf[type], buf, n)) in dvb_aplay()
571 av7110_ipack_instant_repack(av7110->kbuf[type], n, in dvb_aplay()
572 &av7110->ipack[type]); in dvb_aplay()
824 static int write_ts_to_decoder(struct av7110 *av7110, int type, const u8 *buf, size_t len) in write_ts_to_decoder() argument
826 struct ipack *ipack = &av7110->ipack[type]; in write_ts_to_decoder()
854 struct av7110 *av7110 = (struct av7110 *) demux->priv; in av7110_write_to_decoder() local
856 dprintk(2, "av7110:%p, \n", av7110); in av7110_write_to_decoder()
858 if (av7110->full_ts && demux->dmx.frontend->source != DMX_MEMORY_FE) in av7110_write_to_decoder()
863 if (av7110->audiostate.stream_source == AUDIO_SOURCE_MEMORY) in av7110_write_to_decoder()
867 if (av7110->videostate.stream_source == VIDEO_SOURCE_MEMORY) in av7110_write_to_decoder()
874 return write_ts_to_decoder(av7110, feed->pes_type, buf, len); in av7110_write_to_decoder()
882 void dvb_video_add_event(struct av7110 *av7110, struct video_event *event) in dvb_video_add_event() argument
884 struct dvb_video_events *events = &av7110->video_events; in dvb_video_add_event()
905 static int dvb_video_get_event (struct av7110 *av7110, struct video_event *event, int flags) in dvb_video_get_event() argument
907 struct dvb_video_events *events = &av7110->video_events; in dvb_video_get_event()
944 struct av7110 *av7110 = dvbdev->priv; in dvb_video_poll() local
947 dprintk(2, "av7110:%p, \n", av7110); in dvb_video_poll()
950 poll_wait(file, &av7110->avout.queue, wait); in dvb_video_poll()
952 poll_wait(file, &av7110->video_events.wait_queue, wait); in dvb_video_poll()
954 if (av7110->video_events.eventw != av7110->video_events.eventr) in dvb_video_poll()
958 if (av7110->playing) { in dvb_video_poll()
974 struct av7110 *av7110 = dvbdev->priv; in dvb_video_write() local
977 dprintk(2, "av7110:%p, \n", av7110); in dvb_video_write()
982 if (av7110->videostate.stream_source != VIDEO_SOURCE_MEMORY) in dvb_video_write()
988 return ts_play(av7110, buf, count, file->f_flags & O_NONBLOCK, 1); in dvb_video_write()
990 return dvb_play(av7110, buf, count, file->f_flags & O_NONBLOCK, 1); in dvb_video_write()
996 struct av7110 *av7110 = dvbdev->priv; in dvb_audio_poll() local
999 dprintk(2, "av7110:%p, \n", av7110); in dvb_audio_poll()
1001 poll_wait(file, &av7110->aout.queue, wait); in dvb_audio_poll()
1003 if (av7110->playing) { in dvb_audio_poll()
1004 if (dvb_ringbuffer_free(&av7110->aout) >= 20 * 1024) in dvb_audio_poll()
1016 struct av7110 *av7110 = dvbdev->priv; in dvb_audio_write() local
1019 dprintk(2, "av7110:%p, \n", av7110); in dvb_audio_write()
1021 if (av7110->audiostate.stream_source != AUDIO_SOURCE_MEMORY) { in dvb_audio_write()
1029 return ts_play(av7110, buf, count, file->f_flags & O_NONBLOCK, 0); in dvb_audio_write()
1031 return dvb_aplay(av7110, buf, count, file->f_flags & O_NONBLOCK, 0); in dvb_audio_write()
1038 static int play_iframe(struct av7110 *av7110, char __user *buf, unsigned int len, int nonblock) in play_iframe() argument
1044 dprintk(2, "av7110:%p, \n", av7110); in play_iframe()
1046 if (!(av7110->playing & RP_VIDEO)) { in play_iframe()
1047 if (av7110_av_start_play(av7110, RP_VIDEO) < 0) in play_iframe()
1083 dvb_play_kernel(av7110, iframe_header, sizeof(iframe_header), 0, 1); in play_iframe()
1086 dvb_play(av7110, buf, len, 0, 1); in play_iframe()
1088 av7110_ipack_flush(&av7110->ipack[1]); in play_iframe()
1091 return vidcom(av7110, AV_VIDEO_CMD_FREEZE, 1); in play_iframe()
1101 struct av7110 *av7110 = dvbdev->priv; in dvb_video_ioctl() local
1105 dprintk(1, "av7110:%p, cmd=%04x\n", av7110,cmd); in dvb_video_ioctl()
1114 if (mutex_lock_interruptible(&av7110->ioctl_mutex)) in dvb_video_ioctl()
1119 av7110->videostate.play_state = VIDEO_STOPPED; in dvb_video_ioctl()
1120 if (av7110->videostate.stream_source == VIDEO_SOURCE_MEMORY) in dvb_video_ioctl()
1121 ret = av7110_av_stop(av7110, RP_VIDEO); in dvb_video_ioctl()
1123 ret = vidcom(av7110, AV_VIDEO_CMD_STOP, in dvb_video_ioctl()
1124 av7110->videostate.video_blank ? 0 : 1); in dvb_video_ioctl()
1126 av7110->trickmode = TRICK_NONE; in dvb_video_ioctl()
1130 av7110->trickmode = TRICK_NONE; in dvb_video_ioctl()
1131 if (av7110->videostate.play_state == VIDEO_FREEZED) { in dvb_video_ioctl()
1132 av7110->videostate.play_state = VIDEO_PLAYING; in dvb_video_ioctl()
1133 ret = vidcom(av7110, AV_VIDEO_CMD_PLAY, 0); in dvb_video_ioctl()
1137 if (av7110->videostate.stream_source == VIDEO_SOURCE_MEMORY) { in dvb_video_ioctl()
1138 if (av7110->playing == RP_AV) { in dvb_video_ioctl()
1139 ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY, __Stop, 0); in dvb_video_ioctl()
1142 av7110->playing &= ~RP_VIDEO; in dvb_video_ioctl()
1144 ret = av7110_av_start_play(av7110, RP_VIDEO); in dvb_video_ioctl()
1147 ret = vidcom(av7110, AV_VIDEO_CMD_PLAY, 0); in dvb_video_ioctl()
1149 av7110->videostate.play_state = VIDEO_PLAYING; in dvb_video_ioctl()
1153 av7110->videostate.play_state = VIDEO_FREEZED; in dvb_video_ioctl()
1154 if (av7110->playing & RP_VIDEO) in dvb_video_ioctl()
1155 ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY, __Pause, 0); in dvb_video_ioctl()
1157 ret = vidcom(av7110, AV_VIDEO_CMD_FREEZE, 1); in dvb_video_ioctl()
1159 av7110->trickmode = TRICK_FREEZE; in dvb_video_ioctl()
1163 if (av7110->playing & RP_VIDEO) in dvb_video_ioctl()
1164 ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY, __Continue, 0); in dvb_video_ioctl()
1166 ret = vidcom(av7110, AV_VIDEO_CMD_PLAY, 0); in dvb_video_ioctl()
1168 av7110->videostate.play_state = VIDEO_PLAYING; in dvb_video_ioctl()
1169 av7110->trickmode = TRICK_NONE; in dvb_video_ioctl()
1174 av7110->videostate.stream_source = (video_stream_source_t) arg; in dvb_video_ioctl()
1178 av7110->videostate.video_blank = (int) arg; in dvb_video_ioctl()
1182 memcpy(parg, &av7110->videostate, sizeof(struct video_status)); in dvb_video_ioctl()
1186 ret = dvb_video_get_event(av7110, parg, file->f_flags); in dvb_video_ioctl()
1190 memcpy(parg, &av7110->video_size, sizeof(video_size_t)); in dvb_video_ioctl()
1198 av7110->display_panscan = VID_PAN_SCAN_PREF; in dvb_video_ioctl()
1201 av7110->display_panscan = VID_VC_AND_PS_PREF; in dvb_video_ioctl()
1204 av7110->display_panscan = VID_CENTRE_CUT_PREF; in dvb_video_ioctl()
1211 av7110->videostate.display_format = format; in dvb_video_ioctl()
1212 ret = av7110_fw_cmd(av7110, COMTYPE_ENCODER, SetPanScanType, in dvb_video_ioctl()
1213 1, av7110->display_panscan); in dvb_video_ioctl()
1222 av7110->display_ar = arg; in dvb_video_ioctl()
1223 ret = av7110_fw_cmd(av7110, COMTYPE_ENCODER, SetMonitorType, in dvb_video_ioctl()
1231 av7110->videostate.stream_source = VIDEO_SOURCE_MEMORY; in dvb_video_ioctl()
1232 dvb_ringbuffer_flush_spinlock_wakeup(&av7110->avout); in dvb_video_ioctl()
1233 ret = play_iframe(av7110, pic->iFrame, pic->size, in dvb_video_ioctl()
1240 if (av7110->playing & RP_VIDEO) in dvb_video_ioctl()
1241 ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY, in dvb_video_ioctl()
1244 ret = vidcom(av7110, AV_VIDEO_CMD_FFWD, arg); in dvb_video_ioctl()
1246 av7110->trickmode = TRICK_FAST; in dvb_video_ioctl()
1247 av7110->videostate.play_state = VIDEO_PLAYING; in dvb_video_ioctl()
1252 if (av7110->playing&RP_VIDEO) { in dvb_video_ioctl()
1253 if (av7110->trickmode != TRICK_SLOW) in dvb_video_ioctl()
1254 ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY, __Slow, 2, 0, 0); in dvb_video_ioctl()
1256 ret = vidcom(av7110, AV_VIDEO_CMD_SLOW, arg); in dvb_video_ioctl()
1258 ret = vidcom(av7110, AV_VIDEO_CMD_PLAY, 0); in dvb_video_ioctl()
1260 ret = vidcom(av7110, AV_VIDEO_CMD_STOP, 0); in dvb_video_ioctl()
1262 ret = vidcom(av7110, AV_VIDEO_CMD_SLOW, arg); in dvb_video_ioctl()
1265 av7110->trickmode = TRICK_SLOW; in dvb_video_ioctl()
1266 av7110->videostate.play_state = VIDEO_PLAYING; in dvb_video_ioctl()
1276 dvb_ringbuffer_flush_spinlock_wakeup(&av7110->avout); in dvb_video_ioctl()
1277 av7110_ipack_reset(&av7110->ipack[1]); in dvb_video_ioctl()
1278 if (av7110->playing == RP_AV) { in dvb_video_ioctl()
1279 ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY, in dvb_video_ioctl()
1283 if (av7110->trickmode == TRICK_FAST) in dvb_video_ioctl()
1284 ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY, in dvb_video_ioctl()
1286 if (av7110->trickmode == TRICK_SLOW) { in dvb_video_ioctl()
1287 ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY, in dvb_video_ioctl()
1290 ret = vidcom(av7110, AV_VIDEO_CMD_SLOW, arg); in dvb_video_ioctl()
1292 if (av7110->trickmode == TRICK_FREEZE) in dvb_video_ioctl()
1293 ret = vidcom(av7110, AV_VIDEO_CMD_STOP, 1); in dvb_video_ioctl()
1305 mutex_unlock(&av7110->ioctl_mutex); in dvb_video_ioctl()
1313 struct av7110 *av7110 = dvbdev->priv; in dvb_audio_ioctl() local
1317 dprintk(1, "av7110:%p, cmd=%04x\n", av7110,cmd); in dvb_audio_ioctl()
1323 if (mutex_lock_interruptible(&av7110->ioctl_mutex)) in dvb_audio_ioctl()
1328 if (av7110->audiostate.stream_source == AUDIO_SOURCE_MEMORY) in dvb_audio_ioctl()
1329 ret = av7110_av_stop(av7110, RP_AUDIO); in dvb_audio_ioctl()
1331 ret = audcom(av7110, AUDIO_CMD_MUTE); in dvb_audio_ioctl()
1333 av7110->audiostate.play_state = AUDIO_STOPPED; in dvb_audio_ioctl()
1337 if (av7110->audiostate.stream_source == AUDIO_SOURCE_MEMORY) in dvb_audio_ioctl()
1338 ret = av7110_av_start_play(av7110, RP_AUDIO); in dvb_audio_ioctl()
1340 ret = audcom(av7110, AUDIO_CMD_UNMUTE); in dvb_audio_ioctl()
1342 av7110->audiostate.play_state = AUDIO_PLAYING; in dvb_audio_ioctl()
1346 ret = audcom(av7110, AUDIO_CMD_MUTE); in dvb_audio_ioctl()
1348 av7110->audiostate.play_state = AUDIO_PAUSED; in dvb_audio_ioctl()
1352 if (av7110->audiostate.play_state == AUDIO_PAUSED) { in dvb_audio_ioctl()
1353 av7110->audiostate.play_state = AUDIO_PLAYING; in dvb_audio_ioctl()
1354 ret = audcom(av7110, AUDIO_CMD_UNMUTE | AUDIO_CMD_PCM16); in dvb_audio_ioctl()
1359 av7110->audiostate.stream_source = (audio_stream_source_t) arg; in dvb_audio_ioctl()
1364 ret = audcom(av7110, arg ? AUDIO_CMD_MUTE : AUDIO_CMD_UNMUTE); in dvb_audio_ioctl()
1366 av7110->audiostate.mute_state = (int) arg; in dvb_audio_ioctl()
1371 av7110->audiostate.AV_sync_state = (int) arg; in dvb_audio_ioctl()
1372 ret = audcom(av7110, arg ? AUDIO_CMD_SYNC_ON : AUDIO_CMD_SYNC_OFF); in dvb_audio_ioctl()
1376 if (FW_VERSION(av7110->arm_app) < 0x2621) in dvb_audio_ioctl()
1378 av7110->audiostate.bypass_mode = (int)arg; in dvb_audio_ioctl()
1382 av7110->audiostate.channel_select = (audio_channel_select_t) arg; in dvb_audio_ioctl()
1383 switch(av7110->audiostate.channel_select) { in dvb_audio_ioctl()
1385 ret = audcom(av7110, AUDIO_CMD_STEREO); in dvb_audio_ioctl()
1387 if (av7110->adac_type == DVB_ADAC_CRYSTAL) in dvb_audio_ioctl()
1388 i2c_writereg(av7110, 0x20, 0x02, 0x49); in dvb_audio_ioctl()
1389 else if (av7110->adac_type == DVB_ADAC_MSP34x5) in dvb_audio_ioctl()
1390 msp_writereg(av7110, MSP_WR_DSP, 0x0008, 0x0220); in dvb_audio_ioctl()
1394 ret = audcom(av7110, AUDIO_CMD_MONO_L); in dvb_audio_ioctl()
1396 if (av7110->adac_type == DVB_ADAC_CRYSTAL) in dvb_audio_ioctl()
1397 i2c_writereg(av7110, 0x20, 0x02, 0x4a); in dvb_audio_ioctl()
1398 else if (av7110->adac_type == DVB_ADAC_MSP34x5) in dvb_audio_ioctl()
1399 msp_writereg(av7110, MSP_WR_DSP, 0x0008, 0x0200); in dvb_audio_ioctl()
1403 ret = audcom(av7110, AUDIO_CMD_MONO_R); in dvb_audio_ioctl()
1405 if (av7110->adac_type == DVB_ADAC_CRYSTAL) in dvb_audio_ioctl()
1406 i2c_writereg(av7110, 0x20, 0x02, 0x45); in dvb_audio_ioctl()
1407 else if (av7110->adac_type == DVB_ADAC_MSP34x5) in dvb_audio_ioctl()
1408 msp_writereg(av7110, MSP_WR_DSP, 0x0008, 0x0210); in dvb_audio_ioctl()
1418 memcpy(parg, &av7110->audiostate, sizeof(struct audio_status)); in dvb_audio_ioctl()
1422 if (FW_VERSION(av7110->arm_app) < 0x2621) in dvb_audio_ioctl()
1430 dvb_ringbuffer_flush_spinlock_wakeup(&av7110->aout); in dvb_audio_ioctl()
1431 av7110_ipack_reset(&av7110->ipack[0]); in dvb_audio_ioctl()
1432 if (av7110->playing == RP_AV) in dvb_audio_ioctl()
1433 ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY, in dvb_audio_ioctl()
1443 ret = av7110_set_volume(av7110, amix->volume_left, amix->volume_right); in dvb_audio_ioctl()
1454 mutex_unlock(&av7110->ioctl_mutex); in dvb_audio_ioctl()
1462 struct av7110 *av7110 = dvbdev->priv; in dvb_video_open() local
1465 dprintk(2, "av7110:%p, \n", av7110); in dvb_video_open()
1471 dvb_ringbuffer_flush_spinlock_wakeup(&av7110->aout); in dvb_video_open()
1472 dvb_ringbuffer_flush_spinlock_wakeup(&av7110->avout); in dvb_video_open()
1473 av7110->video_blank = 1; in dvb_video_open()
1474 av7110->audiostate.AV_sync_state = 1; in dvb_video_open()
1475 av7110->videostate.stream_source = VIDEO_SOURCE_DEMUX; in dvb_video_open()
1478 av7110->video_events.eventr = av7110->video_events.eventw = 0; in dvb_video_open()
1487 struct av7110 *av7110 = dvbdev->priv; in dvb_video_release() local
1489 dprintk(2, "av7110:%p, \n", av7110); in dvb_video_release()
1492 av7110_av_stop(av7110, RP_VIDEO); in dvb_video_release()
1501 struct av7110 *av7110 = dvbdev->priv; in dvb_audio_open() local
1504 dprintk(2, "av7110:%p, \n", av7110); in dvb_audio_open()
1508 dvb_ringbuffer_flush_spinlock_wakeup(&av7110->aout); in dvb_audio_open()
1509 av7110->audiostate.stream_source = AUDIO_SOURCE_DEMUX; in dvb_audio_open()
1516 struct av7110 *av7110 = dvbdev->priv; in dvb_audio_release() local
1518 dprintk(2, "av7110:%p, \n", av7110); in dvb_audio_release()
1520 av7110_av_stop(av7110, RP_AUDIO); in dvb_audio_release()
1568 int av7110_av_register(struct av7110 *av7110) in av7110_av_register() argument
1570 av7110->audiostate.AV_sync_state = 0; in av7110_av_register()
1571 av7110->audiostate.mute_state = 0; in av7110_av_register()
1572 av7110->audiostate.play_state = AUDIO_STOPPED; in av7110_av_register()
1573 av7110->audiostate.stream_source = AUDIO_SOURCE_DEMUX; in av7110_av_register()
1574 av7110->audiostate.channel_select = AUDIO_STEREO; in av7110_av_register()
1575 av7110->audiostate.bypass_mode = 0; in av7110_av_register()
1577 av7110->videostate.video_blank = 0; in av7110_av_register()
1578 av7110->videostate.play_state = VIDEO_STOPPED; in av7110_av_register()
1579 av7110->videostate.stream_source = VIDEO_SOURCE_DEMUX; in av7110_av_register()
1580 av7110->videostate.video_format = VIDEO_FORMAT_4_3; in av7110_av_register()
1581 av7110->videostate.display_format = VIDEO_LETTER_BOX; in av7110_av_register()
1582 av7110->display_ar = VIDEO_FORMAT_4_3; in av7110_av_register()
1583 av7110->display_panscan = VID_VC_AND_PS_PREF; in av7110_av_register()
1585 init_waitqueue_head(&av7110->video_events.wait_queue); in av7110_av_register()
1586 spin_lock_init(&av7110->video_events.lock); in av7110_av_register()
1587 av7110->video_events.eventw = av7110->video_events.eventr = 0; in av7110_av_register()
1588 av7110->video_events.overflow = 0; in av7110_av_register()
1589 memset(&av7110->video_size, 0, sizeof (video_size_t)); in av7110_av_register()
1591 dvb_register_device(&av7110->dvb_adapter, &av7110->video_dev, in av7110_av_register()
1592 &dvbdev_video, av7110, DVB_DEVICE_VIDEO); in av7110_av_register()
1594 dvb_register_device(&av7110->dvb_adapter, &av7110->audio_dev, in av7110_av_register()
1595 &dvbdev_audio, av7110, DVB_DEVICE_AUDIO); in av7110_av_register()
1600 void av7110_av_unregister(struct av7110 *av7110) in av7110_av_unregister() argument
1602 dvb_unregister_device(av7110->audio_dev); in av7110_av_unregister()
1603 dvb_unregister_device(av7110->video_dev); in av7110_av_unregister()
1606 int av7110_av_init(struct av7110 *av7110) in av7110_av_init() argument
1612 struct ipack *ipack = av7110->ipack + i; in av7110_av_init()
1620 ipack->data = av7110; in av7110_av_init()
1623 dvb_ringbuffer_init(&av7110->avout, av7110->iobuf, AVOUTLEN); in av7110_av_init()
1624 dvb_ringbuffer_init(&av7110->aout, av7110->iobuf + AVOUTLEN, AOUTLEN); in av7110_av_init()
1626 av7110->kbuf[0] = (u8 *)(av7110->iobuf + AVOUTLEN + AOUTLEN + BMPLEN); in av7110_av_init()
1627 av7110->kbuf[1] = av7110->kbuf[0] + 2 * IPACKS; in av7110_av_init()
1632 void av7110_av_exit(struct av7110 *av7110) in av7110_av_exit() argument
1634 av7110_ipack_free(&av7110->ipack[0]); in av7110_av_exit()
1635 av7110_ipack_free(&av7110->ipack[1]); in av7110_av_exit()