Lines Matching refs:dev

105 	struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev, ctrl_hdl_user_gen);
109 v4l2_info(&dev->v4l2_dev, "disconnect\n");
110 clear_bit(V4L2_FL_REGISTERED, &dev->vid_cap_dev.flags);
111 clear_bit(V4L2_FL_REGISTERED, &dev->vid_out_dev.flags);
112 clear_bit(V4L2_FL_REGISTERED, &dev->vbi_cap_dev.flags);
113 clear_bit(V4L2_FL_REGISTERED, &dev->vbi_out_dev.flags);
114 clear_bit(V4L2_FL_REGISTERED, &dev->sdr_cap_dev.flags);
115 clear_bit(V4L2_FL_REGISTERED, &dev->radio_rx_dev.flags);
116 clear_bit(V4L2_FL_REGISTERED, &dev->radio_tx_dev.flags);
117 clear_bit(V4L2_FL_REGISTERED, &dev->meta_cap_dev.flags);
120 dev->button_pressed = 30;
287 struct vivid_dev *dev = container_of(ctrl->handler,
292 vivid_clear_fb(dev);
314 struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev, ctrl_hdl_user_vid);
318 dev->gain->val = (jiffies_to_msecs(jiffies) / 1000) & 0xff;
326 struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev, ctrl_hdl_user_vid);
330 dev->input_brightness[dev->input] = ctrl->val - dev->input * 128;
331 tpg_s_brightness(&dev->tpg, dev->input_brightness[dev->input]);
334 tpg_s_contrast(&dev->tpg, ctrl->val);
337 tpg_s_saturation(&dev->tpg, ctrl->val);
340 tpg_s_hue(&dev->tpg, ctrl->val);
343 dev->hflip = ctrl->val;
344 tpg_s_hflip(&dev->tpg, dev->sensor_hflip ^ dev->hflip);
347 dev->vflip = ctrl->val;
348 tpg_s_vflip(&dev->tpg, dev->sensor_vflip ^ dev->vflip);
351 tpg_s_alpha_component(&dev->tpg, ctrl->val);
378 struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev, ctrl_hdl_vid_cap);
383 vivid_update_quality(dev);
384 tpg_s_pattern(&dev->tpg, ctrl->val);
387 tpg_s_colorspace(&dev->tpg, colorspaces[ctrl->val]);
388 vivid_send_source_change(dev, TV);
389 vivid_send_source_change(dev, SVID);
390 vivid_send_source_change(dev, HDMI);
391 vivid_send_source_change(dev, WEBCAM);
394 tpg_s_xfer_func(&dev->tpg, ctrl->val);
395 vivid_send_source_change(dev, TV);
396 vivid_send_source_change(dev, SVID);
397 vivid_send_source_change(dev, HDMI);
398 vivid_send_source_change(dev, WEBCAM);
401 tpg_s_ycbcr_enc(&dev->tpg, ctrl->val);
402 vivid_send_source_change(dev, TV);
403 vivid_send_source_change(dev, SVID);
404 vivid_send_source_change(dev, HDMI);
405 vivid_send_source_change(dev, WEBCAM);
408 tpg_s_hsv_enc(&dev->tpg, ctrl->val ? V4L2_HSV_ENC_256 :
410 vivid_send_source_change(dev, TV);
411 vivid_send_source_change(dev, SVID);
412 vivid_send_source_change(dev, HDMI);
413 vivid_send_source_change(dev, WEBCAM);
416 tpg_s_quantization(&dev->tpg, ctrl->val);
417 vivid_send_source_change(dev, TV);
418 vivid_send_source_change(dev, SVID);
419 vivid_send_source_change(dev, HDMI);
420 vivid_send_source_change(dev, WEBCAM);
423 if (!vivid_is_hdmi_cap(dev))
425 tpg_s_rgb_range(&dev->tpg, ctrl->val);
428 tpg_s_real_rgb_range(&dev->tpg, ctrl->val ?
432 tpg_s_alpha_mode(&dev->tpg, ctrl->val);
435 tpg_s_mv_hor_mode(&dev->tpg, ctrl->val);
438 tpg_s_mv_vert_mode(&dev->tpg, ctrl->val);
441 dev->osd_mode = ctrl->val;
444 tpg_s_perc_fill(&dev->tpg, ctrl->val);
446 dev->must_blank[i] = ctrl->val < 100;
449 tpg_s_insert_sav(&dev->tpg, ctrl->val);
452 tpg_s_insert_eav(&dev->tpg, ctrl->val);
455 dev->sensor_hflip = ctrl->val;
456 tpg_s_hflip(&dev->tpg, dev->sensor_hflip ^ dev->hflip);
459 dev->sensor_vflip = ctrl->val;
460 tpg_s_vflip(&dev->tpg, dev->sensor_vflip ^ dev->vflip);
463 dev->reduced_fps = ctrl->val;
464 vivid_update_format_cap(dev, true);
467 dev->has_crop_cap = ctrl->val;
468 vivid_update_format_cap(dev, true);
471 dev->has_compose_cap = ctrl->val;
472 vivid_update_format_cap(dev, true);
475 dev->has_scaler_cap = ctrl->val;
476 vivid_update_format_cap(dev, true);
479 tpg_s_show_border(&dev->tpg, ctrl->val);
482 tpg_s_show_square(&dev->tpg, ctrl->val);
485 dev->std_aspect_ratio[dev->input] = ctrl->val;
486 tpg_s_video_aspect(&dev->tpg, vivid_get_video_aspect(dev));
489 dev->dv_timings_signal_mode[dev->input] =
490 dev->ctrl_dv_timings_signal_mode->val;
491 dev->query_dv_timings[dev->input] = dev->ctrl_dv_timings->val;
493 dev->power_present = 0;
495 i < ARRAY_SIZE(dev->dv_timings_signal_mode);
497 if (dev->input_type[i] == HDMI) {
498 if (dev->dv_timings_signal_mode[i] != NO_SIGNAL)
499 dev->power_present |= (1 << j);
502 __v4l2_ctrl_s_ctrl(dev->ctrl_rx_power_present,
503 dev->power_present);
505 v4l2_ctrl_activate(dev->ctrl_dv_timings,
506 dev->dv_timings_signal_mode[dev->input] ==
509 vivid_update_quality(dev);
510 vivid_send_source_change(dev, HDMI);
513 dev->dv_timings_aspect_ratio[dev->input] = ctrl->val;
514 tpg_s_video_aspect(&dev->tpg, vivid_get_video_aspect(dev));
517 dev->tstamp_src_is_soe = ctrl->val;
518 dev->vb_vid_cap_q.timestamp_flags &= ~V4L2_BUF_FLAG_TSTAMP_SRC_MASK;
519 if (dev->tstamp_src_is_soe)
520 dev->vb_vid_cap_q.timestamp_flags |= V4L2_BUF_FLAG_TSTAMP_SRC_SOE;
523 dev->edid_max_blocks = ctrl->val;
524 if (dev->edid_blocks > dev->edid_max_blocks)
525 dev->edid_blocks = dev->edid_max_blocks;
884 struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev, ctrl_hdl_loop_cap);
888 dev->loop_video = ctrl->val;
889 vivid_update_quality(dev);
890 vivid_send_source_change(dev, SVID);
891 vivid_send_source_change(dev, HDMI);
915 struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev, ctrl_hdl_vbi_cap);
919 dev->vbi_cap_interlaced = ctrl->val;
943 struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev, ctrl_hdl_vid_out);
944 struct v4l2_bt_timings *bt = &dev->dv_timings_out.bt;
950 dev->has_crop_out = ctrl->val;
951 vivid_update_format_out(dev);
954 dev->has_compose_out = ctrl->val;
955 vivid_update_format_out(dev);
958 dev->has_scaler_out = ctrl->val;
959 vivid_update_format_out(dev);
962 dev->dvi_d_out = ctrl->val == V4L2_DV_TX_MODE_DVI_D;
963 if (!vivid_is_hdmi_out(dev))
965 if (!dev->dvi_d_out && (bt->flags & V4L2_DV_FL_IS_CE_VIDEO)) {
967 dev->colorspace_out = V4L2_COLORSPACE_SMPTE170M;
969 dev->colorspace_out = V4L2_COLORSPACE_REC709;
970 dev->quantization_out = V4L2_QUANTIZATION_DEFAULT;
972 dev->colorspace_out = V4L2_COLORSPACE_SRGB;
973 dev->quantization_out = dev->dvi_d_out ?
977 if (dev->loop_video)
978 vivid_send_source_change(dev, HDMI);
981 if (dev->output_type[dev->output] != HDMI)
984 dev->display_present[dev->output] = ctrl->val;
985 for (i = 0, j = 0; i < dev->num_outputs; i++)
986 if (dev->output_type[i] == HDMI)
988 dev->display_present[i] << j++;
990 __v4l2_ctrl_s_ctrl(dev->ctrl_tx_rxsense, display_present);
992 if (dev->edid_blocks) {
993 __v4l2_ctrl_s_ctrl(dev->ctrl_tx_edid_present,
995 __v4l2_ctrl_s_ctrl(dev->ctrl_tx_hotplug,
999 bus_idx = dev->cec_output2bus_map[dev->output];
1000 if (!dev->cec_tx_adap[bus_idx])
1003 if (ctrl->val && dev->edid_blocks)
1004 cec_s_phys_addr(dev->cec_tx_adap[bus_idx],
1005 dev->cec_tx_adap[bus_idx]->phys_addr,
1008 cec_phys_addr_invalidate(dev->cec_tx_adap[bus_idx]);
1063 struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev, ctrl_hdl_streaming);
1068 dev->dqbuf_error = true;
1071 dev->perc_dropped_buffers = ctrl->val;
1074 dev->queue_setup_error = true;
1077 dev->buf_prepare_error = true;
1080 dev->start_streaming_error = true;
1083 dev->req_validate_error = true;
1086 if (vb2_start_streaming_called(&dev->vb_vid_cap_q))
1087 vb2_queue_error(&dev->vb_vid_cap_q);
1088 if (vb2_start_streaming_called(&dev->vb_vbi_cap_q))
1089 vb2_queue_error(&dev->vb_vbi_cap_q);
1090 if (vb2_start_streaming_called(&dev->vb_vid_out_q))
1091 vb2_queue_error(&dev->vb_vid_out_q);
1092 if (vb2_start_streaming_called(&dev->vb_vbi_out_q))
1093 vb2_queue_error(&dev->vb_vbi_out_q);
1094 if (vb2_start_streaming_called(&dev->vb_sdr_cap_q))
1095 vb2_queue_error(&dev->vb_sdr_cap_q);
1098 dev->seq_wrap = ctrl->val;
1101 dev->time_wrap = ctrl->val;
1103 dev->time_wrap_offset = 0;
1114 dev->time_wrap_offset =
1202 struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev, ctrl_hdl_sdtv_cap);
1206 dev->std_signal_mode[dev->input] =
1207 dev->ctrl_std_signal_mode->val;
1208 if (dev->std_signal_mode[dev->input] == SELECTED_STD)
1209 dev->query_std[dev->input] =
1210 vivid_standard[dev->ctrl_standard->val];
1211 v4l2_ctrl_activate(dev->ctrl_standard,
1212 dev->std_signal_mode[dev->input] ==
1214 vivid_update_quality(dev);
1215 vivid_send_source_change(dev, TV);
1216 vivid_send_source_change(dev, SVID);
1261 struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev, ctrl_hdl_radio_rx);
1265 dev->radio_rx_hw_seek_mode = ctrl->val;
1268 dev->radio_rx_hw_seek_prog_lim = ctrl->val;
1271 dev->rds_gen.use_rbds = ctrl->val;
1274 dev->radio_rx_rds_controls = ctrl->val;
1275 dev->radio_rx_caps &= ~V4L2_CAP_READWRITE;
1276 dev->radio_rx_rds_use_alternates = false;
1277 if (!dev->radio_rx_rds_controls) {
1278 dev->radio_rx_caps |= V4L2_CAP_READWRITE;
1279 __v4l2_ctrl_s_ctrl(dev->radio_rx_rds_pty, 0);
1280 __v4l2_ctrl_s_ctrl(dev->radio_rx_rds_ta, 0);
1281 __v4l2_ctrl_s_ctrl(dev->radio_rx_rds_tp, 0);
1282 __v4l2_ctrl_s_ctrl(dev->radio_rx_rds_ms, 0);
1283 __v4l2_ctrl_s_ctrl_string(dev->radio_rx_rds_psname, "");
1284 __v4l2_ctrl_s_ctrl_string(dev->radio_rx_rds_radiotext, "");
1286 v4l2_ctrl_activate(dev->radio_rx_rds_pty, dev->radio_rx_rds_controls);
1287 v4l2_ctrl_activate(dev->radio_rx_rds_psname, dev->radio_rx_rds_controls);
1288 v4l2_ctrl_activate(dev->radio_rx_rds_radiotext, dev->radio_rx_rds_controls);
1289 v4l2_ctrl_activate(dev->radio_rx_rds_ta, dev->radio_rx_rds_controls);
1290 v4l2_ctrl_activate(dev->radio_rx_rds_tp, dev->radio_rx_rds_controls);
1291 v4l2_ctrl_activate(dev->radio_rx_rds_ms, dev->radio_rx_rds_controls);
1292 dev->radio_rx_dev.device_caps = dev->radio_rx_caps;
1295 dev->radio_rx_rds_enabled = ctrl->val;
1359 struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev, ctrl_hdl_radio_tx);
1363 dev->radio_tx_rds_controls = ctrl->val;
1364 dev->radio_tx_caps &= ~V4L2_CAP_READWRITE;
1365 if (!dev->radio_tx_rds_controls)
1366 dev->radio_tx_caps |= V4L2_CAP_READWRITE;
1367 dev->radio_tx_dev.device_caps = dev->radio_tx_caps;
1370 if (dev->radio_rx_rds_controls)
1371 v4l2_ctrl_s_ctrl(dev->radio_rx_rds_pty, ctrl->val);
1374 if (dev->radio_rx_rds_controls)
1375 v4l2_ctrl_s_ctrl_string(dev->radio_rx_rds_psname, ctrl->p_new.p_char);
1378 if (dev->radio_rx_rds_controls)
1379 v4l2_ctrl_s_ctrl_string(dev->radio_rx_rds_radiotext, ctrl->p_new.p_char);
1382 if (dev->radio_rx_rds_controls)
1383 v4l2_ctrl_s_ctrl(dev->radio_rx_rds_ta, ctrl->val);
1386 if (dev->radio_rx_rds_controls)
1387 v4l2_ctrl_s_ctrl(dev->radio_rx_rds_tp, ctrl->val);
1390 if (dev->radio_rx_rds_controls)
1391 v4l2_ctrl_s_ctrl(dev->radio_rx_rds_ms, ctrl->val);
1416 struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev, ctrl_hdl_sdr_cap);
1420 dev->sdr_fm_deviation = ctrl->val;
1445 struct vivid_dev *dev = container_of(ctrl->handler, struct vivid_dev,
1450 dev->meta_pts = ctrl->val;
1453 dev->meta_scr = ctrl->val;
1491 int vivid_create_controls(struct vivid_dev *dev, bool show_ccs_cap,
1495 struct v4l2_ctrl_handler *hdl_user_gen = &dev->ctrl_hdl_user_gen;
1496 struct v4l2_ctrl_handler *hdl_user_vid = &dev->ctrl_hdl_user_vid;
1497 struct v4l2_ctrl_handler *hdl_user_aud = &dev->ctrl_hdl_user_aud;
1498 struct v4l2_ctrl_handler *hdl_streaming = &dev->ctrl_hdl_streaming;
1499 struct v4l2_ctrl_handler *hdl_sdtv_cap = &dev->ctrl_hdl_sdtv_cap;
1500 struct v4l2_ctrl_handler *hdl_loop_cap = &dev->ctrl_hdl_loop_cap;
1501 struct v4l2_ctrl_handler *hdl_fb = &dev->ctrl_hdl_fb;
1502 struct v4l2_ctrl_handler *hdl_vid_cap = &dev->ctrl_hdl_vid_cap;
1503 struct v4l2_ctrl_handler *hdl_vid_out = &dev->ctrl_hdl_vid_out;
1504 struct v4l2_ctrl_handler *hdl_vbi_cap = &dev->ctrl_hdl_vbi_cap;
1505 struct v4l2_ctrl_handler *hdl_vbi_out = &dev->ctrl_hdl_vbi_out;
1506 struct v4l2_ctrl_handler *hdl_radio_rx = &dev->ctrl_hdl_radio_rx;
1507 struct v4l2_ctrl_handler *hdl_radio_tx = &dev->ctrl_hdl_radio_tx;
1508 struct v4l2_ctrl_handler *hdl_sdr_cap = &dev->ctrl_hdl_sdr_cap;
1509 struct v4l2_ctrl_handler *hdl_meta_cap = &dev->ctrl_hdl_meta_cap;
1510 struct v4l2_ctrl_handler *hdl_meta_out = &dev->ctrl_hdl_meta_out;
1511 struct v4l2_ctrl_handler *hdl_tch_cap = &dev->ctrl_hdl_touch_cap;
1538 if (!no_error_inj || dev->has_fb || dev->num_hdmi_outputs)
1559 dev->volume = v4l2_ctrl_new_std(hdl_user_aud, NULL,
1561 dev->mute = v4l2_ctrl_new_std(hdl_user_aud, NULL,
1563 if (dev->has_vid_cap) {
1564 dev->brightness = v4l2_ctrl_new_std(hdl_user_vid, &vivid_user_vid_ctrl_ops,
1567 dev->input_brightness[i] = 128;
1568 dev->contrast = v4l2_ctrl_new_std(hdl_user_vid, &vivid_user_vid_ctrl_ops,
1570 dev->saturation = v4l2_ctrl_new_std(hdl_user_vid, &vivid_user_vid_ctrl_ops,
1572 dev->hue = v4l2_ctrl_new_std(hdl_user_vid, &vivid_user_vid_ctrl_ops,
1578 dev->autogain = v4l2_ctrl_new_std(hdl_user_vid, &vivid_user_vid_ctrl_ops,
1580 dev->gain = v4l2_ctrl_new_std(hdl_user_vid, &vivid_user_vid_ctrl_ops,
1582 dev->alpha = v4l2_ctrl_new_std(hdl_user_vid, &vivid_user_vid_ctrl_ops,
1585 dev->button = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_button, NULL);
1586 dev->int32 = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_int32, NULL);
1587 dev->int64 = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_int64, NULL);
1588 dev->boolean = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_boolean, NULL);
1589 dev->menu = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_menu, NULL);
1590 dev->string = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_string, NULL);
1591 dev->bitmask = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_bitmask, NULL);
1592 dev->int_menu = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_int_menu, NULL);
1598 if (dev->has_vid_cap) {
1609 dev->test_pattern = v4l2_ctrl_new_custom(hdl_vid_cap,
1623 dev->ctrl_has_crop_cap = v4l2_ctrl_new_custom(hdl_vid_cap,
1625 dev->ctrl_has_compose_cap = v4l2_ctrl_new_custom(hdl_vid_cap,
1627 dev->ctrl_has_scaler_cap = v4l2_ctrl_new_custom(hdl_vid_cap,
1632 dev->colorspace = v4l2_ctrl_new_custom(hdl_vid_cap,
1641 if (dev->has_vid_out && show_ccs_out) {
1642 dev->ctrl_has_crop_out = v4l2_ctrl_new_custom(hdl_vid_out,
1644 dev->ctrl_has_compose_out = v4l2_ctrl_new_custom(hdl_vid_out,
1646 dev->ctrl_has_scaler_out = v4l2_ctrl_new_custom(hdl_vid_out,
1671 if (has_sdtv && (dev->has_vid_cap || dev->has_vbi_cap)) {
1672 if (dev->has_vid_cap)
1674 dev->ctrl_std_signal_mode = v4l2_ctrl_new_custom(hdl_sdtv_cap,
1676 dev->ctrl_standard = v4l2_ctrl_new_custom(hdl_sdtv_cap,
1678 if (dev->ctrl_std_signal_mode)
1679 v4l2_ctrl_cluster(2, &dev->ctrl_std_signal_mode);
1680 if (dev->has_raw_vbi_cap)
1684 if (dev->num_hdmi_inputs) {
1685 s64 hdmi_input_mask = GENMASK(dev->num_hdmi_inputs - 1, 0);
1687 dev->ctrl_dv_timings_signal_mode = v4l2_ctrl_new_custom(hdl_vid_cap,
1690 vivid_ctrl_dv_timings.max = dev->query_dv_timings_size - 1;
1692 (const char * const *)dev->query_dv_timings_qmenu;
1693 dev->ctrl_dv_timings = v4l2_ctrl_new_custom(hdl_vid_cap,
1695 if (dev->ctrl_dv_timings_signal_mode)
1696 v4l2_ctrl_cluster(2, &dev->ctrl_dv_timings_signal_mode);
1700 dev->real_rgb_range_cap = v4l2_ctrl_new_custom(hdl_vid_cap,
1702 dev->rgb_range_cap = v4l2_ctrl_new_std_menu(hdl_vid_cap,
1706 dev->ctrl_rx_power_present = v4l2_ctrl_new_std(hdl_vid_cap,
1711 if (dev->num_hdmi_outputs) {
1712 s64 hdmi_output_mask = GENMASK(dev->num_hdmi_outputs - 1, 0);
1718 dev->ctrl_tx_rgb_range = v4l2_ctrl_new_std_menu(hdl_vid_out, NULL,
1721 dev->ctrl_tx_mode = v4l2_ctrl_new_std_menu(hdl_vid_out, NULL,
1724 dev->ctrl_display_present = v4l2_ctrl_new_custom(hdl_vid_out,
1726 dev->ctrl_tx_hotplug = v4l2_ctrl_new_std(hdl_vid_out,
1729 dev->ctrl_tx_rxsense = v4l2_ctrl_new_std(hdl_vid_out,
1732 dev->ctrl_tx_edid_present = v4l2_ctrl_new_std(hdl_vid_out,
1736 if ((dev->has_vid_cap && dev->has_vid_out) ||
1737 (dev->has_vbi_cap && dev->has_vbi_out))
1740 if (dev->has_fb)
1743 if (dev->has_radio_rx) {
1750 dev->radio_rx_rds_pty = v4l2_ctrl_new_std(hdl_radio_rx,
1753 dev->radio_rx_rds_psname = v4l2_ctrl_new_std(hdl_radio_rx,
1756 dev->radio_rx_rds_radiotext = v4l2_ctrl_new_std(hdl_radio_rx,
1759 dev->radio_rx_rds_ta = v4l2_ctrl_new_std(hdl_radio_rx,
1762 dev->radio_rx_rds_tp = v4l2_ctrl_new_std(hdl_radio_rx,
1765 dev->radio_rx_rds_ms = v4l2_ctrl_new_std(hdl_radio_rx,
1769 if (dev->has_radio_tx) {
1772 dev->radio_tx_rds_pi = v4l2_ctrl_new_std(hdl_radio_tx,
1775 dev->radio_tx_rds_pty = v4l2_ctrl_new_std(hdl_radio_tx,
1778 dev->radio_tx_rds_psname = v4l2_ctrl_new_std(hdl_radio_tx,
1781 if (dev->radio_tx_rds_psname)
1782 v4l2_ctrl_s_ctrl_string(dev->radio_tx_rds_psname, "VIVID-TX");
1783 dev->radio_tx_rds_radiotext = v4l2_ctrl_new_std(hdl_radio_tx,
1786 if (dev->radio_tx_rds_radiotext)
1787 v4l2_ctrl_s_ctrl_string(dev->radio_tx_rds_radiotext,
1789 dev->radio_tx_rds_mono_stereo = v4l2_ctrl_new_std(hdl_radio_tx,
1792 dev->radio_tx_rds_art_head = v4l2_ctrl_new_std(hdl_radio_tx,
1795 dev->radio_tx_rds_compressed = v4l2_ctrl_new_std(hdl_radio_tx,
1798 dev->radio_tx_rds_dyn_pty = v4l2_ctrl_new_std(hdl_radio_tx,
1801 dev->radio_tx_rds_ta = v4l2_ctrl_new_std(hdl_radio_tx,
1804 dev->radio_tx_rds_tp = v4l2_ctrl_new_std(hdl_radio_tx,
1807 dev->radio_tx_rds_ms = v4l2_ctrl_new_std(hdl_radio_tx,
1811 if (dev->has_sdr_cap) {
1815 if (dev->has_meta_cap) {
1835 if (dev->autogain)
1836 v4l2_ctrl_auto_cluster(2, &dev->autogain, 0, true);
1838 if (dev->has_vid_cap) {
1848 dev->vid_cap_dev.ctrl_handler = hdl_vid_cap;
1850 if (dev->has_vid_out) {
1857 dev->vid_out_dev.ctrl_handler = hdl_vid_out;
1859 if (dev->has_vbi_cap) {
1866 dev->vbi_cap_dev.ctrl_handler = hdl_vbi_cap;
1868 if (dev->has_vbi_out) {
1873 dev->vbi_out_dev.ctrl_handler = hdl_vbi_out;
1875 if (dev->has_radio_rx) {
1880 dev->radio_rx_dev.ctrl_handler = hdl_radio_rx;
1882 if (dev->has_radio_tx) {
1887 dev->radio_tx_dev.ctrl_handler = hdl_radio_tx;
1889 if (dev->has_sdr_cap) {
1894 dev->sdr_cap_dev.ctrl_handler = hdl_sdr_cap;
1896 if (dev->has_meta_cap) {
1901 dev->meta_cap_dev.ctrl_handler = hdl_meta_cap;
1903 if (dev->has_meta_out) {
1908 dev->meta_out_dev.ctrl_handler = hdl_meta_out;
1910 if (dev->has_touch_cap) {
1915 dev->touch_cap_dev.ctrl_handler = hdl_tch_cap;
1920 void vivid_free_controls(struct vivid_dev *dev)
1922 v4l2_ctrl_handler_free(&dev->ctrl_hdl_vid_cap);
1923 v4l2_ctrl_handler_free(&dev->ctrl_hdl_vid_out);
1924 v4l2_ctrl_handler_free(&dev->ctrl_hdl_vbi_cap);
1925 v4l2_ctrl_handler_free(&dev->ctrl_hdl_vbi_out);
1926 v4l2_ctrl_handler_free(&dev->ctrl_hdl_radio_rx);
1927 v4l2_ctrl_handler_free(&dev->ctrl_hdl_radio_tx);
1928 v4l2_ctrl_handler_free(&dev->ctrl_hdl_sdr_cap);
1929 v4l2_ctrl_handler_free(&dev->ctrl_hdl_user_gen);
1930 v4l2_ctrl_handler_free(&dev->ctrl_hdl_user_vid);
1931 v4l2_ctrl_handler_free(&dev->ctrl_hdl_user_aud);
1932 v4l2_ctrl_handler_free(&dev->ctrl_hdl_streaming);
1933 v4l2_ctrl_handler_free(&dev->ctrl_hdl_sdtv_cap);
1934 v4l2_ctrl_handler_free(&dev->ctrl_hdl_loop_cap);
1935 v4l2_ctrl_handler_free(&dev->ctrl_hdl_fb);
1936 v4l2_ctrl_handler_free(&dev->ctrl_hdl_meta_cap);
1937 v4l2_ctrl_handler_free(&dev->ctrl_hdl_meta_out);
1938 v4l2_ctrl_handler_free(&dev->ctrl_hdl_touch_cap);