Lines Matching refs:itv

127 void ivtv_set_osd_alpha(struct ivtv *itv)  in ivtv_set_osd_alpha()  argument
129 ivtv_vapi(itv, CX2341X_OSD_SET_GLOBAL_ALPHA, 3, in ivtv_set_osd_alpha()
130 itv->osd_global_alpha_state, itv->osd_global_alpha, !itv->osd_local_alpha_state); in ivtv_set_osd_alpha()
131 ivtv_vapi(itv, CX2341X_OSD_SET_CHROMA_KEY, 2, itv->osd_chroma_key_state, itv->osd_chroma_key); in ivtv_set_osd_alpha()
134 int ivtv_set_speed(struct ivtv *itv, int speed) in ivtv_set_speed() argument
143 if (speed == itv->speed && !single_step) in ivtv_set_speed()
146 if (single_step && (speed < 0) == (itv->speed < 0)) { in ivtv_set_speed()
148 ivtv_vapi(itv, CX2341X_DEC_STEP_VIDEO, 1, 0); in ivtv_set_speed()
149 itv->speed = speed; in ivtv_set_speed()
160 data[3] = v4l2_ctrl_g_ctrl(itv->cxhdl.video_b_frames); in ivtv_set_speed()
161 data[4] = (speed == 1500 || speed == 500) ? itv->speed_mute_audio : 0; in ivtv_set_speed()
171 if (atomic_read(&itv->decoding) > 0) { in ivtv_set_speed()
175 ivtv_vapi(itv, CX2341X_DEC_PAUSE_PLAYBACK, 1, 0); in ivtv_set_speed()
178 mutex_unlock(&itv->serialize_lock); in ivtv_set_speed()
179 prepare_to_wait(&itv->dma_waitq, &wait, TASK_INTERRUPTIBLE); in ivtv_set_speed()
180 while (test_bit(IVTV_F_I_DMA, &itv->i_flags)) { in ivtv_set_speed()
187 finish_wait(&itv->dma_waitq, &wait); in ivtv_set_speed()
188 mutex_lock(&itv->serialize_lock); in ivtv_set_speed()
193 ivtv_api(itv, CX2341X_DEC_SET_PLAYBACK_SPEED, 7, data); in ivtv_set_speed()
199 ivtv_vapi(itv, CX2341X_DEC_STEP_VIDEO, 1, 0); in ivtv_set_speed()
201 itv->speed = speed; in ivtv_set_speed()
244 static int ivtv_video_command(struct ivtv *itv, struct ivtv_open_id *id, in ivtv_video_command() argument
247 struct ivtv_stream *s = &itv->streams[IVTV_DEC_STREAM_TYPE_MPG]; in ivtv_video_command()
249 if (!(itv->v4l2_cap & V4L2_CAP_VIDEO_OUTPUT)) in ivtv_video_command()
255 dc->start.speed = ivtv_validate_speed(itv->speed, dc->start.speed); in ivtv_video_command()
265 itv->speed_mute_audio = dc->flags & V4L2_DEC_CMD_START_MUTE_AUDIO; in ivtv_video_command()
266 if (ivtv_set_output_mode(itv, OUT_MPG) != OUT_MPG) in ivtv_video_command()
268 if (test_and_clear_bit(IVTV_F_I_DEC_PAUSED, &itv->i_flags)) { in ivtv_video_command()
270 itv->speed = 0; in ivtv_video_command()
280 if (atomic_read(&itv->decoding) == 0) in ivtv_video_command()
282 if (itv->output_mode != OUT_MPG) in ivtv_video_command()
285 itv->output_mode = OUT_NONE; in ivtv_video_command()
291 if (!atomic_read(&itv->decoding)) in ivtv_video_command()
293 if (itv->output_mode != OUT_MPG) in ivtv_video_command()
295 if (atomic_read(&itv->decoding) > 0) { in ivtv_video_command()
296 ivtv_vapi(itv, CX2341X_DEC_PAUSE_PLAYBACK, 1, in ivtv_video_command()
298 set_bit(IVTV_F_I_DEC_PAUSED, &itv->i_flags); in ivtv_video_command()
305 if (!atomic_read(&itv->decoding)) in ivtv_video_command()
307 if (itv->output_mode != OUT_MPG) in ivtv_video_command()
309 if (test_and_clear_bit(IVTV_F_I_DEC_PAUSED, &itv->i_flags)) { in ivtv_video_command()
310 int speed = itv->speed; in ivtv_video_command()
311 itv->speed = 0; in ivtv_video_command()
324 struct ivtv *itv = fh2id(fh)->itv; in ivtv_g_fmt_sliced_vbi_out() local
329 if (!(itv->v4l2_cap & V4L2_CAP_SLICED_VBI_OUTPUT)) in ivtv_g_fmt_sliced_vbi_out()
333 if (itv->is_60hz) { in ivtv_g_fmt_sliced_vbi_out()
347 struct ivtv *itv = id->itv; in ivtv_g_fmt_vid_cap() local
350 pixfmt->width = itv->cxhdl.width; in ivtv_g_fmt_vid_cap()
351 pixfmt->height = itv->cxhdl.height; in ivtv_g_fmt_vid_cap()
369 struct ivtv *itv = fh2id(fh)->itv; in ivtv_g_fmt_vbi_cap() local
374 vbifmt->samples_per_line = itv->vbi.raw_decoder_line_size - 4; in ivtv_g_fmt_vbi_cap()
376 vbifmt->start[0] = itv->vbi.start[0]; in ivtv_g_fmt_vbi_cap()
377 vbifmt->start[1] = itv->vbi.start[1]; in ivtv_g_fmt_vbi_cap()
378 vbifmt->count[0] = vbifmt->count[1] = itv->vbi.count; in ivtv_g_fmt_vbi_cap()
389 struct ivtv *itv = id->itv; in ivtv_g_fmt_sliced_vbi_cap() local
396 vbifmt->service_set = itv->is_50hz ? V4L2_SLICED_VBI_625 : in ivtv_g_fmt_sliced_vbi_cap()
398 ivtv_expand_service_set(vbifmt, itv->is_50hz); in ivtv_g_fmt_sliced_vbi_cap()
403 v4l2_subdev_call(itv->sd_video, vbi, g_sliced_fmt, vbifmt); in ivtv_g_fmt_sliced_vbi_cap()
411 struct ivtv *itv = id->itv; in ivtv_g_fmt_vid_out() local
414 if (!(itv->v4l2_cap & V4L2_CAP_VIDEO_OUTPUT)) in ivtv_g_fmt_vid_out()
416 pixfmt->width = itv->main_rect.width; in ivtv_g_fmt_vid_out()
417 pixfmt->height = itv->main_rect.height; in ivtv_g_fmt_vid_out()
421 switch (itv->yuv_info.lace_mode & IVTV_YUV_MODE_MASK) { in ivtv_g_fmt_vid_out()
423 pixfmt->field = (itv->yuv_info.lace_mode & IVTV_YUV_SYNC_MASK) ? in ivtv_g_fmt_vid_out()
435 pixfmt->width = itv->yuv_info.v4l2_src_w; in ivtv_g_fmt_vid_out()
436 pixfmt->height = itv->yuv_info.v4l2_src_h; in ivtv_g_fmt_vid_out()
450 struct ivtv *itv = fh2id(fh)->itv; in ivtv_g_fmt_vid_out_overlay() local
451 struct ivtv_stream *s = &itv->streams[fh2id(fh)->type]; in ivtv_g_fmt_vid_out_overlay()
456 if (!itv->osd_video_pbase) in ivtv_g_fmt_vid_out_overlay()
458 winfmt->chromakey = itv->osd_chroma_key; in ivtv_g_fmt_vid_out_overlay()
459 winfmt->global_alpha = itv->osd_global_alpha; in ivtv_g_fmt_vid_out_overlay()
465 winfmt->w.width = itv->osd_rect.width; in ivtv_g_fmt_vid_out_overlay()
466 winfmt->w.height = itv->osd_rect.height; in ivtv_g_fmt_vid_out_overlay()
478 struct ivtv *itv = id->itv; in ivtv_try_fmt_vid_cap() local
490 h = min(h, itv->is_50hz ? 576 : 480); in ivtv_try_fmt_vid_cap()
507 struct ivtv *itv = id->itv; in ivtv_try_fmt_sliced_vbi_cap() local
518 ivtv_expand_service_set(vbifmt, itv->is_50hz); in ivtv_try_fmt_sliced_vbi_cap()
519 check_service_set(vbifmt, itv->is_50hz); in ivtv_try_fmt_sliced_vbi_cap()
560 struct ivtv *itv = fh2id(fh)->itv; in ivtv_try_fmt_vid_out_overlay() local
561 struct ivtv_stream *s = &itv->streams[fh2id(fh)->type]; in ivtv_try_fmt_vid_out_overlay()
567 if (!itv->osd_video_pbase) in ivtv_try_fmt_vid_out_overlay()
583 struct ivtv *itv = id->itv; in ivtv_s_fmt_vid_cap() local
592 if (itv->cxhdl.width == w && itv->cxhdl.height == h) in ivtv_s_fmt_vid_cap()
595 if (atomic_read(&itv->capturing) > 0) in ivtv_s_fmt_vid_cap()
598 itv->cxhdl.width = w; in ivtv_s_fmt_vid_cap()
599 itv->cxhdl.height = h; in ivtv_s_fmt_vid_cap()
600 if (v4l2_ctrl_g_ctrl(itv->cxhdl.video_encoding) == V4L2_MPEG_VIDEO_ENCODING_MPEG_1) in ivtv_s_fmt_vid_cap()
605 v4l2_subdev_call(itv->sd_video, video, s_mbus_fmt, &mbus_fmt); in ivtv_s_fmt_vid_cap()
611 struct ivtv *itv = fh2id(fh)->itv; in ivtv_s_fmt_vbi_cap() local
613 if (!ivtv_raw_vbi(itv) && atomic_read(&itv->capturing) > 0) in ivtv_s_fmt_vbi_cap()
615 itv->vbi.sliced_in->service_set = 0; in ivtv_s_fmt_vbi_cap()
616 itv->vbi.in.type = V4L2_BUF_TYPE_VBI_CAPTURE; in ivtv_s_fmt_vbi_cap()
617 v4l2_subdev_call(itv->sd_video, vbi, s_raw_fmt, &fmt->fmt.vbi); in ivtv_s_fmt_vbi_cap()
625 struct ivtv *itv = id->itv; in ivtv_s_fmt_sliced_vbi_cap() local
631 check_service_set(vbifmt, itv->is_50hz); in ivtv_s_fmt_sliced_vbi_cap()
632 if (ivtv_raw_vbi(itv) && atomic_read(&itv->capturing) > 0) in ivtv_s_fmt_sliced_vbi_cap()
634 itv->vbi.in.type = V4L2_BUF_TYPE_SLICED_VBI_CAPTURE; in ivtv_s_fmt_sliced_vbi_cap()
635 v4l2_subdev_call(itv->sd_video, vbi, s_sliced_fmt, vbifmt); in ivtv_s_fmt_sliced_vbi_cap()
636 memcpy(itv->vbi.sliced_in, vbifmt, sizeof(*itv->vbi.sliced_in)); in ivtv_s_fmt_sliced_vbi_cap()
643 struct ivtv *itv = id->itv; in ivtv_s_fmt_vid_out() local
644 struct yuv_playback_info *yi = &itv->yuv_info; in ivtv_s_fmt_vid_out()
678 if (test_bit(IVTV_F_I_DEC_YUV, &itv->i_flags)) in ivtv_s_fmt_vid_out()
679 itv->dma_data_req_size = in ivtv_s_fmt_vid_out()
687 struct ivtv *itv = fh2id(fh)->itv; in ivtv_s_fmt_vid_out_overlay() local
691 itv->osd_chroma_key = fmt->fmt.win.chromakey; in ivtv_s_fmt_vid_out_overlay()
692 itv->osd_global_alpha = fmt->fmt.win.global_alpha; in ivtv_s_fmt_vid_out_overlay()
693 ivtv_set_osd_alpha(itv); in ivtv_s_fmt_vid_out_overlay()
699 static int ivtv_itvc(struct ivtv *itv, bool get, u64 reg, u64 *val) in ivtv_itvc() argument
706 reg_start = itv->reg_mem - IVTV_REG_OFFSET; in ivtv_itvc()
707 else if (itv->has_cx23415 && reg >= IVTV_DECODER_OFFSET && in ivtv_itvc()
709 reg_start = itv->dec_mem - IVTV_DECODER_OFFSET; in ivtv_itvc()
711 reg_start = itv->enc_mem; in ivtv_itvc()
724 struct ivtv *itv = fh2id(fh)->itv; in ivtv_g_register() local
727 return ivtv_itvc(itv, true, reg->reg, &reg->val); in ivtv_g_register()
732 struct ivtv *itv = fh2id(fh)->itv; in ivtv_s_register() local
735 return ivtv_itvc(itv, false, reg->reg, &val); in ivtv_s_register()
742 struct ivtv *itv = id->itv; in ivtv_querycap() local
743 struct ivtv_stream *s = &itv->streams[id->type]; in ivtv_querycap()
746 strlcpy(vcap->card, itv->card_name, sizeof(vcap->card)); in ivtv_querycap()
747 snprintf(vcap->bus_info, sizeof(vcap->bus_info), "PCI:%s", pci_name(itv->pdev)); in ivtv_querycap()
748 vcap->capabilities = itv->v4l2_cap | V4L2_CAP_DEVICE_CAPS; in ivtv_querycap()
751 !itv->osd_video_pbase) { in ivtv_querycap()
760 struct ivtv *itv = fh2id(fh)->itv; in ivtv_enumaudio() local
762 return ivtv_get_audio_input(itv, vin->index, vin); in ivtv_enumaudio()
767 struct ivtv *itv = fh2id(fh)->itv; in ivtv_g_audio() local
769 vin->index = itv->audio_input; in ivtv_g_audio()
770 return ivtv_get_audio_input(itv, vin->index, vin); in ivtv_g_audio()
775 struct ivtv *itv = fh2id(fh)->itv; in ivtv_s_audio() local
777 if (vout->index >= itv->nof_audio_inputs) in ivtv_s_audio()
780 itv->audio_input = vout->index; in ivtv_s_audio()
781 ivtv_audio_set_io(itv); in ivtv_s_audio()
788 struct ivtv *itv = fh2id(fh)->itv; in ivtv_enumaudout() local
791 return ivtv_get_audio_output(itv, vin->index, vin); in ivtv_enumaudout()
796 struct ivtv *itv = fh2id(fh)->itv; in ivtv_g_audout() local
799 return ivtv_get_audio_output(itv, vin->index, vin); in ivtv_g_audout()
804 struct ivtv *itv = fh2id(fh)->itv; in ivtv_s_audout() local
806 if (itv->card->video_outputs == NULL || vout->index != 0) in ivtv_s_audout()
813 struct ivtv *itv = fh2id(fh)->itv; in ivtv_enum_input() local
816 return ivtv_get_input(itv, vin->index, vin); in ivtv_enum_input()
821 struct ivtv *itv = fh2id(fh)->itv; in ivtv_enum_output() local
823 return ivtv_get_output(itv, vout->index, vout); in ivtv_enum_output()
829 struct ivtv *itv = id->itv; in ivtv_cropcap() local
832 cropcap->pixelaspect.numerator = itv->is_50hz ? 59 : 10; in ivtv_cropcap()
833 cropcap->pixelaspect.denominator = itv->is_50hz ? 54 : 11; in ivtv_cropcap()
835 cropcap->pixelaspect.numerator = itv->is_out_50hz ? 59 : 10; in ivtv_cropcap()
836 cropcap->pixelaspect.denominator = itv->is_out_50hz ? 54 : 11; in ivtv_cropcap()
847 struct ivtv *itv = id->itv; in ivtv_s_selection() local
848 struct yuv_playback_info *yi = &itv->yuv_info; in ivtv_s_selection()
853 !(itv->v4l2_cap & V4L2_CAP_VIDEO_OUTPUT)) in ivtv_s_selection()
861 !(itv->v4l2_cap & V4L2_CAP_VIDEO_OUTPUT)) in ivtv_s_selection()
864 r.height = itv->is_out_50hz ? 576 : 480; in ivtv_s_selection()
878 if (!ivtv_vapi(itv, CX2341X_OSD_SET_FRAMEBUFFER_WINDOW, 4, in ivtv_s_selection()
880 itv->main_rect = sel->r; in ivtv_s_selection()
890 struct ivtv *itv = id->itv; in ivtv_g_selection() local
891 struct yuv_playback_info *yi = &itv->yuv_info; in ivtv_g_selection()
901 sel->r.height = itv->is_50hz ? 576 : 480; in ivtv_g_selection()
909 !(itv->v4l2_cap & V4L2_CAP_VIDEO_OUTPUT)) in ivtv_g_selection()
917 sel->r = itv->main_rect; in ivtv_g_selection()
921 r.height = itv->is_out_50hz ? 576 : 480; in ivtv_g_selection()
944 struct ivtv *itv = fh2id(fh)->itv; in ivtv_enum_fmt_vid_cap() local
945 struct ivtv_stream *s = &itv->streams[fh2id(fh)->type]; in ivtv_enum_fmt_vid_cap()
970 struct ivtv *itv = fh2id(fh)->itv; in ivtv_enum_fmt_vid_out() local
971 struct ivtv_stream *s = &itv->streams[fh2id(fh)->type]; in ivtv_enum_fmt_vid_out()
986 struct ivtv *itv = fh2id(fh)->itv; in ivtv_g_input() local
988 *i = itv->active_input; in ivtv_g_input()
995 struct ivtv *itv = fh2id(fh)->itv; in ivtv_s_input() local
999 if (inp >= itv->nof_inputs) in ivtv_s_input()
1002 if (inp == itv->active_input) { in ivtv_s_input()
1007 if (atomic_read(&itv->capturing) > 0) { in ivtv_s_input()
1012 itv->active_input, inp); in ivtv_s_input()
1014 itv->active_input = inp; in ivtv_s_input()
1017 itv->audio_input = itv->card->video_inputs[inp].audio_index; in ivtv_s_input()
1019 if (itv->card->video_inputs[inp].video_type == IVTV_CARD_INPUT_VID_TUNER) in ivtv_s_input()
1020 std = itv->tuner_std; in ivtv_s_input()
1024 itv->streams[i].vdev.tvnorms = std; in ivtv_s_input()
1028 ivtv_mute(itv); in ivtv_s_input()
1029 ivtv_video_set_io(itv); in ivtv_s_input()
1030 ivtv_audio_set_io(itv); in ivtv_s_input()
1031 ivtv_unmute(itv); in ivtv_s_input()
1038 struct ivtv *itv = fh2id(fh)->itv; in ivtv_g_output() local
1040 if (!(itv->v4l2_cap & V4L2_CAP_VIDEO_OUTPUT)) in ivtv_g_output()
1043 *i = itv->active_output; in ivtv_g_output()
1050 struct ivtv *itv = fh2id(fh)->itv; in ivtv_s_output() local
1052 if (outp >= itv->card->nof_outputs) in ivtv_s_output()
1055 if (outp == itv->active_output) { in ivtv_s_output()
1060 itv->active_output, outp); in ivtv_s_output()
1062 itv->active_output = outp; in ivtv_s_output()
1063 ivtv_call_hw(itv, IVTV_HW_SAA7127, video, s_routing, in ivtv_s_output()
1065 itv->card->video_outputs[outp].video_output, 0); in ivtv_s_output()
1072 struct ivtv *itv = fh2id(fh)->itv; in ivtv_g_frequency() local
1073 struct ivtv_stream *s = &itv->streams[fh2id(fh)->type]; in ivtv_g_frequency()
1080 ivtv_call_all(itv, tuner, g_frequency, vf); in ivtv_g_frequency()
1086 struct ivtv *itv = fh2id(fh)->itv; in ivtv_s_frequency() local
1087 struct ivtv_stream *s = &itv->streams[fh2id(fh)->type]; in ivtv_s_frequency()
1094 ivtv_mute(itv); in ivtv_s_frequency()
1096 ivtv_call_all(itv, tuner, s_frequency, vf); in ivtv_s_frequency()
1097 ivtv_unmute(itv); in ivtv_s_frequency()
1103 struct ivtv *itv = fh2id(fh)->itv; in ivtv_g_std() local
1105 *std = itv->std; in ivtv_g_std()
1109 void ivtv_s_std_enc(struct ivtv *itv, v4l2_std_id std) in ivtv_s_std_enc() argument
1111 itv->std = std; in ivtv_s_std_enc()
1112 itv->is_60hz = (std & V4L2_STD_525_60) ? 1 : 0; in ivtv_s_std_enc()
1113 itv->is_50hz = !itv->is_60hz; in ivtv_s_std_enc()
1114 cx2341x_handler_set_50hz(&itv->cxhdl, itv->is_50hz); in ivtv_s_std_enc()
1115 itv->cxhdl.width = 720; in ivtv_s_std_enc()
1116 itv->cxhdl.height = itv->is_50hz ? 576 : 480; in ivtv_s_std_enc()
1117 itv->vbi.count = itv->is_50hz ? 18 : 12; in ivtv_s_std_enc()
1118 itv->vbi.start[0] = itv->is_50hz ? 6 : 10; in ivtv_s_std_enc()
1119 itv->vbi.start[1] = itv->is_50hz ? 318 : 273; in ivtv_s_std_enc()
1121 if (itv->hw_flags & IVTV_HW_CX25840) in ivtv_s_std_enc()
1122 itv->vbi.sliced_decoder_line_size = itv->is_60hz ? 272 : 284; in ivtv_s_std_enc()
1125 ivtv_call_all(itv, video, s_std, itv->std); in ivtv_s_std_enc()
1128 void ivtv_s_std_dec(struct ivtv *itv, v4l2_std_id std) in ivtv_s_std_dec() argument
1130 struct yuv_playback_info *yi = &itv->yuv_info; in ivtv_s_std_dec()
1135 itv->std_out = std; in ivtv_s_std_dec()
1136 itv->is_out_60hz = (std & V4L2_STD_525_60) ? 1 : 0; in ivtv_s_std_dec()
1137 itv->is_out_50hz = !itv->is_out_60hz; in ivtv_s_std_dec()
1138 ivtv_call_all(itv, video, s_std_output, itv->std_out); in ivtv_s_std_dec()
1146 mutex_unlock(&itv->serialize_lock); in ivtv_s_std_dec()
1148 prepare_to_wait(&itv->vsync_waitq, &wait, in ivtv_s_std_dec()
1154 finish_wait(&itv->vsync_waitq, &wait); in ivtv_s_std_dec()
1155 mutex_lock(&itv->serialize_lock); in ivtv_s_std_dec()
1160 ivtv_vapi(itv, CX2341X_DEC_SET_STANDARD, 1, itv->is_out_50hz); in ivtv_s_std_dec()
1161 itv->main_rect.left = 0; in ivtv_s_std_dec()
1162 itv->main_rect.top = 0; in ivtv_s_std_dec()
1163 itv->main_rect.width = 720; in ivtv_s_std_dec()
1164 itv->main_rect.height = itv->is_out_50hz ? 576 : 480; in ivtv_s_std_dec()
1165 ivtv_vapi(itv, CX2341X_OSD_SET_FRAMEBUFFER_WINDOW, 4, in ivtv_s_std_dec()
1166 720, itv->main_rect.height, 0, 0); in ivtv_s_std_dec()
1167 yi->main_rect = itv->main_rect; in ivtv_s_std_dec()
1168 if (!itv->osd_info) { in ivtv_s_std_dec()
1170 yi->osd_full_h = itv->is_out_50hz ? 576 : 480; in ivtv_s_std_dec()
1176 struct ivtv *itv = fh2id(fh)->itv; in ivtv_s_std() local
1181 if (std == itv->std) in ivtv_s_std()
1184 if (test_bit(IVTV_F_I_RADIO_USER, &itv->i_flags) || in ivtv_s_std()
1185 atomic_read(&itv->capturing) > 0 || in ivtv_s_std()
1186 atomic_read(&itv->decoding) > 0) { in ivtv_s_std()
1193 (unsigned long long)itv->std); in ivtv_s_std()
1195 ivtv_s_std_enc(itv, std); in ivtv_s_std()
1196 if (itv->v4l2_cap & V4L2_CAP_VIDEO_OUTPUT) in ivtv_s_std()
1197 ivtv_s_std_dec(itv, std); in ivtv_s_std()
1205 struct ivtv *itv = id->itv; in ivtv_s_tuner() local
1210 ivtv_call_all(itv, tuner, s_tuner, vt); in ivtv_s_tuner()
1217 struct ivtv *itv = fh2id(fh)->itv; in ivtv_g_tuner() local
1222 ivtv_call_all(itv, tuner, g_tuner, vt); in ivtv_g_tuner()
1233 struct ivtv *itv = fh2id(fh)->itv; in ivtv_g_sliced_vbi_cap() local
1234 int set = itv->is_50hz ? V4L2_SLICED_VBI_625 : V4L2_SLICED_VBI_525; in ivtv_g_sliced_vbi_cap()
1240 if (valid_service_line(f, l, itv->is_50hz)) in ivtv_g_sliced_vbi_cap()
1245 if (!(itv->v4l2_cap & V4L2_CAP_SLICED_VBI_OUTPUT)) in ivtv_g_sliced_vbi_cap()
1247 if (itv->is_60hz) { in ivtv_g_sliced_vbi_cap()
1268 struct ivtv *itv = fh2id(fh)->itv; in ivtv_g_enc_index() local
1273 entries = (itv->pgm_info_write_idx + IVTV_MAX_PGM_INDEX - itv->pgm_info_read_idx) % in ivtv_g_enc_index()
1279 if (!atomic_read(&itv->capturing)) in ivtv_g_enc_index()
1282 *e = itv->pgm_info[(itv->pgm_info_read_idx + i) % IVTV_MAX_PGM_INDEX]; in ivtv_g_enc_index()
1288 itv->pgm_info_read_idx = (itv->pgm_info_read_idx + idx->entries) % IVTV_MAX_PGM_INDEX; in ivtv_g_enc_index()
1295 struct ivtv *itv = id->itv; in ivtv_encoder_cmd() local
1314 if (!atomic_read(&itv->capturing)) in ivtv_encoder_cmd()
1316 if (test_and_set_bit(IVTV_F_I_ENC_PAUSED, &itv->i_flags)) in ivtv_encoder_cmd()
1319 ivtv_mute(itv); in ivtv_encoder_cmd()
1320 ivtv_vapi(itv, CX2341X_ENC_PAUSE_ENCODER, 1, 0); in ivtv_encoder_cmd()
1327 if (!atomic_read(&itv->capturing)) in ivtv_encoder_cmd()
1330 if (!test_and_clear_bit(IVTV_F_I_ENC_PAUSED, &itv->i_flags)) in ivtv_encoder_cmd()
1333 ivtv_vapi(itv, CX2341X_ENC_PAUSE_ENCODER, 1, 1); in ivtv_encoder_cmd()
1334 ivtv_unmute(itv); in ivtv_encoder_cmd()
1346 struct ivtv *itv = fh2id(fh)->itv; in ivtv_try_encoder_cmd() local
1376 struct ivtv *itv = fh2id(fh)->itv; in ivtv_g_fbuf() local
1377 struct ivtv_stream *s = &itv->streams[fh2id(fh)->type]; in ivtv_g_fbuf()
1379 struct yuv_playback_info *yi = &itv->yuv_info; in ivtv_g_fbuf()
1403 if (!itv->osd_video_pbase) in ivtv_g_fbuf()
1409 ivtv_vapi_result(itv, data, CX2341X_OSD_GET_STATE, 0); in ivtv_g_fbuf()
1414 fb->fmt.width = itv->osd_rect.width; in ivtv_g_fbuf()
1415 fb->fmt.height = itv->osd_rect.height; in ivtv_g_fbuf()
1426 fb->base = (void *)itv->osd_video_pbase; in ivtv_g_fbuf()
1429 if (itv->osd_chroma_key_state) in ivtv_g_fbuf()
1432 if (itv->osd_global_alpha_state) in ivtv_g_fbuf()
1450 if (itv->osd_local_alpha_state) { in ivtv_g_fbuf()
1464 struct ivtv *itv = id->itv; in ivtv_s_fbuf() local
1465 struct ivtv_stream *s = &itv->streams[fh2id(fh)->type]; in ivtv_s_fbuf()
1466 struct yuv_playback_info *yi = &itv->yuv_info; in ivtv_s_fbuf()
1470 if (!itv->osd_video_pbase) in ivtv_s_fbuf()
1473 itv->osd_global_alpha_state = (fb->flags & V4L2_FBUF_FLAG_GLOBAL_ALPHA) != 0; in ivtv_s_fbuf()
1474 itv->osd_local_alpha_state = in ivtv_s_fbuf()
1476 itv->osd_chroma_key_state = (fb->flags & V4L2_FBUF_FLAG_CHROMAKEY) != 0; in ivtv_s_fbuf()
1477 ivtv_set_osd_alpha(itv); in ivtv_s_fbuf()
1485 struct ivtv *itv = id->itv; in ivtv_overlay() local
1486 struct ivtv_stream *s = &itv->streams[fh2id(fh)->type]; in ivtv_overlay()
1490 if (!itv->osd_video_pbase) in ivtv_overlay()
1493 ivtv_vapi(itv, CX2341X_OSD_SET_STATE, 1, on != 0); in ivtv_overlay()
1513 struct ivtv *itv = fh2id(fh)->itv; in ivtv_log_status() local
1516 int has_output = itv->v4l2_cap & V4L2_CAP_VIDEO_OUTPUT; in ivtv_log_status()
1521 IVTV_INFO("Version: %s Card: %s\n", IVTV_VERSION, itv->card_name); in ivtv_log_status()
1522 if (itv->hw_flags & IVTV_HW_TVEEPROM) { in ivtv_log_status()
1525 ivtv_read_eeprom(itv, &tv); in ivtv_log_status()
1527 ivtv_call_all(itv, core, log_status); in ivtv_log_status()
1528 ivtv_get_input(itv, itv->active_input, &vidin); in ivtv_log_status()
1529 ivtv_get_audio_input(itv, itv->audio_input, &audin); in ivtv_log_status()
1532 (itv->dualwatch_stereo_mode & ~0x300) == 0x200 ? " (Bilingual)" : ""); in ivtv_log_status()
1536 int mode = itv->output_mode; in ivtv_log_status()
1569 ivtv_get_output(itv, itv->active_output, &vidout); in ivtv_log_status()
1570 ivtv_get_audio_output(itv, 0, &audout); in ivtv_log_status()
1575 ivtv_vapi_result(itv, data, CX2341X_OSD_GET_STATE, 0); in ivtv_log_status()
1583 test_bit(IVTV_F_I_RADIO_USER, &itv->i_flags) ? "Radio" : "TV"); in ivtv_log_status()
1584 v4l2_ctrl_handler_log_status(&itv->cxhdl.hdl, itv->v4l2_dev.name); in ivtv_log_status()
1585 IVTV_INFO("Status flags: 0x%08lx\n", itv->i_flags); in ivtv_log_status()
1587 struct ivtv_stream *s = &itv->streams[i]; in ivtv_log_status()
1597 (long long)itv->mpg_data_received, in ivtv_log_status()
1598 (long long)itv->vbi_data_inserted); in ivtv_log_status()
1605 struct ivtv *itv = id->itv; in ivtv_decoder_cmd() local
1608 return ivtv_video_command(itv, id, dec, false); in ivtv_decoder_cmd()
1614 struct ivtv *itv = id->itv; in ivtv_try_decoder_cmd() local
1617 return ivtv_video_command(itv, id, dec, true); in ivtv_try_decoder_cmd()
1623 struct ivtv *itv = id->itv; in ivtv_decoder_ioctls() local
1625 struct ivtv_stream *s = &itv->streams[id->type]; in ivtv_decoder_ioctls()
1633 if (!(itv->v4l2_cap & V4L2_CAP_VIDEO_OUTPUT)) in ivtv_decoder_ioctls()
1637 if (itv->output_mode == OUT_UDMA_YUV && args->y_source == NULL) in ivtv_decoder_ioctls()
1642 if (ivtv_set_output_mode(itv, OUT_UDMA_YUV) != OUT_UDMA_YUV) { in ivtv_decoder_ioctls()
1650 return ivtv_yuv_prep_frame(itv, args); in ivtv_decoder_ioctls()
1655 if (!(itv->v4l2_cap & V4L2_CAP_VIDEO_OUTPUT)) in ivtv_decoder_ioctls()
1657 return ivtv_passthrough_mode(itv, *(int *)arg != 0); in ivtv_decoder_ioctls()
1668 if (!(itv->v4l2_cap & V4L2_CAP_VIDEO_OUTPUT)) in ivtv_decoder_ioctls()
1670 return ivtv_g_pts_frame(itv, pts, &frame); in ivtv_decoder_ioctls()
1682 if (!(itv->v4l2_cap & V4L2_CAP_VIDEO_OUTPUT)) in ivtv_decoder_ioctls()
1684 return ivtv_g_pts_frame(itv, &pts, frame); in ivtv_decoder_ioctls()
1693 return ivtv_video_command(itv, id, &dc, 0); in ivtv_decoder_ioctls()
1703 return ivtv_video_command(itv, id, &dc, 0); in ivtv_decoder_ioctls()
1712 return ivtv_video_command(itv, id, &dc, 0); in ivtv_decoder_ioctls()
1721 return ivtv_video_command(itv, id, &dc, 0); in ivtv_decoder_ioctls()
1735 return ivtv_video_command(itv, id, dc, try); in ivtv_decoder_ioctls()
1743 if (!(itv->v4l2_cap & V4L2_CAP_VIDEO_OUTPUT)) in ivtv_decoder_ioctls()
1746 set_bit(IVTV_F_I_EV_VSYNC_ENABLED, &itv->i_flags); in ivtv_decoder_ioctls()
1749 if (test_and_clear_bit(IVTV_F_I_EV_DEC_STOPPED, &itv->i_flags)) in ivtv_decoder_ioctls()
1751 else if (test_and_clear_bit(IVTV_F_I_EV_VSYNC, &itv->i_flags)) { in ivtv_decoder_ioctls()
1753 ev->u.vsync_field = test_bit(IVTV_F_I_EV_VSYNC_FIELD, &itv->i_flags) ? in ivtv_decoder_ioctls()
1755 if (itv->output_mode == OUT_UDMA_YUV && in ivtv_decoder_ioctls()
1756 (itv->yuv_info.lace_mode & IVTV_YUV_MODE_MASK) == in ivtv_decoder_ioctls()
1768 mutex_unlock(&itv->serialize_lock); in ivtv_decoder_ioctls()
1769 prepare_to_wait(&itv->event_waitq, &wait, TASK_INTERRUPTIBLE); in ivtv_decoder_ioctls()
1770 if (!test_bit(IVTV_F_I_EV_DEC_STOPPED, &itv->i_flags) && in ivtv_decoder_ioctls()
1771 !test_bit(IVTV_F_I_EV_VSYNC, &itv->i_flags)) in ivtv_decoder_ioctls()
1773 finish_wait(&itv->event_waitq, &wait); in ivtv_decoder_ioctls()
1774 mutex_lock(&itv->serialize_lock); in ivtv_decoder_ioctls()
1786 if (!(itv->v4l2_cap & V4L2_CAP_VIDEO_OUTPUT)) in ivtv_decoder_ioctls()
1788 return ivtv_passthrough_mode(itv, iarg == VIDEO_SOURCE_DEMUX); in ivtv_decoder_ioctls()
1792 itv->speed_mute_audio = iarg; in ivtv_decoder_ioctls()
1799 return v4l2_ctrl_s_ctrl(itv->ctrl_audio_playback, iarg + 1); in ivtv_decoder_ioctls()
1805 return v4l2_ctrl_s_ctrl(itv->ctrl_audio_multilingual_playback, iarg + 1); in ivtv_decoder_ioctls()
1816 struct ivtv *itv = fh2id(fh)->itv; in ivtv_default() local
1838 if ((val == 0 && itv->options.newi2c) || (val & 0x01)) in ivtv_default()
1839 ivtv_reset_ir_gpio(itv); in ivtv_default()
1841 v4l2_subdev_call(itv->sd_video, core, reset, 0); in ivtv_default()