Lines Matching refs:dev

119 	struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev, ctrl_hdl_user_gen);  in vivid_user_gen_s_ctrl()  local
123 v4l2_info(&dev->v4l2_dev, "disconnect\n"); in vivid_user_gen_s_ctrl()
124 dev->disconnect_error = true; in vivid_user_gen_s_ctrl()
125 vivid_unregister_dev(dev->has_vid_cap, &dev->vid_cap_dev); in vivid_user_gen_s_ctrl()
126 vivid_unregister_dev(dev->has_vid_out, &dev->vid_out_dev); in vivid_user_gen_s_ctrl()
127 vivid_unregister_dev(dev->has_vbi_cap, &dev->vbi_cap_dev); in vivid_user_gen_s_ctrl()
128 vivid_unregister_dev(dev->has_vbi_out, &dev->vbi_out_dev); in vivid_user_gen_s_ctrl()
129 vivid_unregister_dev(dev->has_radio_rx, &dev->radio_rx_dev); in vivid_user_gen_s_ctrl()
130 vivid_unregister_dev(dev->has_radio_tx, &dev->radio_tx_dev); in vivid_user_gen_s_ctrl()
131 vivid_unregister_dev(dev->has_sdr_cap, &dev->sdr_cap_dev); in vivid_user_gen_s_ctrl()
132 vivid_unregister_dev(dev->has_meta_cap, &dev->meta_cap_dev); in vivid_user_gen_s_ctrl()
133 vivid_unregister_dev(dev->has_meta_out, &dev->meta_out_dev); in vivid_user_gen_s_ctrl()
134 vivid_unregister_dev(dev->has_touch_cap, &dev->touch_cap_dev); in vivid_user_gen_s_ctrl()
137 dev->button_pressed = 30; in vivid_user_gen_s_ctrl()
364 struct vivid_dev *dev = container_of(ctrl->handler, in vivid_fb_s_ctrl() local
369 vivid_clear_fb(dev); in vivid_fb_s_ctrl()
391 struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev, ctrl_hdl_user_vid); in vivid_user_vid_g_volatile_ctrl() local
395 dev->gain->val = (jiffies_to_msecs(jiffies) / 1000) & 0xff; in vivid_user_vid_g_volatile_ctrl()
403 struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev, ctrl_hdl_user_vid); in vivid_user_vid_s_ctrl() local
407 dev->input_brightness[dev->input] = ctrl->val - dev->input * 128; in vivid_user_vid_s_ctrl()
408 tpg_s_brightness(&dev->tpg, dev->input_brightness[dev->input]); in vivid_user_vid_s_ctrl()
411 tpg_s_contrast(&dev->tpg, ctrl->val); in vivid_user_vid_s_ctrl()
414 tpg_s_saturation(&dev->tpg, ctrl->val); in vivid_user_vid_s_ctrl()
417 tpg_s_hue(&dev->tpg, ctrl->val); in vivid_user_vid_s_ctrl()
420 dev->hflip = ctrl->val; in vivid_user_vid_s_ctrl()
421 tpg_s_hflip(&dev->tpg, dev->sensor_hflip ^ dev->hflip); in vivid_user_vid_s_ctrl()
424 dev->vflip = ctrl->val; in vivid_user_vid_s_ctrl()
425 tpg_s_vflip(&dev->tpg, dev->sensor_vflip ^ dev->vflip); in vivid_user_vid_s_ctrl()
428 tpg_s_alpha_component(&dev->tpg, ctrl->val); in vivid_user_vid_s_ctrl()
455 struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev, ctrl_hdl_vid_cap); in vivid_vid_cap_s_ctrl() local
460 vivid_update_quality(dev); in vivid_vid_cap_s_ctrl()
461 tpg_s_pattern(&dev->tpg, ctrl->val); in vivid_vid_cap_s_ctrl()
464 tpg_s_colorspace(&dev->tpg, colorspaces[ctrl->val]); in vivid_vid_cap_s_ctrl()
465 vivid_send_source_change(dev, TV); in vivid_vid_cap_s_ctrl()
466 vivid_send_source_change(dev, SVID); in vivid_vid_cap_s_ctrl()
467 vivid_send_source_change(dev, HDMI); in vivid_vid_cap_s_ctrl()
468 vivid_send_source_change(dev, WEBCAM); in vivid_vid_cap_s_ctrl()
471 tpg_s_xfer_func(&dev->tpg, ctrl->val); in vivid_vid_cap_s_ctrl()
472 vivid_send_source_change(dev, TV); in vivid_vid_cap_s_ctrl()
473 vivid_send_source_change(dev, SVID); in vivid_vid_cap_s_ctrl()
474 vivid_send_source_change(dev, HDMI); in vivid_vid_cap_s_ctrl()
475 vivid_send_source_change(dev, WEBCAM); in vivid_vid_cap_s_ctrl()
478 tpg_s_ycbcr_enc(&dev->tpg, ctrl->val); in vivid_vid_cap_s_ctrl()
479 vivid_send_source_change(dev, TV); in vivid_vid_cap_s_ctrl()
480 vivid_send_source_change(dev, SVID); in vivid_vid_cap_s_ctrl()
481 vivid_send_source_change(dev, HDMI); in vivid_vid_cap_s_ctrl()
482 vivid_send_source_change(dev, WEBCAM); in vivid_vid_cap_s_ctrl()
485 tpg_s_hsv_enc(&dev->tpg, ctrl->val ? V4L2_HSV_ENC_256 : in vivid_vid_cap_s_ctrl()
487 vivid_send_source_change(dev, TV); in vivid_vid_cap_s_ctrl()
488 vivid_send_source_change(dev, SVID); in vivid_vid_cap_s_ctrl()
489 vivid_send_source_change(dev, HDMI); in vivid_vid_cap_s_ctrl()
490 vivid_send_source_change(dev, WEBCAM); in vivid_vid_cap_s_ctrl()
493 tpg_s_quantization(&dev->tpg, ctrl->val); in vivid_vid_cap_s_ctrl()
494 vivid_send_source_change(dev, TV); in vivid_vid_cap_s_ctrl()
495 vivid_send_source_change(dev, SVID); in vivid_vid_cap_s_ctrl()
496 vivid_send_source_change(dev, HDMI); in vivid_vid_cap_s_ctrl()
497 vivid_send_source_change(dev, WEBCAM); in vivid_vid_cap_s_ctrl()
500 if (!vivid_is_hdmi_cap(dev)) in vivid_vid_cap_s_ctrl()
502 tpg_s_rgb_range(&dev->tpg, ctrl->val); in vivid_vid_cap_s_ctrl()
505 tpg_s_real_rgb_range(&dev->tpg, ctrl->val ? in vivid_vid_cap_s_ctrl()
509 tpg_s_alpha_mode(&dev->tpg, ctrl->val); in vivid_vid_cap_s_ctrl()
512 tpg_s_mv_hor_mode(&dev->tpg, ctrl->val); in vivid_vid_cap_s_ctrl()
515 tpg_s_mv_vert_mode(&dev->tpg, ctrl->val); in vivid_vid_cap_s_ctrl()
518 dev->osd_mode = ctrl->val; in vivid_vid_cap_s_ctrl()
521 tpg_s_perc_fill(&dev->tpg, ctrl->val); in vivid_vid_cap_s_ctrl()
523 dev->must_blank[i] = ctrl->val < 100; in vivid_vid_cap_s_ctrl()
526 tpg_s_insert_sav(&dev->tpg, ctrl->val); in vivid_vid_cap_s_ctrl()
529 tpg_s_insert_eav(&dev->tpg, ctrl->val); in vivid_vid_cap_s_ctrl()
532 tpg_s_insert_hdmi_video_guard_band(&dev->tpg, ctrl->val); in vivid_vid_cap_s_ctrl()
535 dev->sensor_hflip = ctrl->val; in vivid_vid_cap_s_ctrl()
536 tpg_s_hflip(&dev->tpg, dev->sensor_hflip ^ dev->hflip); in vivid_vid_cap_s_ctrl()
539 dev->sensor_vflip = ctrl->val; in vivid_vid_cap_s_ctrl()
540 tpg_s_vflip(&dev->tpg, dev->sensor_vflip ^ dev->vflip); in vivid_vid_cap_s_ctrl()
543 dev->reduced_fps = ctrl->val; in vivid_vid_cap_s_ctrl()
544 vivid_update_format_cap(dev, true); in vivid_vid_cap_s_ctrl()
547 dev->has_crop_cap = ctrl->val; in vivid_vid_cap_s_ctrl()
548 vivid_update_format_cap(dev, true); in vivid_vid_cap_s_ctrl()
551 dev->has_compose_cap = ctrl->val; in vivid_vid_cap_s_ctrl()
552 vivid_update_format_cap(dev, true); in vivid_vid_cap_s_ctrl()
555 dev->has_scaler_cap = ctrl->val; in vivid_vid_cap_s_ctrl()
556 vivid_update_format_cap(dev, true); in vivid_vid_cap_s_ctrl()
559 tpg_s_show_border(&dev->tpg, ctrl->val); in vivid_vid_cap_s_ctrl()
562 tpg_s_show_square(&dev->tpg, ctrl->val); in vivid_vid_cap_s_ctrl()
565 dev->std_aspect_ratio[dev->input] = ctrl->val; in vivid_vid_cap_s_ctrl()
566 tpg_s_video_aspect(&dev->tpg, vivid_get_video_aspect(dev)); in vivid_vid_cap_s_ctrl()
569 dev->dv_timings_signal_mode[dev->input] = in vivid_vid_cap_s_ctrl()
570 dev->ctrl_dv_timings_signal_mode->val; in vivid_vid_cap_s_ctrl()
571 dev->query_dv_timings[dev->input] = dev->ctrl_dv_timings->val; in vivid_vid_cap_s_ctrl()
573 dev->power_present = 0; in vivid_vid_cap_s_ctrl()
575 i < ARRAY_SIZE(dev->dv_timings_signal_mode); in vivid_vid_cap_s_ctrl()
577 if (dev->input_type[i] == HDMI) { in vivid_vid_cap_s_ctrl()
578 if (dev->dv_timings_signal_mode[i] != NO_SIGNAL) in vivid_vid_cap_s_ctrl()
579 dev->power_present |= (1 << j); in vivid_vid_cap_s_ctrl()
582 __v4l2_ctrl_s_ctrl(dev->ctrl_rx_power_present, in vivid_vid_cap_s_ctrl()
583 dev->power_present); in vivid_vid_cap_s_ctrl()
585 v4l2_ctrl_activate(dev->ctrl_dv_timings, in vivid_vid_cap_s_ctrl()
586 dev->dv_timings_signal_mode[dev->input] == in vivid_vid_cap_s_ctrl()
589 vivid_update_quality(dev); in vivid_vid_cap_s_ctrl()
590 vivid_send_source_change(dev, HDMI); in vivid_vid_cap_s_ctrl()
593 dev->dv_timings_aspect_ratio[dev->input] = ctrl->val; in vivid_vid_cap_s_ctrl()
594 tpg_s_video_aspect(&dev->tpg, vivid_get_video_aspect(dev)); in vivid_vid_cap_s_ctrl()
597 dev->tstamp_src_is_soe = ctrl->val; in vivid_vid_cap_s_ctrl()
598 dev->vb_vid_cap_q.timestamp_flags &= ~V4L2_BUF_FLAG_TSTAMP_SRC_MASK; in vivid_vid_cap_s_ctrl()
599 if (dev->tstamp_src_is_soe) in vivid_vid_cap_s_ctrl()
600 dev->vb_vid_cap_q.timestamp_flags |= V4L2_BUF_FLAG_TSTAMP_SRC_SOE; in vivid_vid_cap_s_ctrl()
603 dev->edid_max_blocks = ctrl->val; in vivid_vid_cap_s_ctrl()
604 if (dev->edid_blocks > dev->edid_max_blocks) in vivid_vid_cap_s_ctrl()
605 dev->edid_blocks = dev->edid_max_blocks; in vivid_vid_cap_s_ctrl()
973 struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev, ctrl_hdl_loop_cap); in vivid_loop_cap_s_ctrl() local
977 dev->loop_video = ctrl->val; in vivid_loop_cap_s_ctrl()
978 vivid_update_quality(dev); in vivid_loop_cap_s_ctrl()
979 vivid_send_source_change(dev, SVID); in vivid_loop_cap_s_ctrl()
980 vivid_send_source_change(dev, HDMI); in vivid_loop_cap_s_ctrl()
1004 struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev, ctrl_hdl_vbi_cap); in vivid_vbi_cap_s_ctrl() local
1008 dev->vbi_cap_interlaced = ctrl->val; in vivid_vbi_cap_s_ctrl()
1032 struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev, ctrl_hdl_vid_out); in vivid_vid_out_s_ctrl() local
1033 struct v4l2_bt_timings *bt = &dev->dv_timings_out.bt; in vivid_vid_out_s_ctrl()
1039 dev->has_crop_out = ctrl->val; in vivid_vid_out_s_ctrl()
1040 vivid_update_format_out(dev); in vivid_vid_out_s_ctrl()
1043 dev->has_compose_out = ctrl->val; in vivid_vid_out_s_ctrl()
1044 vivid_update_format_out(dev); in vivid_vid_out_s_ctrl()
1047 dev->has_scaler_out = ctrl->val; in vivid_vid_out_s_ctrl()
1048 vivid_update_format_out(dev); in vivid_vid_out_s_ctrl()
1051 dev->dvi_d_out = ctrl->val == V4L2_DV_TX_MODE_DVI_D; in vivid_vid_out_s_ctrl()
1052 if (!vivid_is_hdmi_out(dev)) in vivid_vid_out_s_ctrl()
1054 if (!dev->dvi_d_out && (bt->flags & V4L2_DV_FL_IS_CE_VIDEO)) { in vivid_vid_out_s_ctrl()
1056 dev->colorspace_out = V4L2_COLORSPACE_SMPTE170M; in vivid_vid_out_s_ctrl()
1058 dev->colorspace_out = V4L2_COLORSPACE_REC709; in vivid_vid_out_s_ctrl()
1059 dev->quantization_out = V4L2_QUANTIZATION_DEFAULT; in vivid_vid_out_s_ctrl()
1061 dev->colorspace_out = V4L2_COLORSPACE_SRGB; in vivid_vid_out_s_ctrl()
1062 dev->quantization_out = dev->dvi_d_out ? in vivid_vid_out_s_ctrl()
1066 if (dev->loop_video) in vivid_vid_out_s_ctrl()
1067 vivid_send_source_change(dev, HDMI); in vivid_vid_out_s_ctrl()
1070 if (dev->output_type[dev->output] != HDMI) in vivid_vid_out_s_ctrl()
1073 dev->display_present[dev->output] = ctrl->val; in vivid_vid_out_s_ctrl()
1074 for (i = 0, j = 0; i < dev->num_outputs; i++) in vivid_vid_out_s_ctrl()
1075 if (dev->output_type[i] == HDMI) in vivid_vid_out_s_ctrl()
1077 dev->display_present[i] << j++; in vivid_vid_out_s_ctrl()
1079 __v4l2_ctrl_s_ctrl(dev->ctrl_tx_rxsense, display_present); in vivid_vid_out_s_ctrl()
1081 if (dev->edid_blocks) { in vivid_vid_out_s_ctrl()
1082 __v4l2_ctrl_s_ctrl(dev->ctrl_tx_edid_present, in vivid_vid_out_s_ctrl()
1084 __v4l2_ctrl_s_ctrl(dev->ctrl_tx_hotplug, in vivid_vid_out_s_ctrl()
1088 bus_idx = dev->cec_output2bus_map[dev->output]; in vivid_vid_out_s_ctrl()
1089 if (!dev->cec_tx_adap[bus_idx]) in vivid_vid_out_s_ctrl()
1092 if (ctrl->val && dev->edid_blocks) in vivid_vid_out_s_ctrl()
1093 cec_s_phys_addr(dev->cec_tx_adap[bus_idx], in vivid_vid_out_s_ctrl()
1094 dev->cec_tx_adap[bus_idx]->phys_addr, in vivid_vid_out_s_ctrl()
1097 cec_phys_addr_invalidate(dev->cec_tx_adap[bus_idx]); in vivid_vid_out_s_ctrl()
1152 struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev, ctrl_hdl_streaming); in vivid_streaming_s_ctrl() local
1156 dev->dqbuf_error = true; in vivid_streaming_s_ctrl()
1159 dev->perc_dropped_buffers = ctrl->val; in vivid_streaming_s_ctrl()
1162 dev->queue_setup_error = true; in vivid_streaming_s_ctrl()
1165 dev->buf_prepare_error = true; in vivid_streaming_s_ctrl()
1168 dev->start_streaming_error = true; in vivid_streaming_s_ctrl()
1171 dev->req_validate_error = true; in vivid_streaming_s_ctrl()
1174 if (vb2_start_streaming_called(&dev->vb_vid_cap_q)) in vivid_streaming_s_ctrl()
1175 vb2_queue_error(&dev->vb_vid_cap_q); in vivid_streaming_s_ctrl()
1176 if (vb2_start_streaming_called(&dev->vb_vbi_cap_q)) in vivid_streaming_s_ctrl()
1177 vb2_queue_error(&dev->vb_vbi_cap_q); in vivid_streaming_s_ctrl()
1178 if (vb2_start_streaming_called(&dev->vb_vid_out_q)) in vivid_streaming_s_ctrl()
1179 vb2_queue_error(&dev->vb_vid_out_q); in vivid_streaming_s_ctrl()
1180 if (vb2_start_streaming_called(&dev->vb_vbi_out_q)) in vivid_streaming_s_ctrl()
1181 vb2_queue_error(&dev->vb_vbi_out_q); in vivid_streaming_s_ctrl()
1182 if (vb2_start_streaming_called(&dev->vb_sdr_cap_q)) in vivid_streaming_s_ctrl()
1183 vb2_queue_error(&dev->vb_sdr_cap_q); in vivid_streaming_s_ctrl()
1186 dev->seq_wrap = ctrl->val; in vivid_streaming_s_ctrl()
1189 dev->time_wrap = ctrl->val; in vivid_streaming_s_ctrl()
1190 if (dev->time_wrap == 1) in vivid_streaming_s_ctrl()
1191 dev->time_wrap = (1ULL << 63) - NSEC_PER_SEC * 16ULL; in vivid_streaming_s_ctrl()
1192 else if (dev->time_wrap == 2) in vivid_streaming_s_ctrl()
1193 dev->time_wrap = ((1ULL << 31) - 16) * NSEC_PER_SEC; in vivid_streaming_s_ctrl()
1287 struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev, ctrl_hdl_sdtv_cap); in vivid_sdtv_cap_s_ctrl() local
1291 dev->std_signal_mode[dev->input] = in vivid_sdtv_cap_s_ctrl()
1292 dev->ctrl_std_signal_mode->val; in vivid_sdtv_cap_s_ctrl()
1293 if (dev->std_signal_mode[dev->input] == SELECTED_STD) in vivid_sdtv_cap_s_ctrl()
1294 dev->query_std[dev->input] = in vivid_sdtv_cap_s_ctrl()
1295 vivid_standard[dev->ctrl_standard->val]; in vivid_sdtv_cap_s_ctrl()
1296 v4l2_ctrl_activate(dev->ctrl_standard, in vivid_sdtv_cap_s_ctrl()
1297 dev->std_signal_mode[dev->input] == in vivid_sdtv_cap_s_ctrl()
1299 vivid_update_quality(dev); in vivid_sdtv_cap_s_ctrl()
1300 vivid_send_source_change(dev, TV); in vivid_sdtv_cap_s_ctrl()
1301 vivid_send_source_change(dev, SVID); in vivid_sdtv_cap_s_ctrl()
1346 struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev, ctrl_hdl_radio_rx); in vivid_radio_rx_s_ctrl() local
1350 dev->radio_rx_hw_seek_mode = ctrl->val; in vivid_radio_rx_s_ctrl()
1353 dev->radio_rx_hw_seek_prog_lim = ctrl->val; in vivid_radio_rx_s_ctrl()
1356 dev->rds_gen.use_rbds = ctrl->val; in vivid_radio_rx_s_ctrl()
1359 dev->radio_rx_rds_controls = ctrl->val; in vivid_radio_rx_s_ctrl()
1360 dev->radio_rx_caps &= ~V4L2_CAP_READWRITE; in vivid_radio_rx_s_ctrl()
1361 dev->radio_rx_rds_use_alternates = false; in vivid_radio_rx_s_ctrl()
1362 if (!dev->radio_rx_rds_controls) { in vivid_radio_rx_s_ctrl()
1363 dev->radio_rx_caps |= V4L2_CAP_READWRITE; in vivid_radio_rx_s_ctrl()
1364 __v4l2_ctrl_s_ctrl(dev->radio_rx_rds_pty, 0); in vivid_radio_rx_s_ctrl()
1365 __v4l2_ctrl_s_ctrl(dev->radio_rx_rds_ta, 0); in vivid_radio_rx_s_ctrl()
1366 __v4l2_ctrl_s_ctrl(dev->radio_rx_rds_tp, 0); in vivid_radio_rx_s_ctrl()
1367 __v4l2_ctrl_s_ctrl(dev->radio_rx_rds_ms, 0); in vivid_radio_rx_s_ctrl()
1368 __v4l2_ctrl_s_ctrl_string(dev->radio_rx_rds_psname, ""); in vivid_radio_rx_s_ctrl()
1369 __v4l2_ctrl_s_ctrl_string(dev->radio_rx_rds_radiotext, ""); in vivid_radio_rx_s_ctrl()
1371 v4l2_ctrl_activate(dev->radio_rx_rds_pty, dev->radio_rx_rds_controls); in vivid_radio_rx_s_ctrl()
1372 v4l2_ctrl_activate(dev->radio_rx_rds_psname, dev->radio_rx_rds_controls); in vivid_radio_rx_s_ctrl()
1373 v4l2_ctrl_activate(dev->radio_rx_rds_radiotext, dev->radio_rx_rds_controls); in vivid_radio_rx_s_ctrl()
1374 v4l2_ctrl_activate(dev->radio_rx_rds_ta, dev->radio_rx_rds_controls); in vivid_radio_rx_s_ctrl()
1375 v4l2_ctrl_activate(dev->radio_rx_rds_tp, dev->radio_rx_rds_controls); in vivid_radio_rx_s_ctrl()
1376 v4l2_ctrl_activate(dev->radio_rx_rds_ms, dev->radio_rx_rds_controls); in vivid_radio_rx_s_ctrl()
1377 dev->radio_rx_dev.device_caps = dev->radio_rx_caps; in vivid_radio_rx_s_ctrl()
1380 dev->radio_rx_rds_enabled = ctrl->val; in vivid_radio_rx_s_ctrl()
1444 struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev, ctrl_hdl_radio_tx); in vivid_radio_tx_s_ctrl() local
1448 dev->radio_tx_rds_controls = ctrl->val; in vivid_radio_tx_s_ctrl()
1449 dev->radio_tx_caps &= ~V4L2_CAP_READWRITE; in vivid_radio_tx_s_ctrl()
1450 if (!dev->radio_tx_rds_controls) in vivid_radio_tx_s_ctrl()
1451 dev->radio_tx_caps |= V4L2_CAP_READWRITE; in vivid_radio_tx_s_ctrl()
1452 dev->radio_tx_dev.device_caps = dev->radio_tx_caps; in vivid_radio_tx_s_ctrl()
1455 if (dev->radio_rx_rds_controls) in vivid_radio_tx_s_ctrl()
1456 v4l2_ctrl_s_ctrl(dev->radio_rx_rds_pty, ctrl->val); in vivid_radio_tx_s_ctrl()
1459 if (dev->radio_rx_rds_controls) in vivid_radio_tx_s_ctrl()
1460 v4l2_ctrl_s_ctrl_string(dev->radio_rx_rds_psname, ctrl->p_new.p_char); in vivid_radio_tx_s_ctrl()
1463 if (dev->radio_rx_rds_controls) in vivid_radio_tx_s_ctrl()
1464 v4l2_ctrl_s_ctrl_string(dev->radio_rx_rds_radiotext, ctrl->p_new.p_char); in vivid_radio_tx_s_ctrl()
1467 if (dev->radio_rx_rds_controls) in vivid_radio_tx_s_ctrl()
1468 v4l2_ctrl_s_ctrl(dev->radio_rx_rds_ta, ctrl->val); in vivid_radio_tx_s_ctrl()
1471 if (dev->radio_rx_rds_controls) in vivid_radio_tx_s_ctrl()
1472 v4l2_ctrl_s_ctrl(dev->radio_rx_rds_tp, ctrl->val); in vivid_radio_tx_s_ctrl()
1475 if (dev->radio_rx_rds_controls) in vivid_radio_tx_s_ctrl()
1476 v4l2_ctrl_s_ctrl(dev->radio_rx_rds_ms, ctrl->val); in vivid_radio_tx_s_ctrl()
1501 struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev, ctrl_hdl_sdr_cap); in vivid_sdr_cap_s_ctrl() local
1505 dev->sdr_fm_deviation = ctrl->val; in vivid_sdr_cap_s_ctrl()
1530 struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev, in vivid_meta_cap_s_ctrl() local
1535 dev->meta_pts = ctrl->val; in vivid_meta_cap_s_ctrl()
1538 dev->meta_scr = ctrl->val; in vivid_meta_cap_s_ctrl()
1576 int vivid_create_controls(struct vivid_dev *dev, bool show_ccs_cap, in vivid_create_controls() argument
1580 struct v4l2_ctrl_handler *hdl_user_gen = &dev->ctrl_hdl_user_gen; in vivid_create_controls()
1581 struct v4l2_ctrl_handler *hdl_user_vid = &dev->ctrl_hdl_user_vid; in vivid_create_controls()
1582 struct v4l2_ctrl_handler *hdl_user_aud = &dev->ctrl_hdl_user_aud; in vivid_create_controls()
1583 struct v4l2_ctrl_handler *hdl_streaming = &dev->ctrl_hdl_streaming; in vivid_create_controls()
1584 struct v4l2_ctrl_handler *hdl_sdtv_cap = &dev->ctrl_hdl_sdtv_cap; in vivid_create_controls()
1585 struct v4l2_ctrl_handler *hdl_loop_cap = &dev->ctrl_hdl_loop_cap; in vivid_create_controls()
1586 struct v4l2_ctrl_handler *hdl_fb = &dev->ctrl_hdl_fb; in vivid_create_controls()
1587 struct v4l2_ctrl_handler *hdl_vid_cap = &dev->ctrl_hdl_vid_cap; in vivid_create_controls()
1588 struct v4l2_ctrl_handler *hdl_vid_out = &dev->ctrl_hdl_vid_out; in vivid_create_controls()
1589 struct v4l2_ctrl_handler *hdl_vbi_cap = &dev->ctrl_hdl_vbi_cap; in vivid_create_controls()
1590 struct v4l2_ctrl_handler *hdl_vbi_out = &dev->ctrl_hdl_vbi_out; in vivid_create_controls()
1591 struct v4l2_ctrl_handler *hdl_radio_rx = &dev->ctrl_hdl_radio_rx; in vivid_create_controls()
1592 struct v4l2_ctrl_handler *hdl_radio_tx = &dev->ctrl_hdl_radio_tx; in vivid_create_controls()
1593 struct v4l2_ctrl_handler *hdl_sdr_cap = &dev->ctrl_hdl_sdr_cap; in vivid_create_controls()
1594 struct v4l2_ctrl_handler *hdl_meta_cap = &dev->ctrl_hdl_meta_cap; in vivid_create_controls()
1595 struct v4l2_ctrl_handler *hdl_meta_out = &dev->ctrl_hdl_meta_out; in vivid_create_controls()
1596 struct v4l2_ctrl_handler *hdl_tch_cap = &dev->ctrl_hdl_touch_cap; in vivid_create_controls()
1623 if (!no_error_inj || dev->has_fb || dev->num_hdmi_outputs) in vivid_create_controls()
1644 dev->volume = v4l2_ctrl_new_std(hdl_user_aud, NULL, in vivid_create_controls()
1646 dev->mute = v4l2_ctrl_new_std(hdl_user_aud, NULL, in vivid_create_controls()
1648 if (dev->has_vid_cap) { in vivid_create_controls()
1649 dev->brightness = v4l2_ctrl_new_std(hdl_user_vid, &vivid_user_vid_ctrl_ops, in vivid_create_controls()
1652 dev->input_brightness[i] = 128; in vivid_create_controls()
1653 dev->contrast = v4l2_ctrl_new_std(hdl_user_vid, &vivid_user_vid_ctrl_ops, in vivid_create_controls()
1655 dev->saturation = v4l2_ctrl_new_std(hdl_user_vid, &vivid_user_vid_ctrl_ops, in vivid_create_controls()
1657 dev->hue = v4l2_ctrl_new_std(hdl_user_vid, &vivid_user_vid_ctrl_ops, in vivid_create_controls()
1663 dev->autogain = v4l2_ctrl_new_std(hdl_user_vid, &vivid_user_vid_ctrl_ops, in vivid_create_controls()
1665 dev->gain = v4l2_ctrl_new_std(hdl_user_vid, &vivid_user_vid_ctrl_ops, in vivid_create_controls()
1667 dev->alpha = v4l2_ctrl_new_std(hdl_user_vid, &vivid_user_vid_ctrl_ops, in vivid_create_controls()
1670 dev->button = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_button, NULL); in vivid_create_controls()
1671 dev->int32 = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_int32, NULL); in vivid_create_controls()
1672 dev->int64 = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_int64, NULL); in vivid_create_controls()
1673 dev->boolean = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_boolean, NULL); in vivid_create_controls()
1674 dev->menu = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_menu, NULL); in vivid_create_controls()
1675 dev->string = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_string, NULL); in vivid_create_controls()
1676 dev->bitmask = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_bitmask, NULL); in vivid_create_controls()
1677 dev->int_menu = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_int_menu, NULL); in vivid_create_controls()
1678 dev->ro_int32 = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_ro_int32, NULL); in vivid_create_controls()
1684 dev->pixel_array = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_u8_pixel_array, NULL); in vivid_create_controls()
1688 if (dev->has_vid_cap) { in vivid_create_controls()
1699 dev->test_pattern = v4l2_ctrl_new_custom(hdl_vid_cap, in vivid_create_controls()
1714 dev->ctrl_has_crop_cap = v4l2_ctrl_new_custom(hdl_vid_cap, in vivid_create_controls()
1716 dev->ctrl_has_compose_cap = v4l2_ctrl_new_custom(hdl_vid_cap, in vivid_create_controls()
1718 dev->ctrl_has_scaler_cap = v4l2_ctrl_new_custom(hdl_vid_cap, in vivid_create_controls()
1723 dev->colorspace = v4l2_ctrl_new_custom(hdl_vid_cap, in vivid_create_controls()
1732 if (dev->has_vid_out && show_ccs_out) { in vivid_create_controls()
1733 dev->ctrl_has_crop_out = v4l2_ctrl_new_custom(hdl_vid_out, in vivid_create_controls()
1735 dev->ctrl_has_compose_out = v4l2_ctrl_new_custom(hdl_vid_out, in vivid_create_controls()
1737 dev->ctrl_has_scaler_out = v4l2_ctrl_new_custom(hdl_vid_out, in vivid_create_controls()
1762 if (has_sdtv && (dev->has_vid_cap || dev->has_vbi_cap)) { in vivid_create_controls()
1763 if (dev->has_vid_cap) in vivid_create_controls()
1765 dev->ctrl_std_signal_mode = v4l2_ctrl_new_custom(hdl_sdtv_cap, in vivid_create_controls()
1767 dev->ctrl_standard = v4l2_ctrl_new_custom(hdl_sdtv_cap, in vivid_create_controls()
1769 if (dev->ctrl_std_signal_mode) in vivid_create_controls()
1770 v4l2_ctrl_cluster(2, &dev->ctrl_std_signal_mode); in vivid_create_controls()
1771 if (dev->has_raw_vbi_cap) in vivid_create_controls()
1775 if (dev->num_hdmi_inputs) { in vivid_create_controls()
1776 s64 hdmi_input_mask = GENMASK(dev->num_hdmi_inputs - 1, 0); in vivid_create_controls()
1778 dev->ctrl_dv_timings_signal_mode = v4l2_ctrl_new_custom(hdl_vid_cap, in vivid_create_controls()
1781 vivid_ctrl_dv_timings.max = dev->query_dv_timings_size - 1; in vivid_create_controls()
1783 (const char * const *)dev->query_dv_timings_qmenu; in vivid_create_controls()
1784 dev->ctrl_dv_timings = v4l2_ctrl_new_custom(hdl_vid_cap, in vivid_create_controls()
1786 if (dev->ctrl_dv_timings_signal_mode) in vivid_create_controls()
1787 v4l2_ctrl_cluster(2, &dev->ctrl_dv_timings_signal_mode); in vivid_create_controls()
1791 dev->real_rgb_range_cap = v4l2_ctrl_new_custom(hdl_vid_cap, in vivid_create_controls()
1793 dev->rgb_range_cap = v4l2_ctrl_new_std_menu(hdl_vid_cap, in vivid_create_controls()
1797 dev->ctrl_rx_power_present = v4l2_ctrl_new_std(hdl_vid_cap, in vivid_create_controls()
1802 if (dev->num_hdmi_outputs) { in vivid_create_controls()
1803 s64 hdmi_output_mask = GENMASK(dev->num_hdmi_outputs - 1, 0); in vivid_create_controls()
1809 dev->ctrl_tx_rgb_range = v4l2_ctrl_new_std_menu(hdl_vid_out, NULL, in vivid_create_controls()
1812 dev->ctrl_tx_mode = v4l2_ctrl_new_std_menu(hdl_vid_out, NULL, in vivid_create_controls()
1815 dev->ctrl_display_present = v4l2_ctrl_new_custom(hdl_vid_out, in vivid_create_controls()
1817 dev->ctrl_tx_hotplug = v4l2_ctrl_new_std(hdl_vid_out, in vivid_create_controls()
1820 dev->ctrl_tx_rxsense = v4l2_ctrl_new_std(hdl_vid_out, in vivid_create_controls()
1823 dev->ctrl_tx_edid_present = v4l2_ctrl_new_std(hdl_vid_out, in vivid_create_controls()
1827 if ((dev->has_vid_cap && dev->has_vid_out) || in vivid_create_controls()
1828 (dev->has_vbi_cap && dev->has_vbi_out)) in vivid_create_controls()
1831 if (dev->has_fb) in vivid_create_controls()
1834 if (dev->has_radio_rx) { in vivid_create_controls()
1841 dev->radio_rx_rds_pty = v4l2_ctrl_new_std(hdl_radio_rx, in vivid_create_controls()
1844 dev->radio_rx_rds_psname = v4l2_ctrl_new_std(hdl_radio_rx, in vivid_create_controls()
1847 dev->radio_rx_rds_radiotext = v4l2_ctrl_new_std(hdl_radio_rx, in vivid_create_controls()
1850 dev->radio_rx_rds_ta = v4l2_ctrl_new_std(hdl_radio_rx, in vivid_create_controls()
1853 dev->radio_rx_rds_tp = v4l2_ctrl_new_std(hdl_radio_rx, in vivid_create_controls()
1856 dev->radio_rx_rds_ms = v4l2_ctrl_new_std(hdl_radio_rx, in vivid_create_controls()
1860 if (dev->has_radio_tx) { in vivid_create_controls()
1863 dev->radio_tx_rds_pi = v4l2_ctrl_new_std(hdl_radio_tx, in vivid_create_controls()
1866 dev->radio_tx_rds_pty = v4l2_ctrl_new_std(hdl_radio_tx, in vivid_create_controls()
1869 dev->radio_tx_rds_psname = v4l2_ctrl_new_std(hdl_radio_tx, in vivid_create_controls()
1872 if (dev->radio_tx_rds_psname) in vivid_create_controls()
1873 v4l2_ctrl_s_ctrl_string(dev->radio_tx_rds_psname, "VIVID-TX"); in vivid_create_controls()
1874 dev->radio_tx_rds_radiotext = v4l2_ctrl_new_std(hdl_radio_tx, in vivid_create_controls()
1877 if (dev->radio_tx_rds_radiotext) in vivid_create_controls()
1878 v4l2_ctrl_s_ctrl_string(dev->radio_tx_rds_radiotext, in vivid_create_controls()
1880 dev->radio_tx_rds_mono_stereo = v4l2_ctrl_new_std(hdl_radio_tx, in vivid_create_controls()
1883 dev->radio_tx_rds_art_head = v4l2_ctrl_new_std(hdl_radio_tx, in vivid_create_controls()
1886 dev->radio_tx_rds_compressed = v4l2_ctrl_new_std(hdl_radio_tx, in vivid_create_controls()
1889 dev->radio_tx_rds_dyn_pty = v4l2_ctrl_new_std(hdl_radio_tx, in vivid_create_controls()
1892 dev->radio_tx_rds_ta = v4l2_ctrl_new_std(hdl_radio_tx, in vivid_create_controls()
1895 dev->radio_tx_rds_tp = v4l2_ctrl_new_std(hdl_radio_tx, in vivid_create_controls()
1898 dev->radio_tx_rds_ms = v4l2_ctrl_new_std(hdl_radio_tx, in vivid_create_controls()
1902 if (dev->has_sdr_cap) { in vivid_create_controls()
1906 if (dev->has_meta_cap) { in vivid_create_controls()
1926 if (dev->autogain) in vivid_create_controls()
1927 v4l2_ctrl_auto_cluster(2, &dev->autogain, 0, true); in vivid_create_controls()
1929 if (dev->has_vid_cap) { in vivid_create_controls()
1939 dev->vid_cap_dev.ctrl_handler = hdl_vid_cap; in vivid_create_controls()
1941 if (dev->has_vid_out) { in vivid_create_controls()
1948 dev->vid_out_dev.ctrl_handler = hdl_vid_out; in vivid_create_controls()
1950 if (dev->has_vbi_cap) { in vivid_create_controls()
1957 dev->vbi_cap_dev.ctrl_handler = hdl_vbi_cap; in vivid_create_controls()
1959 if (dev->has_vbi_out) { in vivid_create_controls()
1964 dev->vbi_out_dev.ctrl_handler = hdl_vbi_out; in vivid_create_controls()
1966 if (dev->has_radio_rx) { in vivid_create_controls()
1971 dev->radio_rx_dev.ctrl_handler = hdl_radio_rx; in vivid_create_controls()
1973 if (dev->has_radio_tx) { in vivid_create_controls()
1978 dev->radio_tx_dev.ctrl_handler = hdl_radio_tx; in vivid_create_controls()
1980 if (dev->has_sdr_cap) { in vivid_create_controls()
1985 dev->sdr_cap_dev.ctrl_handler = hdl_sdr_cap; in vivid_create_controls()
1987 if (dev->has_meta_cap) { in vivid_create_controls()
1992 dev->meta_cap_dev.ctrl_handler = hdl_meta_cap; in vivid_create_controls()
1994 if (dev->has_meta_out) { in vivid_create_controls()
1999 dev->meta_out_dev.ctrl_handler = hdl_meta_out; in vivid_create_controls()
2001 if (dev->has_touch_cap) { in vivid_create_controls()
2006 dev->touch_cap_dev.ctrl_handler = hdl_tch_cap; in vivid_create_controls()
2011 void vivid_free_controls(struct vivid_dev *dev) in vivid_free_controls() argument
2013 v4l2_ctrl_handler_free(&dev->ctrl_hdl_vid_cap); in vivid_free_controls()
2014 v4l2_ctrl_handler_free(&dev->ctrl_hdl_vid_out); in vivid_free_controls()
2015 v4l2_ctrl_handler_free(&dev->ctrl_hdl_vbi_cap); in vivid_free_controls()
2016 v4l2_ctrl_handler_free(&dev->ctrl_hdl_vbi_out); in vivid_free_controls()
2017 v4l2_ctrl_handler_free(&dev->ctrl_hdl_radio_rx); in vivid_free_controls()
2018 v4l2_ctrl_handler_free(&dev->ctrl_hdl_radio_tx); in vivid_free_controls()
2019 v4l2_ctrl_handler_free(&dev->ctrl_hdl_sdr_cap); in vivid_free_controls()
2020 v4l2_ctrl_handler_free(&dev->ctrl_hdl_user_gen); in vivid_free_controls()
2021 v4l2_ctrl_handler_free(&dev->ctrl_hdl_user_vid); in vivid_free_controls()
2022 v4l2_ctrl_handler_free(&dev->ctrl_hdl_user_aud); in vivid_free_controls()
2023 v4l2_ctrl_handler_free(&dev->ctrl_hdl_streaming); in vivid_free_controls()
2024 v4l2_ctrl_handler_free(&dev->ctrl_hdl_sdtv_cap); in vivid_free_controls()
2025 v4l2_ctrl_handler_free(&dev->ctrl_hdl_loop_cap); in vivid_free_controls()
2026 v4l2_ctrl_handler_free(&dev->ctrl_hdl_fb); in vivid_free_controls()
2027 v4l2_ctrl_handler_free(&dev->ctrl_hdl_meta_cap); in vivid_free_controls()
2028 v4l2_ctrl_handler_free(&dev->ctrl_hdl_meta_out); in vivid_free_controls()
2029 v4l2_ctrl_handler_free(&dev->ctrl_hdl_touch_cap); in vivid_free_controls()