Lines Matching +full:sd +full:- +full:modulator
1 // SPDX-License-Identifier: GPL-2.0-or-later
20 #include <media/v4l2-common.h>
21 #include <media/v4l2-ioctl.h>
22 #include <media/v4l2-ctrls.h>
23 #include <media/v4l2-fh.h>
24 #include <media/v4l2-event.h>
25 #include <media/v4l2-device.h>
26 #include <media/videobuf2-v4l2.h>
27 #include <media/v4l2-mc.h>
28 #include <media/v4l2-mem2mem.h>
35 memset((u8 *)(p) + offsetof(typeof(*(p)), field) + sizeof((p)->field), \
36 0, sizeof(*(p)) - offsetof(typeof(*(p)), field) - sizeof((p)->field))
38 #define is_valid_ioctl(vfd, cmd) test_bit(_IOC_NR(cmd), (vfd)->valid_ioctls)
47 { V4L2_STD_NTSC_M, "NTSC-M" },
48 { V4L2_STD_NTSC_M_JP, "NTSC-M-JP" },
49 { V4L2_STD_NTSC_M_KR, "NTSC-M-KR" },
50 { V4L2_STD_NTSC_443, "NTSC-443" },
52 { V4L2_STD_PAL_BG, "PAL-BG" },
53 { V4L2_STD_PAL_B, "PAL-B" },
54 { V4L2_STD_PAL_B1, "PAL-B1" },
55 { V4L2_STD_PAL_G, "PAL-G" },
56 { V4L2_STD_PAL_H, "PAL-H" },
57 { V4L2_STD_PAL_I, "PAL-I" },
58 { V4L2_STD_PAL_DK, "PAL-DK" },
59 { V4L2_STD_PAL_D, "PAL-D" },
60 { V4L2_STD_PAL_D1, "PAL-D1" },
61 { V4L2_STD_PAL_K, "PAL-K" },
62 { V4L2_STD_PAL_M, "PAL-M" },
63 { V4L2_STD_PAL_N, "PAL-N" },
64 { V4L2_STD_PAL_Nc, "PAL-Nc" },
65 { V4L2_STD_PAL_60, "PAL-60" },
67 { V4L2_STD_SECAM_B, "SECAM-B" },
68 { V4L2_STD_SECAM_G, "SECAM-G" },
69 { V4L2_STD_SECAM_H, "SECAM-H" },
70 { V4L2_STD_SECAM_DK, "SECAM-DK" },
71 { V4L2_STD_SECAM_D, "SECAM-D" },
72 { V4L2_STD_SECAM_K, "SECAM-K" },
73 { V4L2_STD_SECAM_K1, "SECAM-K1" },
74 { V4L2_STD_SECAM_L, "SECAM-L" },
75 { V4L2_STD_SECAM_LC, "SECAM-Lc" },
103 frameperiod->numerator = 1001; in v4l2_video_std_frame_period()
104 frameperiod->denominator = 30000; in v4l2_video_std_frame_period()
106 frameperiod->numerator = 1; in v4l2_video_std_frame_period()
107 frameperiod->denominator = 25; in v4l2_video_std_frame_period()
117 vs->id = id; in v4l2_video_std_construct()
118 v4l2_video_std_frame_period(id, &vs->frameperiod); in v4l2_video_std_construct()
119 vs->framelines = (id & V4L2_STD_525_60) ? 525 : 625; in v4l2_video_std_construct()
120 strscpy(vs->name, name, sizeof(vs->name)); in v4l2_video_std_construct()
126 * 'id' and 'vs->index' parameters. Returns negative on error. */
130 unsigned int index = vs->index, i, j = 0; in v4l_video_std_enumstd()
133 /* Return -ENODATA if the id for the current input in v4l_video_std_enumstd()
136 return -ENODATA; in v4l_video_std_enumstd()
155 return -EINVAL; in v4l_video_std_enumstd()
161 /* ----------------------------------------------------------------- */
162 /* some arrays for pretty-printing debug messages of enum types */
170 [V4L2_FIELD_SEQ_TB] = "seq-tb",
171 [V4L2_FIELD_SEQ_BT] = "seq-bt",
173 [V4L2_FIELD_INTERLACED_TB] = "interlaced-tb",
174 [V4L2_FIELD_INTERLACED_BT] = "interlaced-bt",
180 [V4L2_BUF_TYPE_VIDEO_CAPTURE] = "vid-cap",
181 [V4L2_BUF_TYPE_VIDEO_OVERLAY] = "vid-overlay",
182 [V4L2_BUF_TYPE_VIDEO_OUTPUT] = "vid-out",
183 [V4L2_BUF_TYPE_VBI_CAPTURE] = "vbi-cap",
184 [V4L2_BUF_TYPE_VBI_OUTPUT] = "vbi-out",
185 [V4L2_BUF_TYPE_SLICED_VBI_CAPTURE] = "sliced-vbi-cap",
186 [V4L2_BUF_TYPE_SLICED_VBI_OUTPUT] = "sliced-vbi-out",
187 [V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY] = "vid-out-overlay",
188 [V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE] = "vid-cap-mplane",
189 [V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE] = "vid-out-mplane",
190 [V4L2_BUF_TYPE_SDR_CAPTURE] = "sdr-cap",
191 [V4L2_BUF_TYPE_SDR_OUTPUT] = "sdr-out",
192 [V4L2_BUF_TYPE_META_CAPTURE] = "meta-cap",
193 [V4L2_BUF_TYPE_META_OUTPUT] = "meta-out",
206 /* ------------------------------------------------------------------ */
214 (int)sizeof(p->driver), p->driver, in v4l_print_querycap()
215 (int)sizeof(p->card), p->card, in v4l_print_querycap()
216 (int)sizeof(p->bus_info), p->bus_info, in v4l_print_querycap()
217 p->version, p->capabilities, p->device_caps); in v4l_print_querycap()
225 p->index, (int)sizeof(p->name), p->name, p->type, p->audioset, in v4l_print_enuminput()
226 p->tuner, (unsigned long long)p->std, p->status, in v4l_print_enuminput()
227 p->capabilities); in v4l_print_enuminput()
234 …pr_cont("index=%u, name=%.*s, type=%u, audioset=0x%x, modulator=%u, std=0x%08Lx, capabilities=0x%x… in v4l_print_enumoutput()
235 p->index, (int)sizeof(p->name), p->name, p->type, p->audioset, in v4l_print_enumoutput()
236 p->modulator, (unsigned long long)p->std, p->capabilities); in v4l_print_enumoutput()
244 pr_cont("index=%u, mode=0x%x\n", p->index, p->mode); in v4l_print_audio()
247 p->index, (int)sizeof(p->name), p->name, in v4l_print_audio()
248 p->capability, p->mode); in v4l_print_audio()
256 pr_cont("index=%u\n", p->index); in v4l_print_audioout()
259 p->index, (int)sizeof(p->name), p->name, in v4l_print_audioout()
260 p->capability, p->mode); in v4l_print_audioout()
268 p->index, prt_names(p->type, v4l2_type_names), in v4l_print_fmtdesc()
269 p->flags, (p->pixelformat & 0xff), in v4l_print_fmtdesc()
270 (p->pixelformat >> 8) & 0xff, in v4l_print_fmtdesc()
271 (p->pixelformat >> 16) & 0xff, in v4l_print_fmtdesc()
272 (p->pixelformat >> 24) & 0xff, in v4l_print_fmtdesc()
273 p->mbus_code, in v4l_print_fmtdesc()
274 (int)sizeof(p->description), p->description); in v4l_print_fmtdesc()
290 pr_cont("type=%s", prt_names(p->type, v4l2_type_names)); in v4l_print_format()
291 switch (p->type) { in v4l_print_format()
294 pix = &p->fmt.pix; in v4l_print_format()
296 pix->width, pix->height, in v4l_print_format()
297 (pix->pixelformat & 0xff), in v4l_print_format()
298 (pix->pixelformat >> 8) & 0xff, in v4l_print_format()
299 (pix->pixelformat >> 16) & 0xff, in v4l_print_format()
300 (pix->pixelformat >> 24) & 0xff, in v4l_print_format()
301 prt_names(pix->field, v4l2_field_names), in v4l_print_format()
302 pix->bytesperline, pix->sizeimage, in v4l_print_format()
303 pix->colorspace, pix->flags, pix->ycbcr_enc, in v4l_print_format()
304 pix->quantization, pix->xfer_func); in v4l_print_format()
308 mp = &p->fmt.pix_mp; in v4l_print_format()
310 mp->width, mp->height, in v4l_print_format()
311 (mp->pixelformat & 0xff), in v4l_print_format()
312 (mp->pixelformat >> 8) & 0xff, in v4l_print_format()
313 (mp->pixelformat >> 16) & 0xff, in v4l_print_format()
314 (mp->pixelformat >> 24) & 0xff, in v4l_print_format()
315 prt_names(mp->field, v4l2_field_names), in v4l_print_format()
316 mp->colorspace, mp->num_planes, mp->flags, in v4l_print_format()
317 mp->ycbcr_enc, mp->quantization, mp->xfer_func); in v4l_print_format()
318 planes = min_t(u32, mp->num_planes, VIDEO_MAX_PLANES); in v4l_print_format()
321 mp->plane_fmt[i].bytesperline, in v4l_print_format()
322 mp->plane_fmt[i].sizeimage); in v4l_print_format()
326 win = &p->fmt.win; in v4l_print_format()
331 win->w.width, win->w.height, win->w.left, win->w.top, in v4l_print_format()
332 prt_names(win->field, v4l2_field_names), in v4l_print_format()
333 win->chromakey, win->clipcount, win->clips, in v4l_print_format()
334 win->bitmap, win->global_alpha); in v4l_print_format()
338 vbi = &p->fmt.vbi; in v4l_print_format()
340 vbi->sampling_rate, vbi->offset, in v4l_print_format()
341 vbi->samples_per_line, in v4l_print_format()
342 (vbi->sample_format & 0xff), in v4l_print_format()
343 (vbi->sample_format >> 8) & 0xff, in v4l_print_format()
344 (vbi->sample_format >> 16) & 0xff, in v4l_print_format()
345 (vbi->sample_format >> 24) & 0xff, in v4l_print_format()
346 vbi->start[0], vbi->start[1], in v4l_print_format()
347 vbi->count[0], vbi->count[1]); in v4l_print_format()
351 sliced = &p->fmt.sliced; in v4l_print_format()
353 sliced->service_set, sliced->io_size); in v4l_print_format()
356 sliced->service_lines[0][i], in v4l_print_format()
357 sliced->service_lines[1][i]); in v4l_print_format()
361 sdr = &p->fmt.sdr; in v4l_print_format()
363 (sdr->pixelformat >> 0) & 0xff, in v4l_print_format()
364 (sdr->pixelformat >> 8) & 0xff, in v4l_print_format()
365 (sdr->pixelformat >> 16) & 0xff, in v4l_print_format()
366 (sdr->pixelformat >> 24) & 0xff); in v4l_print_format()
370 meta = &p->fmt.meta; in v4l_print_format()
372 (meta->dataformat >> 0) & 0xff, in v4l_print_format()
373 (meta->dataformat >> 8) & 0xff, in v4l_print_format()
374 (meta->dataformat >> 16) & 0xff, in v4l_print_format()
375 (meta->dataformat >> 24) & 0xff, in v4l_print_format()
376 meta->buffersize); in v4l_print_format()
386 p->capability, p->flags, p->base, in v4l_print_framebuffer()
387 p->fmt.width, p->fmt.height, in v4l_print_framebuffer()
388 (p->fmt.pixelformat & 0xff), in v4l_print_framebuffer()
389 (p->fmt.pixelformat >> 8) & 0xff, in v4l_print_framebuffer()
390 (p->fmt.pixelformat >> 16) & 0xff, in v4l_print_framebuffer()
391 (p->fmt.pixelformat >> 24) & 0xff, in v4l_print_framebuffer()
392 p->fmt.bytesperline, p->fmt.sizeimage, in v4l_print_framebuffer()
393 p->fmt.colorspace); in v4l_print_framebuffer()
406 pr_cont("index=%u, txsubchans=0x%x\n", p->index, p->txsubchans); in v4l_print_modulator()
409 p->index, (int)sizeof(p->name), p->name, p->capability, in v4l_print_modulator()
410 p->rangelow, p->rangehigh, p->txsubchans); in v4l_print_modulator()
418 pr_cont("index=%u, audmode=%u\n", p->index, p->audmode); in v4l_print_tuner()
421 p->index, (int)sizeof(p->name), p->name, p->type, in v4l_print_tuner()
422 p->capability, p->rangelow, in v4l_print_tuner()
423 p->rangehigh, p->signal, p->afc, in v4l_print_tuner()
424 p->rxsubchans, p->audmode); in v4l_print_tuner()
432 p->tuner, p->type, p->frequency); in v4l_print_frequency()
440 p->index, in v4l_print_standard()
441 (unsigned long long)p->id, (int)sizeof(p->name), p->name, in v4l_print_standard()
442 p->frameperiod.numerator, in v4l_print_standard()
443 p->frameperiod.denominator, in v4l_print_standard()
444 p->framelines); in v4l_print_standard()
457 p->tuner, p->type, p->seek_upward, p->wrap_around, p->spacing, in v4l_print_hw_freq_seek()
458 p->rangelow, p->rangehigh); in v4l_print_hw_freq_seek()
466 p->count, in v4l_print_requestbuffers()
467 prt_names(p->type, v4l2_type_names), in v4l_print_requestbuffers()
468 prt_names(p->memory, v4l2_memory_names)); in v4l_print_requestbuffers()
474 const struct v4l2_timecode *tc = &p->timecode; in v4l_print_buffer()
479 (int)p->timestamp.tv_sec / 3600, in v4l_print_buffer()
480 ((int)p->timestamp.tv_sec / 60) % 60, in v4l_print_buffer()
481 ((int)p->timestamp.tv_sec % 60), in v4l_print_buffer()
482 (long)p->timestamp.tv_usec, in v4l_print_buffer()
483 p->index, in v4l_print_buffer()
484 prt_names(p->type, v4l2_type_names), p->request_fd, in v4l_print_buffer()
485 p->flags, prt_names(p->field, v4l2_field_names), in v4l_print_buffer()
486 p->sequence, prt_names(p->memory, v4l2_memory_names)); in v4l_print_buffer()
488 if (V4L2_TYPE_IS_MULTIPLANAR(p->type) && p->m.planes) { in v4l_print_buffer()
490 for (i = 0; i < p->length; ++i) { in v4l_print_buffer()
491 plane = &p->m.planes[i]; in v4l_print_buffer()
494 i, plane->bytesused, plane->data_offset, in v4l_print_buffer()
495 plane->m.userptr, plane->length); in v4l_print_buffer()
499 p->bytesused, p->m.userptr, p->length); in v4l_print_buffer()
503 tc->hours, tc->minutes, tc->seconds, in v4l_print_buffer()
504 tc->type, tc->flags, tc->frames, *(__u32 *)tc->userbits); in v4l_print_buffer()
512 p->fd, prt_names(p->type, v4l2_type_names), in v4l_print_exportbuffer()
513 p->index, p->plane, p->flags); in v4l_print_exportbuffer()
521 p->index, p->count, in v4l_print_create_buffers()
522 prt_names(p->memory, v4l2_memory_names)); in v4l_print_create_buffers()
523 v4l_print_format(&p->format, write_only); in v4l_print_create_buffers()
530 pr_cont("type=%s", prt_names(p->type, v4l2_type_names)); in v4l_print_streamparm()
532 if (p->type == V4L2_BUF_TYPE_VIDEO_CAPTURE || in v4l_print_streamparm()
533 p->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) { in v4l_print_streamparm()
534 const struct v4l2_captureparm *c = &p->parm.capture; in v4l_print_streamparm()
537 c->capability, c->capturemode, in v4l_print_streamparm()
538 c->timeperframe.numerator, c->timeperframe.denominator, in v4l_print_streamparm()
539 c->extendedmode, c->readbuffers); in v4l_print_streamparm()
540 } else if (p->type == V4L2_BUF_TYPE_VIDEO_OUTPUT || in v4l_print_streamparm()
541 p->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) { in v4l_print_streamparm()
542 const struct v4l2_outputparm *c = &p->parm.output; in v4l_print_streamparm()
545 c->capability, c->outputmode, in v4l_print_streamparm()
546 c->timeperframe.numerator, c->timeperframe.denominator, in v4l_print_streamparm()
547 c->extendedmode, c->writebuffers); in v4l_print_streamparm()
558 p->id, p->type, (int)sizeof(p->name), p->name, in v4l_print_queryctrl()
559 p->minimum, p->maximum, in v4l_print_queryctrl()
560 p->step, p->default_value, p->flags); in v4l_print_queryctrl()
568 p->id, p->type, (int)sizeof(p->name), p->name, in v4l_print_query_ext_ctrl()
569 p->minimum, p->maximum, in v4l_print_query_ext_ctrl()
570 p->step, p->default_value, p->flags, in v4l_print_query_ext_ctrl()
571 p->elem_size, p->elems, p->nr_of_dims, in v4l_print_query_ext_ctrl()
572 p->dims[0], p->dims[1], p->dims[2], p->dims[3]); in v4l_print_query_ext_ctrl()
579 pr_cont("id=0x%x, index=%d\n", p->id, p->index); in v4l_print_querymenu()
585 const char *name = v4l2_ctrl_get_name(p->id); in v4l_print_control()
589 pr_cont("id=0x%x, value=%d\n", p->id, p->value); in v4l_print_control()
598 p->which, p->count, p->error_idx, p->request_fd); in v4l_print_ext_controls()
599 for (i = 0; i < p->count; i++) { in v4l_print_ext_controls()
600 unsigned int id = p->controls[i].id; in v4l_print_ext_controls()
605 if (!p->controls[i].size) in v4l_print_ext_controls()
606 pr_cont(", id/val=0x%x/0x%x", id, p->controls[i].value); in v4l_print_ext_controls()
608 pr_cont(", id/size=0x%x/%u", id, p->controls[i].size); in v4l_print_ext_controls()
618 prt_names(p->type, v4l2_type_names), in v4l_print_cropcap()
619 p->bounds.width, p->bounds.height, in v4l_print_cropcap()
620 p->bounds.left, p->bounds.top, in v4l_print_cropcap()
621 p->defrect.width, p->defrect.height, in v4l_print_cropcap()
622 p->defrect.left, p->defrect.top, in v4l_print_cropcap()
623 p->pixelaspect.numerator, p->pixelaspect.denominator); in v4l_print_cropcap()
631 prt_names(p->type, v4l2_type_names), in v4l_print_crop()
632 p->c.width, p->c.height, in v4l_print_crop()
633 p->c.left, p->c.top); in v4l_print_crop()
641 prt_names(p->type, v4l2_type_names), in v4l_print_selection()
642 p->target, p->flags, in v4l_print_selection()
643 p->r.width, p->r.height, p->r.left, p->r.top); in v4l_print_selection()
651 p->quality, p->APPn, p->APP_len, in v4l_print_jpegcompression()
652 p->COM_len, p->jpeg_markers); in v4l_print_jpegcompression()
660 p->entries, p->entries_cap); in v4l_print_enc_idx()
668 p->cmd, p->flags); in v4l_print_encoder_cmd()
675 pr_cont("cmd=%d, flags=0x%x\n", p->cmd, p->flags); in v4l_print_decoder_cmd()
677 if (p->cmd == V4L2_DEC_CMD_START) in v4l_print_decoder_cmd()
679 p->start.speed, p->start.format); in v4l_print_decoder_cmd()
680 else if (p->cmd == V4L2_DEC_CMD_STOP) in v4l_print_decoder_cmd()
681 pr_info("pts=%llu\n", p->stop.pts); in v4l_print_decoder_cmd()
688 pr_cont("type=%u, ", p->match.type); in v4l_print_dbg_chip_info()
689 if (p->match.type == V4L2_CHIP_MATCH_I2C_DRIVER) in v4l_print_dbg_chip_info()
691 (int)sizeof(p->match.name), p->match.name); in v4l_print_dbg_chip_info()
693 pr_cont("addr=%u, ", p->match.addr); in v4l_print_dbg_chip_info()
694 pr_cont("name=%.*s\n", (int)sizeof(p->name), p->name); in v4l_print_dbg_chip_info()
701 pr_cont("type=%u, ", p->match.type); in v4l_print_dbg_register()
702 if (p->match.type == V4L2_CHIP_MATCH_I2C_DRIVER) in v4l_print_dbg_register()
704 (int)sizeof(p->match.name), p->match.name); in v4l_print_dbg_register()
706 pr_cont("addr=%u, ", p->match.addr); in v4l_print_dbg_register()
708 p->reg, p->val); in v4l_print_dbg_register()
715 switch (p->type) { in v4l_print_dv_timings()
717 …pr_cont("type=bt-656/1120, interlaced=%u, pixelclock=%llu, width=%u, height=%u, polarities=0x%x, h… in v4l_print_dv_timings()
718 p->bt.interlaced, p->bt.pixelclock, in v4l_print_dv_timings()
719 p->bt.width, p->bt.height, in v4l_print_dv_timings()
720 p->bt.polarities, p->bt.hfrontporch, in v4l_print_dv_timings()
721 p->bt.hsync, p->bt.hbackporch, in v4l_print_dv_timings()
722 p->bt.vfrontporch, p->bt.vsync, in v4l_print_dv_timings()
723 p->bt.vbackporch, p->bt.il_vfrontporch, in v4l_print_dv_timings()
724 p->bt.il_vsync, p->bt.il_vbackporch, in v4l_print_dv_timings()
725 p->bt.standards, p->bt.flags); in v4l_print_dv_timings()
728 pr_cont("type=%d\n", p->type); in v4l_print_dv_timings()
737 pr_cont("index=%u, ", p->index); in v4l_print_enum_dv_timings()
738 v4l_print_dv_timings(&p->timings, write_only); in v4l_print_enum_dv_timings()
745 switch (p->type) { in v4l_print_dv_timings_cap()
747 …pr_cont("type=bt-656/1120, width=%u-%u, height=%u-%u, pixelclock=%llu-%llu, standards=0x%x, capabi… in v4l_print_dv_timings_cap()
748 p->bt.min_width, p->bt.max_width, in v4l_print_dv_timings_cap()
749 p->bt.min_height, p->bt.max_height, in v4l_print_dv_timings_cap()
750 p->bt.min_pixelclock, p->bt.max_pixelclock, in v4l_print_dv_timings_cap()
751 p->bt.standards, p->bt.capabilities); in v4l_print_dv_timings_cap()
754 pr_cont("type=%u\n", p->type); in v4l_print_dv_timings_cap()
764 p->index, in v4l_print_frmsizeenum()
765 (p->pixel_format & 0xff), in v4l_print_frmsizeenum()
766 (p->pixel_format >> 8) & 0xff, in v4l_print_frmsizeenum()
767 (p->pixel_format >> 16) & 0xff, in v4l_print_frmsizeenum()
768 (p->pixel_format >> 24) & 0xff, in v4l_print_frmsizeenum()
769 p->type); in v4l_print_frmsizeenum()
770 switch (p->type) { in v4l_print_frmsizeenum()
773 p->discrete.width, p->discrete.height); in v4l_print_frmsizeenum()
777 p->stepwise.min_width, in v4l_print_frmsizeenum()
778 p->stepwise.min_height, in v4l_print_frmsizeenum()
779 p->stepwise.max_width, in v4l_print_frmsizeenum()
780 p->stepwise.max_height, in v4l_print_frmsizeenum()
781 p->stepwise.step_width, in v4l_print_frmsizeenum()
782 p->stepwise.step_height); in v4l_print_frmsizeenum()
796 p->index, in v4l_print_frmivalenum()
797 (p->pixel_format & 0xff), in v4l_print_frmivalenum()
798 (p->pixel_format >> 8) & 0xff, in v4l_print_frmivalenum()
799 (p->pixel_format >> 16) & 0xff, in v4l_print_frmivalenum()
800 (p->pixel_format >> 24) & 0xff, in v4l_print_frmivalenum()
801 p->width, p->height, p->type); in v4l_print_frmivalenum()
802 switch (p->type) { in v4l_print_frmivalenum()
805 p->discrete.numerator, in v4l_print_frmivalenum()
806 p->discrete.denominator); in v4l_print_frmivalenum()
810 p->stepwise.min.numerator, in v4l_print_frmivalenum()
811 p->stepwise.min.denominator, in v4l_print_frmivalenum()
812 p->stepwise.max.numerator, in v4l_print_frmivalenum()
813 p->stepwise.max.denominator, in v4l_print_frmivalenum()
814 p->stepwise.step.numerator, in v4l_print_frmivalenum()
815 p->stepwise.step.denominator); in v4l_print_frmivalenum()
830 p->type, p->pending, p->sequence, p->id, in v4l_print_event()
831 p->timestamp.tv_sec, p->timestamp.tv_nsec); in v4l_print_event()
832 switch (p->type) { in v4l_print_event()
835 prt_names(p->u.vsync.field, v4l2_field_names)); in v4l_print_event()
838 c = &p->u.ctrl; in v4l_print_event()
840 c->changes, c->type); in v4l_print_event()
841 if (c->type == V4L2_CTRL_TYPE_INTEGER64) in v4l_print_event()
842 pr_cont("value64=%lld, ", c->value64); in v4l_print_event()
844 pr_cont("value=%d, ", c->value); in v4l_print_event()
846 c->flags, c->minimum, c->maximum, in v4l_print_event()
847 c->step, c->default_value); in v4l_print_event()
851 p->u.frame_sync.frame_sequence); in v4l_print_event()
861 p->type, p->id, p->flags); in v4l_print_event_subscription()
870 prt_names(p->type, v4l2_type_names), p->service_set); in v4l_print_sliced_vbi_cap()
873 p->service_lines[0][i], in v4l_print_sliced_vbi_cap()
874 p->service_lines[1][i]); in v4l_print_sliced_vbi_cap()
882 p->tuner, p->type, p->index, in v4l_print_freq_band()
883 p->capability, p->rangelow, in v4l_print_freq_band()
884 p->rangehigh, p->modulation); in v4l_print_freq_band()
892 p->pad, p->start_block, p->blocks); in v4l_print_edid()
907 pr_cont("driver-specific ioctl\n"); in v4l_print_default()
915 c->reserved[0] = 0; in check_ext_ctrls()
916 for (i = 0; i < c->count; i++) in check_ext_ctrls()
917 c->controls[i].reserved2[0] = 0; in check_ext_ctrls()
924 if (!allow_priv && c->which == V4L2_CID_PRIVATE_BASE) in check_ext_ctrls()
926 if (!c->which) in check_ext_ctrls()
929 for (i = 0; i < c->count; i++) { in check_ext_ctrls()
930 if (V4L2_CTRL_ID2WHICH(c->controls[i].id) != c->which) { in check_ext_ctrls()
931 c->error_idx = i; in check_ext_ctrls()
948 const struct v4l2_ioctl_ops *ops = vfd->ioctl_ops; in check_fmt()
949 bool is_vid = vfd->vfl_type == VFL_TYPE_VIDEO && in check_fmt()
950 (vfd->device_caps & vid_caps); in check_fmt()
951 bool is_vbi = vfd->vfl_type == VFL_TYPE_VBI; in check_fmt()
952 bool is_sdr = vfd->vfl_type == VFL_TYPE_SDR; in check_fmt()
953 bool is_tch = vfd->vfl_type == VFL_TYPE_TOUCH; in check_fmt()
954 bool is_meta = vfd->vfl_type == VFL_TYPE_VIDEO && in check_fmt()
955 (vfd->device_caps & meta_caps); in check_fmt()
956 bool is_rx = vfd->vfl_dir != VFL_DIR_TX; in check_fmt()
957 bool is_tx = vfd->vfl_dir != VFL_DIR_RX; in check_fmt()
960 return -EINVAL; in check_fmt()
965 (ops->vidioc_g_fmt_vid_cap || ops->vidioc_g_fmt_vid_cap_mplane)) in check_fmt()
969 if ((is_vid || is_tch) && is_rx && ops->vidioc_g_fmt_vid_cap_mplane) in check_fmt()
973 if (is_vid && is_rx && ops->vidioc_g_fmt_vid_overlay) in check_fmt()
978 (ops->vidioc_g_fmt_vid_out || ops->vidioc_g_fmt_vid_out_mplane)) in check_fmt()
982 if (is_vid && is_tx && ops->vidioc_g_fmt_vid_out_mplane) in check_fmt()
986 if (is_vid && is_tx && ops->vidioc_g_fmt_vid_out_overlay) in check_fmt()
990 if (is_vbi && is_rx && ops->vidioc_g_fmt_vbi_cap) in check_fmt()
994 if (is_vbi && is_tx && ops->vidioc_g_fmt_vbi_out) in check_fmt()
998 if (is_vbi && is_rx && ops->vidioc_g_fmt_sliced_vbi_cap) in check_fmt()
1002 if (is_vbi && is_tx && ops->vidioc_g_fmt_sliced_vbi_out) in check_fmt()
1006 if (is_sdr && is_rx && ops->vidioc_g_fmt_sdr_cap) in check_fmt()
1010 if (is_sdr && is_tx && ops->vidioc_g_fmt_sdr_out) in check_fmt()
1014 if (is_meta && is_rx && ops->vidioc_g_fmt_meta_cap) in check_fmt()
1018 if (is_meta && is_tx && ops->vidioc_g_fmt_meta_out) in check_fmt()
1024 return -EINVAL; in check_fmt()
1032 if (fmt->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE || in v4l_sanitize_format()
1033 fmt->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) in v4l_sanitize_format()
1034 fmt->fmt.pix_mp.num_planes = min_t(u32, fmt->fmt.pix_mp.num_planes, in v4l_sanitize_format()
1047 if (fmt->type != V4L2_BUF_TYPE_VIDEO_CAPTURE && in v4l_sanitize_format()
1048 fmt->type != V4L2_BUF_TYPE_VIDEO_OUTPUT) in v4l_sanitize_format()
1051 if (fmt->fmt.pix.priv == V4L2_PIX_FMT_PRIV_MAGIC) in v4l_sanitize_format()
1054 fmt->fmt.pix.priv = V4L2_PIX_FMT_PRIV_MAGIC; in v4l_sanitize_format()
1057 + sizeof(fmt->fmt.pix.priv); in v4l_sanitize_format()
1058 memset(((void *)&fmt->fmt.pix) + offset, 0, in v4l_sanitize_format()
1059 sizeof(fmt->fmt.pix) - offset); in v4l_sanitize_format()
1069 cap->version = LINUX_VERSION_CODE; in v4l_querycap()
1070 cap->device_caps = vfd->device_caps; in v4l_querycap()
1071 cap->capabilities = vfd->device_caps | V4L2_CAP_DEVICE_CAPS; in v4l_querycap()
1073 ret = ops->vidioc_querycap(file, fh, cap); in v4l_querycap()
1079 WARN_ON(cap->device_caps != vfd->device_caps); in v4l_querycap()
1082 * vfd->device_caps | V4L2_CAP_DEVICE_CAPS in v4l_querycap()
1084 WARN_ON((cap->capabilities & in v4l_querycap()
1085 (vfd->device_caps | V4L2_CAP_DEVICE_CAPS)) != in v4l_querycap()
1086 (vfd->device_caps | V4L2_CAP_DEVICE_CAPS)); in v4l_querycap()
1087 cap->capabilities |= V4L2_CAP_EXT_PIX_FORMAT; in v4l_querycap()
1088 cap->device_caps |= V4L2_CAP_EXT_PIX_FORMAT; in v4l_querycap()
1098 if (vfd->device_caps & V4L2_CAP_IO_MC) { in v4l_g_input()
1103 return ops->vidioc_g_input(file, fh, arg); in v4l_g_input()
1111 if (vfd->device_caps & V4L2_CAP_IO_MC) { in v4l_g_output()
1116 return ops->vidioc_g_output(file, fh, arg); in v4l_g_output()
1129 if (vfd->device_caps & V4L2_CAP_IO_MC) in v4l_s_input()
1130 return *(int *)arg ? -EINVAL : 0; in v4l_s_input()
1132 return ops->vidioc_s_input(file, fh, *(unsigned int *)arg); in v4l_s_input()
1140 if (vfd->device_caps & V4L2_CAP_IO_MC) in v4l_s_output()
1141 return *(int *)arg ? -EINVAL : 0; in v4l_s_output()
1143 return ops->vidioc_s_output(file, fh, *(unsigned int *)arg); in v4l_s_output()
1153 *p = v4l2_prio_max(vfd->prio); in v4l_g_priority()
1165 if (!test_bit(V4L2_FL_USES_V4L2_FH, &vfd->flags)) in v4l_s_priority()
1166 return -ENOTTY; in v4l_s_priority()
1167 vfh = file->private_data; in v4l_s_priority()
1168 return v4l2_prio_change(vfd->prio, &vfh->prio, *p); in v4l_s_priority()
1184 p->capabilities |= V4L2_IN_CAP_STD; in v4l_enuminput()
1186 if (vfd->device_caps & V4L2_CAP_IO_MC) { in v4l_enuminput()
1187 if (p->index) in v4l_enuminput()
1188 return -EINVAL; in v4l_enuminput()
1189 strscpy(p->name, vfd->name, sizeof(p->name)); in v4l_enuminput()
1190 p->type = V4L2_INPUT_TYPE_CAMERA; in v4l_enuminput()
1194 return ops->vidioc_enum_input(file, fh, p); in v4l_enuminput()
1210 p->capabilities |= V4L2_OUT_CAP_STD; in v4l_enumoutput()
1212 if (vfd->device_caps & V4L2_CAP_IO_MC) { in v4l_enumoutput()
1213 if (p->index) in v4l_enumoutput()
1214 return -EINVAL; in v4l_enumoutput()
1215 strscpy(p->name, vfd->name, sizeof(p->name)); in v4l_enumoutput()
1216 p->type = V4L2_OUTPUT_TYPE_ANALOG; in v4l_enumoutput()
1220 return ops->vidioc_enum_output(file, fh, p); in v4l_enumoutput()
1225 const unsigned sz = sizeof(fmt->description); in v4l_fill_fmtdesc()
1237 switch (fmt->pixelformat) { in v4l_fill_fmtdesc()
1239 case V4L2_PIX_FMT_RGB332: descr = "8-bit RGB 3-3-2"; break; in v4l_fill_fmtdesc()
1240 case V4L2_PIX_FMT_RGB444: descr = "16-bit A/XRGB 4-4-4-4"; break; in v4l_fill_fmtdesc()
1241 case V4L2_PIX_FMT_ARGB444: descr = "16-bit ARGB 4-4-4-4"; break; in v4l_fill_fmtdesc()
1242 case V4L2_PIX_FMT_XRGB444: descr = "16-bit XRGB 4-4-4-4"; break; in v4l_fill_fmtdesc()
1243 case V4L2_PIX_FMT_RGBA444: descr = "16-bit RGBA 4-4-4-4"; break; in v4l_fill_fmtdesc()
1244 case V4L2_PIX_FMT_RGBX444: descr = "16-bit RGBX 4-4-4-4"; break; in v4l_fill_fmtdesc()
1245 case V4L2_PIX_FMT_ABGR444: descr = "16-bit ABGR 4-4-4-4"; break; in v4l_fill_fmtdesc()
1246 case V4L2_PIX_FMT_XBGR444: descr = "16-bit XBGR 4-4-4-4"; break; in v4l_fill_fmtdesc()
1247 case V4L2_PIX_FMT_BGRA444: descr = "16-bit BGRA 4-4-4-4"; break; in v4l_fill_fmtdesc()
1248 case V4L2_PIX_FMT_BGRX444: descr = "16-bit BGRX 4-4-4-4"; break; in v4l_fill_fmtdesc()
1249 case V4L2_PIX_FMT_RGB555: descr = "16-bit A/XRGB 1-5-5-5"; break; in v4l_fill_fmtdesc()
1250 case V4L2_PIX_FMT_ARGB555: descr = "16-bit ARGB 1-5-5-5"; break; in v4l_fill_fmtdesc()
1251 case V4L2_PIX_FMT_XRGB555: descr = "16-bit XRGB 1-5-5-5"; break; in v4l_fill_fmtdesc()
1252 case V4L2_PIX_FMT_ABGR555: descr = "16-bit ABGR 1-5-5-5"; break; in v4l_fill_fmtdesc()
1253 case V4L2_PIX_FMT_XBGR555: descr = "16-bit XBGR 1-5-5-5"; break; in v4l_fill_fmtdesc()
1254 case V4L2_PIX_FMT_RGBA555: descr = "16-bit RGBA 5-5-5-1"; break; in v4l_fill_fmtdesc()
1255 case V4L2_PIX_FMT_RGBX555: descr = "16-bit RGBX 5-5-5-1"; break; in v4l_fill_fmtdesc()
1256 case V4L2_PIX_FMT_BGRA555: descr = "16-bit BGRA 5-5-5-1"; break; in v4l_fill_fmtdesc()
1257 case V4L2_PIX_FMT_BGRX555: descr = "16-bit BGRX 5-5-5-1"; break; in v4l_fill_fmtdesc()
1258 case V4L2_PIX_FMT_RGB565: descr = "16-bit RGB 5-6-5"; break; in v4l_fill_fmtdesc()
1259 case V4L2_PIX_FMT_RGB555X: descr = "16-bit A/XRGB 1-5-5-5 BE"; break; in v4l_fill_fmtdesc()
1260 case V4L2_PIX_FMT_ARGB555X: descr = "16-bit ARGB 1-5-5-5 BE"; break; in v4l_fill_fmtdesc()
1261 case V4L2_PIX_FMT_XRGB555X: descr = "16-bit XRGB 1-5-5-5 BE"; break; in v4l_fill_fmtdesc()
1262 case V4L2_PIX_FMT_RGB565X: descr = "16-bit RGB 5-6-5 BE"; break; in v4l_fill_fmtdesc()
1263 case V4L2_PIX_FMT_BGR666: descr = "18-bit BGRX 6-6-6-14"; break; in v4l_fill_fmtdesc()
1264 case V4L2_PIX_FMT_BGR24: descr = "24-bit BGR 8-8-8"; break; in v4l_fill_fmtdesc()
1265 case V4L2_PIX_FMT_RGB24: descr = "24-bit RGB 8-8-8"; break; in v4l_fill_fmtdesc()
1266 case V4L2_PIX_FMT_BGR32: descr = "32-bit BGRA/X 8-8-8-8"; break; in v4l_fill_fmtdesc()
1267 case V4L2_PIX_FMT_ABGR32: descr = "32-bit BGRA 8-8-8-8"; break; in v4l_fill_fmtdesc()
1268 case V4L2_PIX_FMT_XBGR32: descr = "32-bit BGRX 8-8-8-8"; break; in v4l_fill_fmtdesc()
1269 case V4L2_PIX_FMT_RGB32: descr = "32-bit A/XRGB 8-8-8-8"; break; in v4l_fill_fmtdesc()
1270 case V4L2_PIX_FMT_ARGB32: descr = "32-bit ARGB 8-8-8-8"; break; in v4l_fill_fmtdesc()
1271 case V4L2_PIX_FMT_XRGB32: descr = "32-bit XRGB 8-8-8-8"; break; in v4l_fill_fmtdesc()
1272 case V4L2_PIX_FMT_BGRA32: descr = "32-bit ABGR 8-8-8-8"; break; in v4l_fill_fmtdesc()
1273 case V4L2_PIX_FMT_BGRX32: descr = "32-bit XBGR 8-8-8-8"; break; in v4l_fill_fmtdesc()
1274 case V4L2_PIX_FMT_RGBA32: descr = "32-bit RGBA 8-8-8-8"; break; in v4l_fill_fmtdesc()
1275 case V4L2_PIX_FMT_RGBX32: descr = "32-bit RGBX 8-8-8-8"; break; in v4l_fill_fmtdesc()
1276 case V4L2_PIX_FMT_GREY: descr = "8-bit Greyscale"; break; in v4l_fill_fmtdesc()
1277 case V4L2_PIX_FMT_Y4: descr = "4-bit Greyscale"; break; in v4l_fill_fmtdesc()
1278 case V4L2_PIX_FMT_Y6: descr = "6-bit Greyscale"; break; in v4l_fill_fmtdesc()
1279 case V4L2_PIX_FMT_Y10: descr = "10-bit Greyscale"; break; in v4l_fill_fmtdesc()
1280 case V4L2_PIX_FMT_Y12: descr = "12-bit Greyscale"; break; in v4l_fill_fmtdesc()
1281 case V4L2_PIX_FMT_Y14: descr = "14-bit Greyscale"; break; in v4l_fill_fmtdesc()
1282 case V4L2_PIX_FMT_Y16: descr = "16-bit Greyscale"; break; in v4l_fill_fmtdesc()
1283 case V4L2_PIX_FMT_Y16_BE: descr = "16-bit Greyscale BE"; break; in v4l_fill_fmtdesc()
1284 case V4L2_PIX_FMT_Y10BPACK: descr = "10-bit Greyscale (Packed)"; break; in v4l_fill_fmtdesc()
1285 case V4L2_PIX_FMT_Y10P: descr = "10-bit Greyscale (MIPI Packed)"; break; in v4l_fill_fmtdesc()
1286 case V4L2_PIX_FMT_Y8I: descr = "Interleaved 8-bit Greyscale"; break; in v4l_fill_fmtdesc()
1287 case V4L2_PIX_FMT_Y12I: descr = "Interleaved 12-bit Greyscale"; break; in v4l_fill_fmtdesc()
1288 case V4L2_PIX_FMT_Z16: descr = "16-bit Depth"; break; in v4l_fill_fmtdesc()
1290 case V4L2_PIX_FMT_CNF4: descr = "4-bit Depth Confidence (Packed)"; break; in v4l_fill_fmtdesc()
1291 case V4L2_PIX_FMT_PAL8: descr = "8-bit Palette"; break; in v4l_fill_fmtdesc()
1292 case V4L2_PIX_FMT_UV8: descr = "8-bit Chrominance UV 4-4"; break; in v4l_fill_fmtdesc()
1303 case V4L2_PIX_FMT_YUV444: descr = "16-bit A/XYUV 4-4-4-4"; break; in v4l_fill_fmtdesc()
1304 case V4L2_PIX_FMT_YUV555: descr = "16-bit A/XYUV 1-5-5-5"; break; in v4l_fill_fmtdesc()
1305 case V4L2_PIX_FMT_YUV565: descr = "16-bit YUV 5-6-5"; break; in v4l_fill_fmtdesc()
1306 case V4L2_PIX_FMT_YUV32: descr = "32-bit A/XYUV 8-8-8-8"; break; in v4l_fill_fmtdesc()
1307 case V4L2_PIX_FMT_AYUV32: descr = "32-bit AYUV 8-8-8-8"; break; in v4l_fill_fmtdesc()
1308 case V4L2_PIX_FMT_XYUV32: descr = "32-bit XYUV 8-8-8-8"; break; in v4l_fill_fmtdesc()
1309 case V4L2_PIX_FMT_VUYA32: descr = "32-bit VUYA 8-8-8-8"; break; in v4l_fill_fmtdesc()
1310 case V4L2_PIX_FMT_VUYX32: descr = "32-bit VUYX 8-8-8-8"; break; in v4l_fill_fmtdesc()
1313 case V4L2_PIX_FMT_HI240: descr = "8-bit Dithered RGB (BTTV)"; break; in v4l_fill_fmtdesc()
1322 case V4L2_PIX_FMT_NV12M: descr = "Y/CbCr 4:2:0 (N-C)"; break; in v4l_fill_fmtdesc()
1323 case V4L2_PIX_FMT_NV21M: descr = "Y/CrCb 4:2:0 (N-C)"; break; in v4l_fill_fmtdesc()
1324 case V4L2_PIX_FMT_NV16M: descr = "Y/CbCr 4:2:2 (N-C)"; break; in v4l_fill_fmtdesc()
1325 case V4L2_PIX_FMT_NV61M: descr = "Y/CrCb 4:2:2 (N-C)"; break; in v4l_fill_fmtdesc()
1326 case V4L2_PIX_FMT_NV12MT: descr = "Y/CbCr 4:2:0 (64x32 MB, N-C)"; break; in v4l_fill_fmtdesc()
1327 case V4L2_PIX_FMT_NV12MT_16X16: descr = "Y/CbCr 4:2:0 (16x16 MB, N-C)"; break; in v4l_fill_fmtdesc()
1328 case V4L2_PIX_FMT_YUV420M: descr = "Planar YUV 4:2:0 (N-C)"; break; in v4l_fill_fmtdesc()
1329 case V4L2_PIX_FMT_YVU420M: descr = "Planar YVU 4:2:0 (N-C)"; break; in v4l_fill_fmtdesc()
1330 case V4L2_PIX_FMT_YUV422M: descr = "Planar YUV 4:2:2 (N-C)"; break; in v4l_fill_fmtdesc()
1331 case V4L2_PIX_FMT_YVU422M: descr = "Planar YVU 4:2:2 (N-C)"; break; in v4l_fill_fmtdesc()
1332 case V4L2_PIX_FMT_YUV444M: descr = "Planar YUV 4:4:4 (N-C)"; break; in v4l_fill_fmtdesc()
1333 case V4L2_PIX_FMT_YVU444M: descr = "Planar YVU 4:4:4 (N-C)"; break; in v4l_fill_fmtdesc()
1334 case V4L2_PIX_FMT_SBGGR8: descr = "8-bit Bayer BGBG/GRGR"; break; in v4l_fill_fmtdesc()
1335 case V4L2_PIX_FMT_SGBRG8: descr = "8-bit Bayer GBGB/RGRG"; break; in v4l_fill_fmtdesc()
1336 case V4L2_PIX_FMT_SGRBG8: descr = "8-bit Bayer GRGR/BGBG"; break; in v4l_fill_fmtdesc()
1337 case V4L2_PIX_FMT_SRGGB8: descr = "8-bit Bayer RGRG/GBGB"; break; in v4l_fill_fmtdesc()
1338 case V4L2_PIX_FMT_SBGGR10: descr = "10-bit Bayer BGBG/GRGR"; break; in v4l_fill_fmtdesc()
1339 case V4L2_PIX_FMT_SGBRG10: descr = "10-bit Bayer GBGB/RGRG"; break; in v4l_fill_fmtdesc()
1340 case V4L2_PIX_FMT_SGRBG10: descr = "10-bit Bayer GRGR/BGBG"; break; in v4l_fill_fmtdesc()
1341 case V4L2_PIX_FMT_SRGGB10: descr = "10-bit Bayer RGRG/GBGB"; break; in v4l_fill_fmtdesc()
1342 case V4L2_PIX_FMT_SBGGR10P: descr = "10-bit Bayer BGBG/GRGR Packed"; break; in v4l_fill_fmtdesc()
1343 case V4L2_PIX_FMT_SGBRG10P: descr = "10-bit Bayer GBGB/RGRG Packed"; break; in v4l_fill_fmtdesc()
1344 case V4L2_PIX_FMT_SGRBG10P: descr = "10-bit Bayer GRGR/BGBG Packed"; break; in v4l_fill_fmtdesc()
1345 case V4L2_PIX_FMT_SRGGB10P: descr = "10-bit Bayer RGRG/GBGB Packed"; break; in v4l_fill_fmtdesc()
1346 case V4L2_PIX_FMT_IPU3_SBGGR10: descr = "10-bit bayer BGGR IPU3 Packed"; break; in v4l_fill_fmtdesc()
1347 case V4L2_PIX_FMT_IPU3_SGBRG10: descr = "10-bit bayer GBRG IPU3 Packed"; break; in v4l_fill_fmtdesc()
1348 case V4L2_PIX_FMT_IPU3_SGRBG10: descr = "10-bit bayer GRBG IPU3 Packed"; break; in v4l_fill_fmtdesc()
1349 case V4L2_PIX_FMT_IPU3_SRGGB10: descr = "10-bit bayer RGGB IPU3 Packed"; break; in v4l_fill_fmtdesc()
1350 case V4L2_PIX_FMT_SBGGR10ALAW8: descr = "8-bit Bayer BGBG/GRGR (A-law)"; break; in v4l_fill_fmtdesc()
1351 case V4L2_PIX_FMT_SGBRG10ALAW8: descr = "8-bit Bayer GBGB/RGRG (A-law)"; break; in v4l_fill_fmtdesc()
1352 case V4L2_PIX_FMT_SGRBG10ALAW8: descr = "8-bit Bayer GRGR/BGBG (A-law)"; break; in v4l_fill_fmtdesc()
1353 case V4L2_PIX_FMT_SRGGB10ALAW8: descr = "8-bit Bayer RGRG/GBGB (A-law)"; break; in v4l_fill_fmtdesc()
1354 case V4L2_PIX_FMT_SBGGR10DPCM8: descr = "8-bit Bayer BGBG/GRGR (DPCM)"; break; in v4l_fill_fmtdesc()
1355 case V4L2_PIX_FMT_SGBRG10DPCM8: descr = "8-bit Bayer GBGB/RGRG (DPCM)"; break; in v4l_fill_fmtdesc()
1356 case V4L2_PIX_FMT_SGRBG10DPCM8: descr = "8-bit Bayer GRGR/BGBG (DPCM)"; break; in v4l_fill_fmtdesc()
1357 case V4L2_PIX_FMT_SRGGB10DPCM8: descr = "8-bit Bayer RGRG/GBGB (DPCM)"; break; in v4l_fill_fmtdesc()
1358 case V4L2_PIX_FMT_SBGGR12: descr = "12-bit Bayer BGBG/GRGR"; break; in v4l_fill_fmtdesc()
1359 case V4L2_PIX_FMT_SGBRG12: descr = "12-bit Bayer GBGB/RGRG"; break; in v4l_fill_fmtdesc()
1360 case V4L2_PIX_FMT_SGRBG12: descr = "12-bit Bayer GRGR/BGBG"; break; in v4l_fill_fmtdesc()
1361 case V4L2_PIX_FMT_SRGGB12: descr = "12-bit Bayer RGRG/GBGB"; break; in v4l_fill_fmtdesc()
1362 case V4L2_PIX_FMT_SBGGR12P: descr = "12-bit Bayer BGBG/GRGR Packed"; break; in v4l_fill_fmtdesc()
1363 case V4L2_PIX_FMT_SGBRG12P: descr = "12-bit Bayer GBGB/RGRG Packed"; break; in v4l_fill_fmtdesc()
1364 case V4L2_PIX_FMT_SGRBG12P: descr = "12-bit Bayer GRGR/BGBG Packed"; break; in v4l_fill_fmtdesc()
1365 case V4L2_PIX_FMT_SRGGB12P: descr = "12-bit Bayer RGRG/GBGB Packed"; break; in v4l_fill_fmtdesc()
1366 case V4L2_PIX_FMT_SBGGR14: descr = "14-bit Bayer BGBG/GRGR"; break; in v4l_fill_fmtdesc()
1367 case V4L2_PIX_FMT_SGBRG14: descr = "14-bit Bayer GBGB/RGRG"; break; in v4l_fill_fmtdesc()
1368 case V4L2_PIX_FMT_SGRBG14: descr = "14-bit Bayer GRGR/BGBG"; break; in v4l_fill_fmtdesc()
1369 case V4L2_PIX_FMT_SRGGB14: descr = "14-bit Bayer RGRG/GBGB"; break; in v4l_fill_fmtdesc()
1370 case V4L2_PIX_FMT_SBGGR14P: descr = "14-bit Bayer BGBG/GRGR Packed"; break; in v4l_fill_fmtdesc()
1371 case V4L2_PIX_FMT_SGBRG14P: descr = "14-bit Bayer GBGB/RGRG Packed"; break; in v4l_fill_fmtdesc()
1372 case V4L2_PIX_FMT_SGRBG14P: descr = "14-bit Bayer GRGR/BGBG Packed"; break; in v4l_fill_fmtdesc()
1373 case V4L2_PIX_FMT_SRGGB14P: descr = "14-bit Bayer RGRG/GBGB Packed"; break; in v4l_fill_fmtdesc()
1374 case V4L2_PIX_FMT_SBGGR16: descr = "16-bit Bayer BGBG/GRGR"; break; in v4l_fill_fmtdesc()
1375 case V4L2_PIX_FMT_SGBRG16: descr = "16-bit Bayer GBGB/RGRG"; break; in v4l_fill_fmtdesc()
1376 case V4L2_PIX_FMT_SGRBG16: descr = "16-bit Bayer GRGR/BGBG"; break; in v4l_fill_fmtdesc()
1377 case V4L2_PIX_FMT_SRGGB16: descr = "16-bit Bayer RGRG/GBGB"; break; in v4l_fill_fmtdesc()
1386 case V4L2_PIX_FMT_HSV24: descr = "24-bit HSV 8-8-8"; break; in v4l_fill_fmtdesc()
1387 case V4L2_PIX_FMT_HSV32: descr = "32-bit XHSV 8-8-8-8"; break; in v4l_fill_fmtdesc()
1396 case V4L2_TCH_FMT_DELTA_TD16: descr = "16-bit Signed Deltas"; break; in v4l_fill_fmtdesc()
1397 case V4L2_TCH_FMT_DELTA_TD08: descr = "8-bit Signed Deltas"; break; in v4l_fill_fmtdesc()
1398 case V4L2_TCH_FMT_TU16: descr = "16-bit Unsigned Touch Data"; break; in v4l_fill_fmtdesc()
1399 case V4L2_TCH_FMT_TU08: descr = "8-bit Unsigned Touch Data"; break; in v4l_fill_fmtdesc()
1400 case V4L2_META_FMT_VSP1_HGO: descr = "R-Car VSP1 1-D Histogram"; break; in v4l_fill_fmtdesc()
1401 case V4L2_META_FMT_VSP1_HGT: descr = "R-Car VSP1 2-D Histogram"; break; in v4l_fill_fmtdesc()
1409 switch (fmt->pixelformat) { in v4l_fill_fmtdesc()
1411 case V4L2_PIX_FMT_MJPEG: descr = "Motion-JPEG"; break; in v4l_fill_fmtdesc()
1414 case V4L2_PIX_FMT_MPEG: descr = "MPEG-1/2/4"; break; in v4l_fill_fmtdesc()
1420 case V4L2_PIX_FMT_MPEG1: descr = "MPEG-1 ES"; break; in v4l_fill_fmtdesc()
1421 case V4L2_PIX_FMT_MPEG2: descr = "MPEG-2 ES"; break; in v4l_fill_fmtdesc()
1422 case V4L2_PIX_FMT_MPEG2_SLICE: descr = "MPEG-2 Parsed Slice Data"; break; in v4l_fill_fmtdesc()
1423 case V4L2_PIX_FMT_MPEG4: descr = "MPEG-4 Part 2 ES"; break; in v4l_fill_fmtdesc()
1425 case V4L2_PIX_FMT_VC1_ANNEX_G: descr = "VC-1 (SMPTE 412M Annex G)"; break; in v4l_fill_fmtdesc()
1426 case V4L2_PIX_FMT_VC1_ANNEX_L: descr = "VC-1 (SMPTE 412M Annex L)"; break; in v4l_fill_fmtdesc()
1455 if (fmt->description[0]) in v4l_fill_fmtdesc()
1457 WARN(1, "Unknown pixelformat 0x%08x\n", fmt->pixelformat); in v4l_fill_fmtdesc()
1459 snprintf(fmt->description, sz, "%c%c%c%c%s", in v4l_fill_fmtdesc()
1460 (char)(fmt->pixelformat & 0x7f), in v4l_fill_fmtdesc()
1461 (char)((fmt->pixelformat >> 8) & 0x7f), in v4l_fill_fmtdesc()
1462 (char)((fmt->pixelformat >> 16) & 0x7f), in v4l_fill_fmtdesc()
1463 (char)((fmt->pixelformat >> 24) & 0x7f), in v4l_fill_fmtdesc()
1464 (fmt->pixelformat & (1UL << 31)) ? "-BE" : ""); in v4l_fill_fmtdesc()
1470 WARN_ON(strscpy(fmt->description, descr, sz) < 0); in v4l_fill_fmtdesc()
1471 fmt->flags |= flags; in v4l_fill_fmtdesc()
1479 int ret = check_fmt(file, p->type); in v4l_enum_fmt()
1485 ret = -EINVAL; in v4l_enum_fmt()
1487 if (!(vdev->device_caps & V4L2_CAP_IO_MC)) in v4l_enum_fmt()
1488 p->mbus_code = 0; in v4l_enum_fmt()
1490 mbus_code = p->mbus_code; in v4l_enum_fmt()
1492 p->mbus_code = mbus_code; in v4l_enum_fmt()
1494 switch (p->type) { in v4l_enum_fmt()
1499 if (!!(vdev->device_caps & cap_mask) != in v4l_enum_fmt()
1500 (p->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)) in v4l_enum_fmt()
1503 if (unlikely(!ops->vidioc_enum_fmt_vid_cap)) in v4l_enum_fmt()
1505 ret = ops->vidioc_enum_fmt_vid_cap(file, fh, arg); in v4l_enum_fmt()
1508 if (unlikely(!ops->vidioc_enum_fmt_vid_overlay)) in v4l_enum_fmt()
1510 ret = ops->vidioc_enum_fmt_vid_overlay(file, fh, arg); in v4l_enum_fmt()
1516 if (!!(vdev->device_caps & cap_mask) != in v4l_enum_fmt()
1517 (p->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)) in v4l_enum_fmt()
1520 if (unlikely(!ops->vidioc_enum_fmt_vid_out)) in v4l_enum_fmt()
1522 ret = ops->vidioc_enum_fmt_vid_out(file, fh, arg); in v4l_enum_fmt()
1525 if (unlikely(!ops->vidioc_enum_fmt_sdr_cap)) in v4l_enum_fmt()
1527 ret = ops->vidioc_enum_fmt_sdr_cap(file, fh, arg); in v4l_enum_fmt()
1530 if (unlikely(!ops->vidioc_enum_fmt_sdr_out)) in v4l_enum_fmt()
1532 ret = ops->vidioc_enum_fmt_sdr_out(file, fh, arg); in v4l_enum_fmt()
1535 if (unlikely(!ops->vidioc_enum_fmt_meta_cap)) in v4l_enum_fmt()
1537 ret = ops->vidioc_enum_fmt_meta_cap(file, fh, arg); in v4l_enum_fmt()
1540 if (unlikely(!ops->vidioc_enum_fmt_meta_out)) in v4l_enum_fmt()
1542 ret = ops->vidioc_enum_fmt_meta_out(file, fh, arg); in v4l_enum_fmt()
1557 p->field = V4L2_FIELD_NONE; in v4l_pix_format_touch()
1558 p->colorspace = V4L2_COLORSPACE_RAW; in v4l_pix_format_touch()
1559 p->flags = 0; in v4l_pix_format_touch()
1560 p->ycbcr_enc = 0; in v4l_pix_format_touch()
1561 p->quantization = 0; in v4l_pix_format_touch()
1562 p->xfer_func = 0; in v4l_pix_format_touch()
1570 int ret = check_fmt(file, p->type); in v4l_g_fmt()
1581 switch (p->type) { in v4l_g_fmt()
1584 struct v4l2_clip __user *clips = p->fmt.win.clips; in v4l_g_fmt()
1585 u32 clipcount = p->fmt.win.clipcount; in v4l_g_fmt()
1586 void __user *bitmap = p->fmt.win.bitmap; in v4l_g_fmt()
1588 memset(&p->fmt, 0, sizeof(p->fmt)); in v4l_g_fmt()
1589 p->fmt.win.clips = clips; in v4l_g_fmt()
1590 p->fmt.win.clipcount = clipcount; in v4l_g_fmt()
1591 p->fmt.win.bitmap = bitmap; in v4l_g_fmt()
1595 memset(&p->fmt, 0, sizeof(p->fmt)); in v4l_g_fmt()
1599 switch (p->type) { in v4l_g_fmt()
1601 if (unlikely(!ops->vidioc_g_fmt_vid_cap)) in v4l_g_fmt()
1603 p->fmt.pix.priv = V4L2_PIX_FMT_PRIV_MAGIC; in v4l_g_fmt()
1604 ret = ops->vidioc_g_fmt_vid_cap(file, fh, arg); in v4l_g_fmt()
1606 p->fmt.pix.priv = V4L2_PIX_FMT_PRIV_MAGIC; in v4l_g_fmt()
1607 if (vfd->vfl_type == VFL_TYPE_TOUCH) in v4l_g_fmt()
1608 v4l_pix_format_touch(&p->fmt.pix); in v4l_g_fmt()
1611 return ops->vidioc_g_fmt_vid_cap_mplane(file, fh, arg); in v4l_g_fmt()
1613 return ops->vidioc_g_fmt_vid_overlay(file, fh, arg); in v4l_g_fmt()
1615 return ops->vidioc_g_fmt_vbi_cap(file, fh, arg); in v4l_g_fmt()
1617 return ops->vidioc_g_fmt_sliced_vbi_cap(file, fh, arg); in v4l_g_fmt()
1619 if (unlikely(!ops->vidioc_g_fmt_vid_out)) in v4l_g_fmt()
1621 p->fmt.pix.priv = V4L2_PIX_FMT_PRIV_MAGIC; in v4l_g_fmt()
1622 ret = ops->vidioc_g_fmt_vid_out(file, fh, arg); in v4l_g_fmt()
1624 p->fmt.pix.priv = V4L2_PIX_FMT_PRIV_MAGIC; in v4l_g_fmt()
1627 return ops->vidioc_g_fmt_vid_out_mplane(file, fh, arg); in v4l_g_fmt()
1629 return ops->vidioc_g_fmt_vid_out_overlay(file, fh, arg); in v4l_g_fmt()
1631 return ops->vidioc_g_fmt_vbi_out(file, fh, arg); in v4l_g_fmt()
1633 return ops->vidioc_g_fmt_sliced_vbi_out(file, fh, arg); in v4l_g_fmt()
1635 return ops->vidioc_g_fmt_sdr_cap(file, fh, arg); in v4l_g_fmt()
1637 return ops->vidioc_g_fmt_sdr_out(file, fh, arg); in v4l_g_fmt()
1639 return ops->vidioc_g_fmt_meta_cap(file, fh, arg); in v4l_g_fmt()
1641 return ops->vidioc_g_fmt_meta_out(file, fh, arg); in v4l_g_fmt()
1643 return -EINVAL; in v4l_g_fmt()
1651 int ret = check_fmt(file, p->type); in v4l_s_fmt()
1662 switch (p->type) { in v4l_s_fmt()
1664 if (unlikely(!ops->vidioc_s_fmt_vid_cap)) in v4l_s_fmt()
1667 ret = ops->vidioc_s_fmt_vid_cap(file, fh, arg); in v4l_s_fmt()
1669 p->fmt.pix.priv = V4L2_PIX_FMT_PRIV_MAGIC; in v4l_s_fmt()
1670 if (vfd->vfl_type == VFL_TYPE_TOUCH) in v4l_s_fmt()
1671 v4l_pix_format_touch(&p->fmt.pix); in v4l_s_fmt()
1674 if (unlikely(!ops->vidioc_s_fmt_vid_cap_mplane)) in v4l_s_fmt()
1677 for (i = 0; i < p->fmt.pix_mp.num_planes; i++) in v4l_s_fmt()
1678 CLEAR_AFTER_FIELD(&p->fmt.pix_mp.plane_fmt[i], in v4l_s_fmt()
1680 return ops->vidioc_s_fmt_vid_cap_mplane(file, fh, arg); in v4l_s_fmt()
1682 if (unlikely(!ops->vidioc_s_fmt_vid_overlay)) in v4l_s_fmt()
1685 return ops->vidioc_s_fmt_vid_overlay(file, fh, arg); in v4l_s_fmt()
1687 if (unlikely(!ops->vidioc_s_fmt_vbi_cap)) in v4l_s_fmt()
1690 return ops->vidioc_s_fmt_vbi_cap(file, fh, arg); in v4l_s_fmt()
1692 if (unlikely(!ops->vidioc_s_fmt_sliced_vbi_cap)) in v4l_s_fmt()
1695 return ops->vidioc_s_fmt_sliced_vbi_cap(file, fh, arg); in v4l_s_fmt()
1697 if (unlikely(!ops->vidioc_s_fmt_vid_out)) in v4l_s_fmt()
1700 ret = ops->vidioc_s_fmt_vid_out(file, fh, arg); in v4l_s_fmt()
1702 p->fmt.pix.priv = V4L2_PIX_FMT_PRIV_MAGIC; in v4l_s_fmt()
1705 if (unlikely(!ops->vidioc_s_fmt_vid_out_mplane)) in v4l_s_fmt()
1708 for (i = 0; i < p->fmt.pix_mp.num_planes; i++) in v4l_s_fmt()
1709 CLEAR_AFTER_FIELD(&p->fmt.pix_mp.plane_fmt[i], in v4l_s_fmt()
1711 return ops->vidioc_s_fmt_vid_out_mplane(file, fh, arg); in v4l_s_fmt()
1713 if (unlikely(!ops->vidioc_s_fmt_vid_out_overlay)) in v4l_s_fmt()
1716 return ops->vidioc_s_fmt_vid_out_overlay(file, fh, arg); in v4l_s_fmt()
1718 if (unlikely(!ops->vidioc_s_fmt_vbi_out)) in v4l_s_fmt()
1721 return ops->vidioc_s_fmt_vbi_out(file, fh, arg); in v4l_s_fmt()
1723 if (unlikely(!ops->vidioc_s_fmt_sliced_vbi_out)) in v4l_s_fmt()
1726 return ops->vidioc_s_fmt_sliced_vbi_out(file, fh, arg); in v4l_s_fmt()
1728 if (unlikely(!ops->vidioc_s_fmt_sdr_cap)) in v4l_s_fmt()
1731 return ops->vidioc_s_fmt_sdr_cap(file, fh, arg); in v4l_s_fmt()
1733 if (unlikely(!ops->vidioc_s_fmt_sdr_out)) in v4l_s_fmt()
1736 return ops->vidioc_s_fmt_sdr_out(file, fh, arg); in v4l_s_fmt()
1738 if (unlikely(!ops->vidioc_s_fmt_meta_cap)) in v4l_s_fmt()
1741 return ops->vidioc_s_fmt_meta_cap(file, fh, arg); in v4l_s_fmt()
1743 if (unlikely(!ops->vidioc_s_fmt_meta_out)) in v4l_s_fmt()
1746 return ops->vidioc_s_fmt_meta_out(file, fh, arg); in v4l_s_fmt()
1748 return -EINVAL; in v4l_s_fmt()
1756 int ret = check_fmt(file, p->type); in v4l_try_fmt()
1764 switch (p->type) { in v4l_try_fmt()
1766 if (unlikely(!ops->vidioc_try_fmt_vid_cap)) in v4l_try_fmt()
1769 ret = ops->vidioc_try_fmt_vid_cap(file, fh, arg); in v4l_try_fmt()
1771 p->fmt.pix.priv = V4L2_PIX_FMT_PRIV_MAGIC; in v4l_try_fmt()
1772 if (vfd->vfl_type == VFL_TYPE_TOUCH) in v4l_try_fmt()
1773 v4l_pix_format_touch(&p->fmt.pix); in v4l_try_fmt()
1776 if (unlikely(!ops->vidioc_try_fmt_vid_cap_mplane)) in v4l_try_fmt()
1779 for (i = 0; i < p->fmt.pix_mp.num_planes; i++) in v4l_try_fmt()
1780 CLEAR_AFTER_FIELD(&p->fmt.pix_mp.plane_fmt[i], in v4l_try_fmt()
1782 return ops->vidioc_try_fmt_vid_cap_mplane(file, fh, arg); in v4l_try_fmt()
1784 if (unlikely(!ops->vidioc_try_fmt_vid_overlay)) in v4l_try_fmt()
1787 return ops->vidioc_try_fmt_vid_overlay(file, fh, arg); in v4l_try_fmt()
1789 if (unlikely(!ops->vidioc_try_fmt_vbi_cap)) in v4l_try_fmt()
1792 return ops->vidioc_try_fmt_vbi_cap(file, fh, arg); in v4l_try_fmt()
1794 if (unlikely(!ops->vidioc_try_fmt_sliced_vbi_cap)) in v4l_try_fmt()
1797 return ops->vidioc_try_fmt_sliced_vbi_cap(file, fh, arg); in v4l_try_fmt()
1799 if (unlikely(!ops->vidioc_try_fmt_vid_out)) in v4l_try_fmt()
1802 ret = ops->vidioc_try_fmt_vid_out(file, fh, arg); in v4l_try_fmt()
1804 p->fmt.pix.priv = V4L2_PIX_FMT_PRIV_MAGIC; in v4l_try_fmt()
1807 if (unlikely(!ops->vidioc_try_fmt_vid_out_mplane)) in v4l_try_fmt()
1810 for (i = 0; i < p->fmt.pix_mp.num_planes; i++) in v4l_try_fmt()
1811 CLEAR_AFTER_FIELD(&p->fmt.pix_mp.plane_fmt[i], in v4l_try_fmt()
1813 return ops->vidioc_try_fmt_vid_out_mplane(file, fh, arg); in v4l_try_fmt()
1815 if (unlikely(!ops->vidioc_try_fmt_vid_out_overlay)) in v4l_try_fmt()
1818 return ops->vidioc_try_fmt_vid_out_overlay(file, fh, arg); in v4l_try_fmt()
1820 if (unlikely(!ops->vidioc_try_fmt_vbi_out)) in v4l_try_fmt()
1823 return ops->vidioc_try_fmt_vbi_out(file, fh, arg); in v4l_try_fmt()
1825 if (unlikely(!ops->vidioc_try_fmt_sliced_vbi_out)) in v4l_try_fmt()
1828 return ops->vidioc_try_fmt_sliced_vbi_out(file, fh, arg); in v4l_try_fmt()
1830 if (unlikely(!ops->vidioc_try_fmt_sdr_cap)) in v4l_try_fmt()
1833 return ops->vidioc_try_fmt_sdr_cap(file, fh, arg); in v4l_try_fmt()
1835 if (unlikely(!ops->vidioc_try_fmt_sdr_out)) in v4l_try_fmt()
1838 return ops->vidioc_try_fmt_sdr_out(file, fh, arg); in v4l_try_fmt()
1840 if (unlikely(!ops->vidioc_try_fmt_meta_cap)) in v4l_try_fmt()
1843 return ops->vidioc_try_fmt_meta_cap(file, fh, arg); in v4l_try_fmt()
1845 if (unlikely(!ops->vidioc_try_fmt_meta_out)) in v4l_try_fmt()
1848 return ops->vidioc_try_fmt_meta_out(file, fh, arg); in v4l_try_fmt()
1850 return -EINVAL; in v4l_try_fmt()
1856 return ops->vidioc_streamon(file, fh, *(unsigned int *)arg); in v4l_streamon()
1862 return ops->vidioc_streamoff(file, fh, *(unsigned int *)arg); in v4l_streamoff()
1872 p->type = (vfd->vfl_type == VFL_TYPE_RADIO) ? in v4l_g_tuner()
1874 err = ops->vidioc_g_tuner(file, fh, p); in v4l_g_tuner()
1876 p->capability |= V4L2_TUNER_CAP_FREQ_BANDS; in v4l_g_tuner()
1890 p->type = (vfd->vfl_type == VFL_TYPE_RADIO) ? in v4l_s_tuner()
1892 return ops->vidioc_s_tuner(file, fh, p); in v4l_s_tuner()
1902 if (vfd->vfl_type == VFL_TYPE_RADIO) in v4l_g_modulator()
1903 p->type = V4L2_TUNER_RADIO; in v4l_g_modulator()
1905 err = ops->vidioc_g_modulator(file, fh, p); in v4l_g_modulator()
1907 p->capability |= V4L2_TUNER_CAP_FREQ_BANDS; in v4l_g_modulator()
1917 if (vfd->vfl_type == VFL_TYPE_RADIO) in v4l_s_modulator()
1918 p->type = V4L2_TUNER_RADIO; in v4l_s_modulator()
1920 return ops->vidioc_s_modulator(file, fh, p); in v4l_s_modulator()
1929 if (vfd->vfl_type == VFL_TYPE_SDR) in v4l_g_frequency()
1930 p->type = V4L2_TUNER_SDR; in v4l_g_frequency()
1932 p->type = (vfd->vfl_type == VFL_TYPE_RADIO) ? in v4l_g_frequency()
1934 return ops->vidioc_g_frequency(file, fh, p); in v4l_g_frequency()
1948 if (vfd->vfl_type == VFL_TYPE_SDR) { in v4l_s_frequency()
1949 if (p->type != V4L2_TUNER_SDR && p->type != V4L2_TUNER_RF) in v4l_s_frequency()
1950 return -EINVAL; in v4l_s_frequency()
1952 type = (vfd->vfl_type == VFL_TYPE_RADIO) ? in v4l_s_frequency()
1954 if (type != p->type) in v4l_s_frequency()
1955 return -EINVAL; in v4l_s_frequency()
1957 return ops->vidioc_s_frequency(file, fh, p); in v4l_s_frequency()
1966 return v4l_video_std_enumstd(p, vfd->tvnorms); in v4l_enumstd()
1979 norm = id & vfd->tvnorms; in v4l_s_std()
1980 if (vfd->tvnorms && !norm) /* Check if std is supported */ in v4l_s_std()
1981 return -EINVAL; in v4l_s_std()
1984 return ops->vidioc_s_std(file, fh, norm); in v4l_s_std()
2005 *p = vfd->tvnorms; in v4l_querystd()
2006 return ops->vidioc_querystd(file, fh, arg); in v4l_querystd()
2021 if (vfd->vfl_type == VFL_TYPE_SDR) in v4l_s_hw_freq_seek()
2022 return -EINVAL; in v4l_s_hw_freq_seek()
2024 type = (vfd->vfl_type == VFL_TYPE_RADIO) ? in v4l_s_hw_freq_seek()
2026 if (p->type != type) in v4l_s_hw_freq_seek()
2027 return -EINVAL; in v4l_s_hw_freq_seek()
2028 return ops->vidioc_s_hw_freq_seek(file, fh, p); in v4l_s_hw_freq_seek()
2034 return ops->vidioc_overlay(file, fh, *(unsigned int *)arg); in v4l_overlay()
2041 int ret = check_fmt(file, p->type); in v4l_reqbufs()
2048 return ops->vidioc_reqbufs(file, fh, p); in v4l_reqbufs()
2055 int ret = check_fmt(file, p->type); in v4l_querybuf()
2057 return ret ? ret : ops->vidioc_querybuf(file, fh, p); in v4l_querybuf()
2064 int ret = check_fmt(file, p->type); in v4l_qbuf()
2066 return ret ? ret : ops->vidioc_qbuf(file, fh, p); in v4l_qbuf()
2073 int ret = check_fmt(file, p->type); in v4l_dqbuf()
2075 return ret ? ret : ops->vidioc_dqbuf(file, fh, p); in v4l_dqbuf()
2082 int ret = check_fmt(file, create->format.type); in v4l_create_bufs()
2089 v4l_sanitize_format(&create->format); in v4l_create_bufs()
2091 ret = ops->vidioc_create_bufs(file, fh, create); in v4l_create_bufs()
2093 if (create->format.type == V4L2_BUF_TYPE_VIDEO_CAPTURE || in v4l_create_bufs()
2094 create->format.type == V4L2_BUF_TYPE_VIDEO_OUTPUT) in v4l_create_bufs()
2095 create->format.fmt.pix.priv = V4L2_PIX_FMT_PRIV_MAGIC; in v4l_create_bufs()
2104 int ret = check_fmt(file, b->type); in v4l_prepare_buf()
2106 return ret ? ret : ops->vidioc_prepare_buf(file, fh, b); in v4l_prepare_buf()
2114 int ret = check_fmt(file, p->type); in v4l_g_parm()
2118 if (ops->vidioc_g_parm) in v4l_g_parm()
2119 return ops->vidioc_g_parm(file, fh, p); in v4l_g_parm()
2120 if (p->type != V4L2_BUF_TYPE_VIDEO_CAPTURE && in v4l_g_parm()
2121 p->type != V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) in v4l_g_parm()
2122 return -EINVAL; in v4l_g_parm()
2123 p->parm.capture.readbuffers = 2; in v4l_g_parm()
2124 ret = ops->vidioc_g_std(file, fh, &std); in v4l_g_parm()
2126 v4l2_video_std_frame_period(std, &p->parm.capture.timeperframe); in v4l_g_parm()
2134 int ret = check_fmt(file, p->type); in v4l_s_parm()
2140 if (V4L2_TYPE_IS_OUTPUT(p->type)) { in v4l_s_parm()
2141 memset(p->parm.output.reserved, 0, in v4l_s_parm()
2142 sizeof(p->parm.output.reserved)); in v4l_s_parm()
2143 p->parm.output.extendedmode = 0; in v4l_s_parm()
2144 p->parm.output.outputmode &= V4L2_MODE_HIGHQUALITY; in v4l_s_parm()
2146 memset(p->parm.capture.reserved, 0, in v4l_s_parm()
2147 sizeof(p->parm.capture.reserved)); in v4l_s_parm()
2148 p->parm.capture.extendedmode = 0; in v4l_s_parm()
2149 p->parm.capture.capturemode &= V4L2_MODE_HIGHQUALITY; in v4l_s_parm()
2151 return ops->vidioc_s_parm(file, fh, p); in v4l_s_parm()
2160 test_bit(V4L2_FL_USES_V4L2_FH, &vfd->flags) ? fh : NULL; in v4l_queryctrl()
2162 if (vfh && vfh->ctrl_handler) in v4l_queryctrl()
2163 return v4l2_queryctrl(vfh->ctrl_handler, p); in v4l_queryctrl()
2164 if (vfd->ctrl_handler) in v4l_queryctrl()
2165 return v4l2_queryctrl(vfd->ctrl_handler, p); in v4l_queryctrl()
2166 if (ops->vidioc_queryctrl) in v4l_queryctrl()
2167 return ops->vidioc_queryctrl(file, fh, p); in v4l_queryctrl()
2168 return -ENOTTY; in v4l_queryctrl()
2177 test_bit(V4L2_FL_USES_V4L2_FH, &vfd->flags) ? fh : NULL; in v4l_query_ext_ctrl()
2179 if (vfh && vfh->ctrl_handler) in v4l_query_ext_ctrl()
2180 return v4l2_query_ext_ctrl(vfh->ctrl_handler, p); in v4l_query_ext_ctrl()
2181 if (vfd->ctrl_handler) in v4l_query_ext_ctrl()
2182 return v4l2_query_ext_ctrl(vfd->ctrl_handler, p); in v4l_query_ext_ctrl()
2183 if (ops->vidioc_query_ext_ctrl) in v4l_query_ext_ctrl()
2184 return ops->vidioc_query_ext_ctrl(file, fh, p); in v4l_query_ext_ctrl()
2185 return -ENOTTY; in v4l_query_ext_ctrl()
2194 test_bit(V4L2_FL_USES_V4L2_FH, &vfd->flags) ? fh : NULL; in v4l_querymenu()
2196 if (vfh && vfh->ctrl_handler) in v4l_querymenu()
2197 return v4l2_querymenu(vfh->ctrl_handler, p); in v4l_querymenu()
2198 if (vfd->ctrl_handler) in v4l_querymenu()
2199 return v4l2_querymenu(vfd->ctrl_handler, p); in v4l_querymenu()
2200 if (ops->vidioc_querymenu) in v4l_querymenu()
2201 return ops->vidioc_querymenu(file, fh, p); in v4l_querymenu()
2202 return -ENOTTY; in v4l_querymenu()
2211 test_bit(V4L2_FL_USES_V4L2_FH, &vfd->flags) ? fh : NULL; in v4l_g_ctrl()
2215 if (vfh && vfh->ctrl_handler) in v4l_g_ctrl()
2216 return v4l2_g_ctrl(vfh->ctrl_handler, p); in v4l_g_ctrl()
2217 if (vfd->ctrl_handler) in v4l_g_ctrl()
2218 return v4l2_g_ctrl(vfd->ctrl_handler, p); in v4l_g_ctrl()
2219 if (ops->vidioc_g_ctrl) in v4l_g_ctrl()
2220 return ops->vidioc_g_ctrl(file, fh, p); in v4l_g_ctrl()
2221 if (ops->vidioc_g_ext_ctrls == NULL) in v4l_g_ctrl()
2222 return -ENOTTY; in v4l_g_ctrl()
2224 ctrls.which = V4L2_CTRL_ID2WHICH(p->id); in v4l_g_ctrl()
2227 ctrl.id = p->id; in v4l_g_ctrl()
2228 ctrl.value = p->value; in v4l_g_ctrl()
2230 int ret = ops->vidioc_g_ext_ctrls(file, fh, &ctrls); in v4l_g_ctrl()
2233 p->value = ctrl.value; in v4l_g_ctrl()
2236 return -EINVAL; in v4l_g_ctrl()
2245 test_bit(V4L2_FL_USES_V4L2_FH, &vfd->flags) ? fh : NULL; in v4l_s_ctrl()
2249 if (vfh && vfh->ctrl_handler) in v4l_s_ctrl()
2250 return v4l2_s_ctrl(vfh, vfh->ctrl_handler, p); in v4l_s_ctrl()
2251 if (vfd->ctrl_handler) in v4l_s_ctrl()
2252 return v4l2_s_ctrl(NULL, vfd->ctrl_handler, p); in v4l_s_ctrl()
2253 if (ops->vidioc_s_ctrl) in v4l_s_ctrl()
2254 return ops->vidioc_s_ctrl(file, fh, p); in v4l_s_ctrl()
2255 if (ops->vidioc_s_ext_ctrls == NULL) in v4l_s_ctrl()
2256 return -ENOTTY; in v4l_s_ctrl()
2258 ctrls.which = V4L2_CTRL_ID2WHICH(p->id); in v4l_s_ctrl()
2261 ctrl.id = p->id; in v4l_s_ctrl()
2262 ctrl.value = p->value; in v4l_s_ctrl()
2264 return ops->vidioc_s_ext_ctrls(file, fh, &ctrls); in v4l_s_ctrl()
2265 return -EINVAL; in v4l_s_ctrl()
2274 test_bit(V4L2_FL_USES_V4L2_FH, &vfd->flags) ? fh : NULL; in v4l_g_ext_ctrls()
2276 p->error_idx = p->count; in v4l_g_ext_ctrls()
2277 if (vfh && vfh->ctrl_handler) in v4l_g_ext_ctrls()
2278 return v4l2_g_ext_ctrls(vfh->ctrl_handler, in v4l_g_ext_ctrls()
2279 vfd, vfd->v4l2_dev->mdev, p); in v4l_g_ext_ctrls()
2280 if (vfd->ctrl_handler) in v4l_g_ext_ctrls()
2281 return v4l2_g_ext_ctrls(vfd->ctrl_handler, in v4l_g_ext_ctrls()
2282 vfd, vfd->v4l2_dev->mdev, p); in v4l_g_ext_ctrls()
2283 if (ops->vidioc_g_ext_ctrls == NULL) in v4l_g_ext_ctrls()
2284 return -ENOTTY; in v4l_g_ext_ctrls()
2285 return check_ext_ctrls(p, 0) ? ops->vidioc_g_ext_ctrls(file, fh, p) : in v4l_g_ext_ctrls()
2286 -EINVAL; in v4l_g_ext_ctrls()
2295 test_bit(V4L2_FL_USES_V4L2_FH, &vfd->flags) ? fh : NULL; in v4l_s_ext_ctrls()
2297 p->error_idx = p->count; in v4l_s_ext_ctrls()
2298 if (vfh && vfh->ctrl_handler) in v4l_s_ext_ctrls()
2299 return v4l2_s_ext_ctrls(vfh, vfh->ctrl_handler, in v4l_s_ext_ctrls()
2300 vfd, vfd->v4l2_dev->mdev, p); in v4l_s_ext_ctrls()
2301 if (vfd->ctrl_handler) in v4l_s_ext_ctrls()
2302 return v4l2_s_ext_ctrls(NULL, vfd->ctrl_handler, in v4l_s_ext_ctrls()
2303 vfd, vfd->v4l2_dev->mdev, p); in v4l_s_ext_ctrls()
2304 if (ops->vidioc_s_ext_ctrls == NULL) in v4l_s_ext_ctrls()
2305 return -ENOTTY; in v4l_s_ext_ctrls()
2306 return check_ext_ctrls(p, 0) ? ops->vidioc_s_ext_ctrls(file, fh, p) : in v4l_s_ext_ctrls()
2307 -EINVAL; in v4l_s_ext_ctrls()
2316 test_bit(V4L2_FL_USES_V4L2_FH, &vfd->flags) ? fh : NULL; in v4l_try_ext_ctrls()
2318 p->error_idx = p->count; in v4l_try_ext_ctrls()
2319 if (vfh && vfh->ctrl_handler) in v4l_try_ext_ctrls()
2320 return v4l2_try_ext_ctrls(vfh->ctrl_handler, in v4l_try_ext_ctrls()
2321 vfd, vfd->v4l2_dev->mdev, p); in v4l_try_ext_ctrls()
2322 if (vfd->ctrl_handler) in v4l_try_ext_ctrls()
2323 return v4l2_try_ext_ctrls(vfd->ctrl_handler, in v4l_try_ext_ctrls()
2324 vfd, vfd->v4l2_dev->mdev, p); in v4l_try_ext_ctrls()
2325 if (ops->vidioc_try_ext_ctrls == NULL) in v4l_try_ext_ctrls()
2326 return -ENOTTY; in v4l_try_ext_ctrls()
2327 return check_ext_ctrls(p, 0) ? ops->vidioc_try_ext_ctrls(file, fh, p) : in v4l_try_ext_ctrls()
2328 -EINVAL; in v4l_try_ext_ctrls()
2344 u32 old_type = p->type; in v4l_g_selection()
2347 if (p->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) in v4l_g_selection()
2348 p->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; in v4l_g_selection()
2349 else if (p->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) in v4l_g_selection()
2350 p->type = V4L2_BUF_TYPE_VIDEO_OUTPUT; in v4l_g_selection()
2351 ret = ops->vidioc_g_selection(file, fh, p); in v4l_g_selection()
2352 p->type = old_type; in v4l_g_selection()
2360 u32 old_type = p->type; in v4l_s_selection()
2363 if (p->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) in v4l_s_selection()
2364 p->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; in v4l_s_selection()
2365 else if (p->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) in v4l_s_selection()
2366 p->type = V4L2_BUF_TYPE_VIDEO_OUTPUT; in v4l_s_selection()
2367 ret = ops->vidioc_s_selection(file, fh, p); in v4l_s_selection()
2368 p->type = old_type; in v4l_s_selection()
2378 .type = p->type, in v4l_g_crop()
2385 if (V4L2_TYPE_IS_OUTPUT(p->type)) in v4l_g_crop()
2390 if (test_bit(V4L2_FL_QUIRK_INVERTED_CROP, &vfd->flags)) in v4l_g_crop()
2398 p->c = s.r; in v4l_g_crop()
2408 .type = p->type, in v4l_s_crop()
2409 .r = p->c, in v4l_s_crop()
2415 if (V4L2_TYPE_IS_OUTPUT(p->type)) in v4l_s_crop()
2420 if (test_bit(V4L2_FL_QUIRK_INVERTED_CROP, &vfd->flags)) in v4l_s_crop()
2432 struct v4l2_selection s = { .type = p->type }; in v4l_cropcap()
2436 p->pixelaspect.numerator = 1; in v4l_cropcap()
2437 p->pixelaspect.denominator = 1; in v4l_cropcap()
2448 if (WARN_ON(!ops->vidioc_g_selection)) in v4l_cropcap()
2449 return -ENOTTY; in v4l_cropcap()
2451 if (ops->vidioc_g_pixelaspect) in v4l_cropcap()
2452 ret = ops->vidioc_g_pixelaspect(file, fh, s.type, in v4l_cropcap()
2453 &p->pixelaspect); in v4l_cropcap()
2459 if (ret && ret != -ENOTTY && ret != -ENOIOCTLCMD) in v4l_cropcap()
2465 if (V4L2_TYPE_IS_OUTPUT(p->type)) in v4l_cropcap()
2470 if (test_bit(V4L2_FL_QUIRK_INVERTED_CROP, &vfd->flags)) in v4l_cropcap()
2477 p->bounds = s.r; in v4l_cropcap()
2488 p->defrect = s.r; in v4l_cropcap()
2499 if (vfd->v4l2_dev) in v4l_log_status()
2501 vfd->v4l2_dev->name); in v4l_log_status()
2502 ret = ops->vidioc_log_status(file, fh); in v4l_log_status()
2503 if (vfd->v4l2_dev) in v4l_log_status()
2505 vfd->v4l2_dev->name); in v4l_log_status()
2515 struct v4l2_subdev *sd; in v4l_dbg_g_register() local
2519 return -EPERM; in v4l_dbg_g_register()
2520 if (p->match.type == V4L2_CHIP_MATCH_SUBDEV) { in v4l_dbg_g_register()
2521 if (vfd->v4l2_dev == NULL) in v4l_dbg_g_register()
2522 return -EINVAL; in v4l_dbg_g_register()
2523 v4l2_device_for_each_subdev(sd, vfd->v4l2_dev) in v4l_dbg_g_register()
2524 if (p->match.addr == idx++) in v4l_dbg_g_register()
2525 return v4l2_subdev_call(sd, core, g_register, p); in v4l_dbg_g_register()
2526 return -EINVAL; in v4l_dbg_g_register()
2528 if (ops->vidioc_g_register && p->match.type == V4L2_CHIP_MATCH_BRIDGE && in v4l_dbg_g_register()
2529 (ops->vidioc_g_chip_info || p->match.addr == 0)) in v4l_dbg_g_register()
2530 return ops->vidioc_g_register(file, fh, p); in v4l_dbg_g_register()
2531 return -EINVAL; in v4l_dbg_g_register()
2533 return -ENOTTY; in v4l_dbg_g_register()
2543 struct v4l2_subdev *sd; in v4l_dbg_s_register() local
2547 return -EPERM; in v4l_dbg_s_register()
2548 if (p->match.type == V4L2_CHIP_MATCH_SUBDEV) { in v4l_dbg_s_register()
2549 if (vfd->v4l2_dev == NULL) in v4l_dbg_s_register()
2550 return -EINVAL; in v4l_dbg_s_register()
2551 v4l2_device_for_each_subdev(sd, vfd->v4l2_dev) in v4l_dbg_s_register()
2552 if (p->match.addr == idx++) in v4l_dbg_s_register()
2553 return v4l2_subdev_call(sd, core, s_register, p); in v4l_dbg_s_register()
2554 return -EINVAL; in v4l_dbg_s_register()
2556 if (ops->vidioc_s_register && p->match.type == V4L2_CHIP_MATCH_BRIDGE && in v4l_dbg_s_register()
2557 (ops->vidioc_g_chip_info || p->match.addr == 0)) in v4l_dbg_s_register()
2558 return ops->vidioc_s_register(file, fh, p); in v4l_dbg_s_register()
2559 return -EINVAL; in v4l_dbg_s_register()
2561 return -ENOTTY; in v4l_dbg_s_register()
2571 struct v4l2_subdev *sd; in v4l_dbg_g_chip_info() local
2574 switch (p->match.type) { in v4l_dbg_g_chip_info()
2576 if (ops->vidioc_s_register) in v4l_dbg_g_chip_info()
2577 p->flags |= V4L2_CHIP_FL_WRITABLE; in v4l_dbg_g_chip_info()
2578 if (ops->vidioc_g_register) in v4l_dbg_g_chip_info()
2579 p->flags |= V4L2_CHIP_FL_READABLE; in v4l_dbg_g_chip_info()
2580 strscpy(p->name, vfd->v4l2_dev->name, sizeof(p->name)); in v4l_dbg_g_chip_info()
2581 if (ops->vidioc_g_chip_info) in v4l_dbg_g_chip_info()
2582 return ops->vidioc_g_chip_info(file, fh, arg); in v4l_dbg_g_chip_info()
2583 if (p->match.addr) in v4l_dbg_g_chip_info()
2584 return -EINVAL; in v4l_dbg_g_chip_info()
2588 if (vfd->v4l2_dev == NULL) in v4l_dbg_g_chip_info()
2590 v4l2_device_for_each_subdev(sd, vfd->v4l2_dev) { in v4l_dbg_g_chip_info()
2591 if (p->match.addr != idx++) in v4l_dbg_g_chip_info()
2593 if (sd->ops->core && sd->ops->core->s_register) in v4l_dbg_g_chip_info()
2594 p->flags |= V4L2_CHIP_FL_WRITABLE; in v4l_dbg_g_chip_info()
2595 if (sd->ops->core && sd->ops->core->g_register) in v4l_dbg_g_chip_info()
2596 p->flags |= V4L2_CHIP_FL_READABLE; in v4l_dbg_g_chip_info()
2597 strscpy(p->name, sd->name, sizeof(p->name)); in v4l_dbg_g_chip_info()
2602 return -EINVAL; in v4l_dbg_g_chip_info()
2604 return -ENOTTY; in v4l_dbg_g_chip_info()
2611 return v4l2_event_dequeue(fh, arg, file->f_flags & O_NONBLOCK); in v4l_dqevent()
2617 return ops->vidioc_subscribe_event(fh, arg); in v4l_subscribe_event()
2623 return ops->vidioc_unsubscribe_event(fh, arg); in v4l_unsubscribe_event()
2630 int ret = check_fmt(file, p->type); in v4l_g_sliced_vbi_cap()
2638 return ops->vidioc_g_sliced_vbi_cap(file, fh, p); in v4l_g_sliced_vbi_cap()
2649 if (vfd->vfl_type == VFL_TYPE_SDR) { in v4l_enum_freq_bands()
2650 if (p->type != V4L2_TUNER_SDR && p->type != V4L2_TUNER_RF) in v4l_enum_freq_bands()
2651 return -EINVAL; in v4l_enum_freq_bands()
2652 type = p->type; in v4l_enum_freq_bands()
2654 type = (vfd->vfl_type == VFL_TYPE_RADIO) ? in v4l_enum_freq_bands()
2656 if (type != p->type) in v4l_enum_freq_bands()
2657 return -EINVAL; in v4l_enum_freq_bands()
2659 if (ops->vidioc_enum_freq_bands) { in v4l_enum_freq_bands()
2660 err = ops->vidioc_enum_freq_bands(file, fh, p); in v4l_enum_freq_bands()
2661 if (err != -ENOTTY) in v4l_enum_freq_bands()
2666 .index = p->tuner, in v4l_enum_freq_bands()
2670 if (p->index) in v4l_enum_freq_bands()
2671 return -EINVAL; in v4l_enum_freq_bands()
2672 err = ops->vidioc_g_tuner(file, fh, &t); in v4l_enum_freq_bands()
2675 p->capability = t.capability | V4L2_TUNER_CAP_FREQ_BANDS; in v4l_enum_freq_bands()
2676 p->rangelow = t.rangelow; in v4l_enum_freq_bands()
2677 p->rangehigh = t.rangehigh; in v4l_enum_freq_bands()
2678 p->modulation = (type == V4L2_TUNER_RADIO) ? in v4l_enum_freq_bands()
2684 .index = p->tuner, in v4l_enum_freq_bands()
2688 return -EINVAL; in v4l_enum_freq_bands()
2689 if (p->index) in v4l_enum_freq_bands()
2690 return -EINVAL; in v4l_enum_freq_bands()
2691 err = ops->vidioc_g_modulator(file, fh, &m); in v4l_enum_freq_bands()
2694 p->capability = m.capability | V4L2_TUNER_CAP_FREQ_BANDS; in v4l_enum_freq_bands()
2695 p->rangelow = m.rangelow; in v4l_enum_freq_bands()
2696 p->rangehigh = m.rangehigh; in v4l_enum_freq_bands()
2697 p->modulation = (type == V4L2_TUNER_RADIO) ? in v4l_enum_freq_bands()
2701 return -ENOTTY; in v4l_enum_freq_bands()
2732 return ops->vidioc_ ## _vidioc(file, fh, p); \
2869 return vdev->lock; in v4l2_ioctl_get_lock()
2870 if (vfh && vfh->m2m_ctx && in v4l2_ioctl_get_lock()
2872 if (vfh->m2m_ctx->q_lock) in v4l2_ioctl_get_lock()
2873 return vfh->m2m_ctx->q_lock; in v4l2_ioctl_get_lock()
2875 if (vdev->queue && vdev->queue->lock && in v4l2_ioctl_get_lock()
2877 return vdev->queue->lock; in v4l2_ioctl_get_lock()
2878 return vdev->lock; in v4l2_ioctl_get_lock()
2907 case _IOC_NONE: dir = "--"; break; in v4l_printk_ioctl()
2908 case _IOC_READ: dir = "r-"; break; in v4l_printk_ioctl()
2909 case _IOC_WRITE: dir = "-w"; break; in v4l_printk_ioctl()
2924 const struct v4l2_ioctl_ops *ops = vfd->ioctl_ops; in __video_do_ioctl()
2928 void *fh = file->private_data; in __video_do_ioctl()
2930 int dev_debug = vfd->dev_debug; in __video_do_ioctl()
2931 long ret = -ENOTTY; in __video_do_ioctl()
2939 if (test_bit(V4L2_FL_USES_V4L2_FH, &vfd->flags)) in __video_do_ioctl()
2940 vfh = file->private_data; in __video_do_ioctl()
2948 if (v4l2_device_supports_requests(vfd->v4l2_dev) && in __video_do_ioctl()
2950 req_queue_lock = &vfd->v4l2_dev->mdev->req_queue_mutex; in __video_do_ioctl()
2953 return -ERESTARTSYS; in __video_do_ioctl()
2961 return -ERESTARTSYS; in __video_do_ioctl()
2965 ret = -ENODEV; in __video_do_ioctl()
2972 if (!test_bit(_IOC_NR(cmd), vfd->valid_ioctls) && in __video_do_ioctl()
2973 !((info->flags & INFO_FL_CTRL) && vfh && vfh->ctrl_handler)) in __video_do_ioctl()
2976 if (vfh && (info->flags & INFO_FL_PRIO)) { in __video_do_ioctl()
2977 ret = v4l2_prio_check(vfd->prio, vfh->prio); in __video_do_ioctl()
2990 ret = info->func(ops, file, fh, arg); in __video_do_ioctl()
2991 } else if (!ops->vidioc_default) { in __video_do_ioctl()
2992 ret = -ENOTTY; in __video_do_ioctl()
2994 ret = ops->vidioc_default(file, fh, in __video_do_ioctl()
2995 vfh ? v4l2_prio_check(vfd->prio, vfh->prio) >= 0 : 0, in __video_do_ioctl()
3011 info->debug(arg, write_only); in __video_do_ioctl()
3014 info->debug(arg, write_only); in __video_do_ioctl()
3038 if (V4L2_TYPE_IS_MULTIPLANAR(buf->type) && buf->length > 0) { in check_array_args()
3039 if (buf->length > VIDEO_MAX_PLANES) { in check_array_args()
3040 ret = -EINVAL; in check_array_args()
3043 *user_ptr = (void __user *)buf->m.planes; in check_array_args()
3044 *kernel_ptr = (void **)&buf->m.planes; in check_array_args()
3045 *array_size = sizeof(struct v4l2_plane) * buf->length; in check_array_args()
3055 if (edid->blocks) { in check_array_args()
3056 if (edid->blocks > 256) { in check_array_args()
3057 ret = -EINVAL; in check_array_args()
3060 *user_ptr = (void __user *)edid->edid; in check_array_args()
3061 *kernel_ptr = (void **)&edid->edid; in check_array_args()
3062 *array_size = edid->blocks * 128; in check_array_args()
3073 if (ctrls->count != 0) { in check_array_args()
3074 if (ctrls->count > V4L2_CID_MAX_CTRLS) { in check_array_args()
3075 ret = -EINVAL; in check_array_args()
3078 *user_ptr = (void __user *)ctrls->controls; in check_array_args()
3079 *kernel_ptr = (void **)&ctrls->controls; in check_array_args()
3081 * ctrls->count; in check_array_args()
3117 /* read-only ioctl */ in video_get_user()
3132 return -EFAULT; in video_get_user()
3151 vb->request_fd = 0; in video_get_user()
3162 * non-input field. in video_get_user()
3173 return -EFAULT; in video_get_user()
3177 memset((u8 *)parg + n, 0, _IOC_SIZE(cmd) - n); in video_get_user()
3197 ev32.type = ev->type; in video_put_user()
3198 ev32.pending = ev->pending; in video_put_user()
3199 ev32.sequence = ev->sequence; in video_put_user()
3200 ev32.timestamp.tv_sec = ev->timestamp.tv_sec; in video_put_user()
3201 ev32.timestamp.tv_nsec = ev->timestamp.tv_nsec; in video_put_user()
3202 ev32.id = ev->id; in video_put_user()
3204 memcpy(&ev32.u, &ev->u, sizeof(ev->u)); in video_put_user()
3205 memcpy(&ev32.reserved, &ev->reserved, sizeof(ev->reserved)); in video_put_user()
3208 return -EFAULT; in video_put_user()
3220 vb32.index = vb->index; in video_put_user()
3221 vb32.type = vb->type; in video_put_user()
3222 vb32.bytesused = vb->bytesused; in video_put_user()
3223 vb32.flags = vb->flags; in video_put_user()
3224 vb32.field = vb->field; in video_put_user()
3225 vb32.timestamp.tv_sec = vb->timestamp.tv_sec; in video_put_user()
3226 vb32.timestamp.tv_usec = vb->timestamp.tv_usec; in video_put_user()
3227 vb32.timecode = vb->timecode; in video_put_user()
3228 vb32.sequence = vb->sequence; in video_put_user()
3229 vb32.memory = vb->memory; in video_put_user()
3230 vb32.m.userptr = vb->m.userptr; in video_put_user()
3231 vb32.length = vb->length; in video_put_user()
3232 vb32.request_fd = vb->request_fd; in video_put_user()
3235 return -EFAULT; in video_put_user()
3242 return -EFAULT; in video_put_user()
3256 long err = -EINVAL; in video_usercopy()
3273 return -ENOMEM; in video_usercopy()
3296 err = -ENOMEM; in video_usercopy()
3299 err = -EFAULT; in video_usercopy()
3307 if (err == -ENOTTY || err == -ENOIOCTLCMD) { in video_usercopy()
3308 err = -ENOTTY; in video_usercopy()
3314 trace_v4l2_dqbuf(video_devdata(file)->minor, parg); in video_usercopy()
3316 trace_v4l2_qbuf(video_devdata(file)->minor, parg); in video_usercopy()
3322 err = -EFAULT; in video_usercopy()
3334 err = -EFAULT; in video_usercopy()