Lines Matching full:cx

56 	struct cx18 *cx = id->cx;  in cx18_g_fmt_vid_cap()  local
57 struct cx18_stream *s = &cx->streams[id->type]; in cx18_g_fmt_vid_cap()
60 pixfmt->width = cx->cxhdl.width; in cx18_g_fmt_vid_cap()
61 pixfmt->height = cx->cxhdl.height; in cx18_g_fmt_vid_cap()
80 struct cx18 *cx = id->cx; in cx18_try_fmt_vid_cap() local
88 h = min(h, cx->is_50hz ? 576 : 480); in cx18_try_fmt_vid_cap()
89 h = max(h, (cx->is_50hz ? 576 : 480) / 8); in cx18_try_fmt_vid_cap()
125 struct cx18 *cx = id->cx; in cx18_s_fmt_vid_cap() local
129 struct cx18_stream *s = &cx->streams[id->type]; in cx18_s_fmt_vid_cap()
139 if (cx->cxhdl.width == w && cx->cxhdl.height == h && in cx18_s_fmt_vid_cap()
143 if (atomic_read(&cx->ana_capturing) > 0) in cx18_s_fmt_vid_cap()
150 format.format.width = cx->cxhdl.width = w; in cx18_s_fmt_vid_cap()
151 format.format.height = cx->cxhdl.height = h; in cx18_s_fmt_vid_cap()
153 v4l2_subdev_call(cx->sd_av, pad, set_fmt, NULL, &format); in cx18_s_fmt_vid_cap()
264 struct cx18 *cx = fh2id(fh)->cx; in cx18_g_fmt_vbi_cap() local
271 vbifmt->start[0] = cx->vbi.start[0]; in cx18_g_fmt_vbi_cap()
272 vbifmt->start[1] = cx->vbi.start[1]; in cx18_g_fmt_vbi_cap()
273 vbifmt->count[0] = vbifmt->count[1] = cx->vbi.count; in cx18_g_fmt_vbi_cap()
283 struct cx18 *cx = fh2id(fh)->cx; in cx18_g_fmt_sliced_vbi_cap() local
298 if (v4l2_subdev_call(cx->sd_av, vbi, g_sliced_fmt, &fmt->fmt.sliced)) in cx18_g_fmt_sliced_vbi_cap()
314 struct cx18 *cx = fh2id(fh)->cx; in cx18_try_fmt_sliced_vbi_cap() local
323 cx18_expand_service_set(vbifmt, cx->is_50hz); in cx18_try_fmt_sliced_vbi_cap()
325 if (check_service_set(vbifmt, cx->is_50hz)) in cx18_try_fmt_sliced_vbi_cap()
334 struct cx18 *cx = id->cx; in cx18_s_fmt_vbi_cap() local
341 if (!cx18_raw_vbi(cx) && atomic_read(&cx->ana_capturing) > 0) in cx18_s_fmt_vbi_cap()
349 ret = v4l2_subdev_call(cx->sd_av, vbi, s_raw_fmt, &fmt->fmt.vbi); in cx18_s_fmt_vbi_cap()
354 cx->vbi.sliced_in->service_set = 0; in cx18_s_fmt_vbi_cap()
355 cx->vbi.in.type = V4L2_BUF_TYPE_VBI_CAPTURE; in cx18_s_fmt_vbi_cap()
364 struct cx18 *cx = id->cx; in cx18_s_fmt_sliced_vbi_cap() local
374 if (cx18_raw_vbi(cx) && atomic_read(&cx->ana_capturing) > 0) in cx18_s_fmt_sliced_vbi_cap()
382 ret = v4l2_subdev_call(cx->sd_av, vbi, s_sliced_fmt, &fmt->fmt.sliced); in cx18_s_fmt_sliced_vbi_cap()
386 cx->vbi.in.type = V4L2_BUF_TYPE_SLICED_VBI_CAPTURE; in cx18_s_fmt_sliced_vbi_cap()
387 memcpy(cx->vbi.sliced_in, vbifmt, sizeof(*cx->vbi.sliced_in)); in cx18_s_fmt_sliced_vbi_cap()
395 struct cx18 *cx = fh2id(fh)->cx; in cx18_g_register() local
402 reg->val = cx18_read_enc(cx, reg->reg); in cx18_g_register()
409 struct cx18 *cx = fh2id(fh)->cx; in cx18_s_register() local
415 cx18_write_enc(cx, reg->val, reg->reg); in cx18_s_register()
424 struct cx18 *cx = id->cx; in cx18_querycap() local
427 strscpy(vcap->card, cx->card_name, sizeof(vcap->card)); in cx18_querycap()
428 vcap->capabilities = cx->v4l2_cap | V4L2_CAP_DEVICE_CAPS; in cx18_querycap()
434 struct cx18 *cx = fh2id(fh)->cx; in cx18_enumaudio() local
436 return cx18_get_audio_input(cx, vin->index, vin); in cx18_enumaudio()
441 struct cx18 *cx = fh2id(fh)->cx; in cx18_g_audio() local
443 vin->index = cx->audio_input; in cx18_g_audio()
444 return cx18_get_audio_input(cx, vin->index, vin); in cx18_g_audio()
449 struct cx18 *cx = fh2id(fh)->cx; in cx18_s_audio() local
451 if (vout->index >= cx->nof_audio_inputs) in cx18_s_audio()
453 cx->audio_input = vout->index; in cx18_s_audio()
454 cx18_audio_set_io(cx); in cx18_s_audio()
460 struct cx18 *cx = fh2id(fh)->cx; in cx18_enum_input() local
463 return cx18_get_input(cx, vin->index, vin); in cx18_enum_input()
469 struct cx18 *cx = fh2id(fh)->cx; in cx18_g_pixelaspect() local
474 f->numerator = cx->is_50hz ? 54 : 11; in cx18_g_pixelaspect()
475 f->denominator = cx->is_50hz ? 59 : 10; in cx18_g_pixelaspect()
482 struct cx18 *cx = fh2id(fh)->cx; in cx18_g_selection() local
491 sel->r.height = cx->is_50hz ? 576 : 480; in cx18_g_selection()
518 struct cx18 *cx = fh2id(fh)->cx; in cx18_g_input() local
520 *i = cx->active_input; in cx18_g_input()
527 struct cx18 *cx = id->cx; in cx18_s_input() local
530 cx->card->video_inputs + inp; in cx18_s_input()
532 if (inp >= cx->nof_inputs) in cx18_s_input()
535 if (inp == cx->active_input) { in cx18_s_input()
541 cx->active_input, inp); in cx18_s_input()
543 cx->active_input = inp; in cx18_s_input()
545 cx->audio_input = cx->card->video_inputs[inp].audio_index; in cx18_s_input()
547 std = cx->tuner_std; in cx18_s_input()
548 cx->streams[CX18_ENC_STREAM_TYPE_MPG].video_dev.tvnorms = std; in cx18_s_input()
549 cx->streams[CX18_ENC_STREAM_TYPE_YUV].video_dev.tvnorms = std; in cx18_s_input()
550 cx->streams[CX18_ENC_STREAM_TYPE_VBI].video_dev.tvnorms = std; in cx18_s_input()
554 cx18_mute(cx); in cx18_s_input()
555 cx18_video_set_io(cx); in cx18_s_input()
556 cx18_audio_set_io(cx); in cx18_s_input()
557 cx18_unmute(cx); in cx18_s_input()
564 struct cx18 *cx = fh2id(fh)->cx; in cx18_g_frequency() local
569 cx18_call_all(cx, tuner, g_frequency, vf); in cx18_g_frequency()
576 struct cx18 *cx = id->cx; in cx18_s_frequency() local
581 cx18_mute(cx); in cx18_s_frequency()
583 cx18_call_all(cx, tuner, s_frequency, vf); in cx18_s_frequency()
584 cx18_unmute(cx); in cx18_s_frequency()
590 struct cx18 *cx = fh2id(fh)->cx; in cx18_g_std() local
592 *std = cx->std; in cx18_g_std()
599 struct cx18 *cx = id->cx; in cx18_s_std() local
604 if (std == cx->std) in cx18_s_std()
607 if (test_bit(CX18_F_I_RADIO_USER, &cx->i_flags) || in cx18_s_std()
608 atomic_read(&cx->ana_capturing) > 0) { in cx18_s_std()
615 cx->std = std; in cx18_s_std()
616 cx->is_60hz = (std & V4L2_STD_525_60) ? 1 : 0; in cx18_s_std()
617 cx->is_50hz = !cx->is_60hz; in cx18_s_std()
618 cx2341x_handler_set_50hz(&cx->cxhdl, cx->is_50hz); in cx18_s_std()
619 cx->cxhdl.width = 720; in cx18_s_std()
620 cx->cxhdl.height = cx->is_50hz ? 576 : 480; in cx18_s_std()
625 if (cx->streams[CX18_ENC_STREAM_TYPE_YUV].pixelformat == V4L2_PIX_FMT_NV12_16L16) { in cx18_s_std()
626 cx->streams[CX18_ENC_STREAM_TYPE_YUV].vb_bytes_per_frame = in cx18_s_std()
627 cx->cxhdl.height * 720 * 3 / 2; in cx18_s_std()
628 cx->streams[CX18_ENC_STREAM_TYPE_YUV].vb_bytes_per_line = 720; in cx18_s_std()
630 cx->streams[CX18_ENC_STREAM_TYPE_YUV].vb_bytes_per_frame = in cx18_s_std()
631 cx->cxhdl.height * 720 * 2; in cx18_s_std()
632 cx->streams[CX18_ENC_STREAM_TYPE_YUV].vb_bytes_per_line = 1440; in cx18_s_std()
634 cx->vbi.count = cx->is_50hz ? 18 : 12; in cx18_s_std()
635 cx->vbi.start[0] = cx->is_50hz ? 6 : 10; in cx18_s_std()
636 cx->vbi.start[1] = cx->is_50hz ? 318 : 273; in cx18_s_std()
638 (unsigned long long) cx->std); in cx18_s_std()
641 cx18_call_all(cx, video, s_std, cx->std); in cx18_s_std()
648 struct cx18 *cx = id->cx; in cx18_s_tuner() local
653 cx18_call_all(cx, tuner, s_tuner, vt); in cx18_s_tuner()
659 struct cx18 *cx = fh2id(fh)->cx; in cx18_g_tuner() local
664 cx18_call_all(cx, tuner, g_tuner, vt); in cx18_g_tuner()
676 struct cx18 *cx = fh2id(fh)->cx; in cx18_g_sliced_vbi_cap() local
677 int set = cx->is_50hz ? V4L2_SLICED_VBI_625 : V4L2_SLICED_VBI_525; in cx18_g_sliced_vbi_cap()
686 if (valid_service_line(f, l, cx->is_50hz)) { in cx18_g_sliced_vbi_cap()
797 struct cx18 *cx = fh2id(fh)->cx; in cx18_g_enc_index() local
798 struct cx18_stream *s = &cx->streams[CX18_ENC_STREAM_TYPE_IDX]; in cx18_g_enc_index()
845 struct cx18 *cx = id->cx; in cx18_encoder_cmd() local
857 cx18_stop_capture(&cx->streams[id->type], in cx18_encoder_cmd()
864 if (!atomic_read(&cx->ana_capturing)) in cx18_encoder_cmd()
866 if (test_and_set_bit(CX18_F_I_ENC_PAUSED, &cx->i_flags)) in cx18_encoder_cmd()
868 h = cx18_find_handle(cx); in cx18_encoder_cmd()
873 cx18_mute(cx); in cx18_encoder_cmd()
874 cx18_vapi(cx, CX18_CPU_CAPTURE_PAUSE, 1, h); in cx18_encoder_cmd()
880 if (!atomic_read(&cx->ana_capturing)) in cx18_encoder_cmd()
882 if (!test_and_clear_bit(CX18_F_I_ENC_PAUSED, &cx->i_flags)) in cx18_encoder_cmd()
884 h = cx18_find_handle(cx); in cx18_encoder_cmd()
889 cx18_vapi(cx, CX18_CPU_CAPTURE_RESUME, 1, h); in cx18_encoder_cmd()
890 cx18_unmute(cx); in cx18_encoder_cmd()
903 struct cx18 *cx = fh2id(fh)->cx; in cx18_try_encoder_cmd() local
935 struct cx18 *cx = fh2id(fh)->cx; in cx18_log_status() local
940 CX18_INFO("Version: %s Card: %s\n", CX18_VERSION, cx->card_name); in cx18_log_status()
941 if (cx->hw_flags & CX18_HW_TVEEPROM) { in cx18_log_status()
944 cx18_read_eeprom(cx, &tv); in cx18_log_status()
946 cx18_call_all(cx, core, log_status); in cx18_log_status()
947 cx18_get_input(cx, cx->active_input, &vidin); in cx18_log_status()
948 cx18_get_audio_input(cx, cx->audio_input, &audin); in cx18_log_status()
951 mutex_lock(&cx->gpio_lock); in cx18_log_status()
953 cx->gpio_dir, cx->gpio_val); in cx18_log_status()
954 mutex_unlock(&cx->gpio_lock); in cx18_log_status()
956 test_bit(CX18_F_I_RADIO_USER, &cx->i_flags) ? "Radio" : "TV"); in cx18_log_status()
957 v4l2_ctrl_handler_log_status(&cx->cxhdl.hdl, cx->v4l2_dev.name); in cx18_log_status()
958 CX18_INFO("Status flags: 0x%08lx\n", cx->i_flags); in cx18_log_status()
960 struct cx18_stream *s = &cx->streams[i]; in cx18_log_status()
971 (long long)cx->mpg_data_received, in cx18_log_status()
972 (long long)cx->vbi_data_inserted); in cx18_log_status()
979 struct cx18 *cx = fh2id(fh)->cx; in cx18_default() local
986 cx18_call_hw(cx, CX18_HW_GPIO_RESET_CTRL, core, reset, in cx18_default()