aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/video/v4l2-common.c586
1 files changed, 0 insertions, 586 deletions
diff --git a/drivers/media/video/v4l2-common.c b/drivers/media/video/v4l2-common.c
index 1f359252c879..ddfd80c5618b 100644
--- a/drivers/media/video/v4l2-common.c
+++ b/drivers/media/video/v4l2-common.c
@@ -271,11 +271,6 @@ char *v4l2_type_names[] = {
271 [V4L2_BUF_TYPE_SLICED_VBI_OUTPUT] = "slicec-vbi-out", 271 [V4L2_BUF_TYPE_SLICED_VBI_OUTPUT] = "slicec-vbi-out",
272}; 272};
273 273
274static char *v4l2_memory_names[] = {
275 [V4L2_MEMORY_MMAP] = "mmap",
276 [V4L2_MEMORY_USERPTR] = "userptr",
277 [V4L2_MEMORY_OVERLAY] = "overlay",
278};
279 274
280#define prt_names(a,arr) (((a)>=0)&&((a)<ARRAY_SIZE(arr)))?arr[a]:"unknown" 275#define prt_names(a,arr) (((a)>=0)&&((a)<ARRAY_SIZE(arr)))?arr[a]:"unknown"
281 276
@@ -420,14 +415,6 @@ static const char *v4l2_int_ioctls[] = {
420}; 415};
421#define V4L2_INT_IOCTLS ARRAY_SIZE(v4l2_int_ioctls) 416#define V4L2_INT_IOCTLS ARRAY_SIZE(v4l2_int_ioctls)
422 417
423static void v4l_print_pix_fmt (char *s, struct v4l2_pix_format *fmt)
424{
425 printk ("%s: width=%d, height=%d, format=%d, field=%s, "
426 "bytesperline=%d sizeimage=%d, colorspace=%d\n", s,
427 fmt->width,fmt->height,fmt->pixelformat,
428 prt_names(fmt->field,v4l2_field_names),
429 fmt->bytesperline,fmt->sizeimage,fmt->colorspace);
430};
431 418
432/* Common ioctl debug function. This function can be used by 419/* Common ioctl debug function. This function can be used by
433 external ioctl messages as well as internal V4L ioctl */ 420 external ioctl messages as well as internal V4L ioctl */
@@ -467,578 +454,6 @@ void v4l_printk_ioctl(unsigned int cmd)
467 } 454 }
468} 455}
469 456
470/* Common ioctl debug function. This function can be used by
471 external ioctl messages as well as internal V4L ioctl and its
472 arguments */
473void v4l_printk_ioctl_arg(char *s,unsigned int cmd, void *arg)
474{
475 printk(s);
476 printk(": ");
477 v4l_printk_ioctl(cmd);
478 switch (cmd) {
479 case VIDIOC_INT_G_CHIP_IDENT:
480 {
481 enum v4l2_chip_ident *p=arg;
482 printk ("%s: chip ident=%d\n", s, *p);
483 break;
484 }
485 case VIDIOC_G_PRIORITY:
486 case VIDIOC_S_PRIORITY:
487 {
488 enum v4l2_priority *p=arg;
489 printk ("%s: priority=%d\n", s, *p);
490 break;
491 }
492 case VIDIOC_INT_S_TUNER_MODE:
493 {
494 enum v4l2_tuner_type *p=arg;
495 printk ("%s: tuner type=%d\n", s, *p);
496 break;
497 }
498#ifdef CONFIG_VIDEO_V4L1_COMPAT
499 case DECODER_SET_VBI_BYPASS:
500 case DECODER_ENABLE_OUTPUT:
501 case DECODER_GET_STATUS:
502 case DECODER_SET_OUTPUT:
503 case DECODER_SET_INPUT:
504 case DECODER_SET_GPIO:
505 case DECODER_SET_NORM:
506 case VIDIOCCAPTURE:
507 case VIDIOCSYNC:
508 case VIDIOCSWRITEMODE:
509#endif
510 case TUNER_SET_TYPE_ADDR:
511 case TUNER_SET_STANDBY:
512 case TDA9887_SET_CONFIG:
513#ifdef __OLD_VIDIOC_
514 case VIDIOC_OVERLAY_OLD:
515#endif
516 case VIDIOC_STREAMOFF:
517 case VIDIOC_G_OUTPUT:
518 case VIDIOC_S_OUTPUT:
519 case VIDIOC_STREAMON:
520 case VIDIOC_G_INPUT:
521 case VIDIOC_OVERLAY:
522 case VIDIOC_S_INPUT:
523 {
524 int *p=arg;
525 printk ("%s: value=%d\n", s, *p);
526 break;
527 }
528 case VIDIOC_G_AUDIO:
529 case VIDIOC_S_AUDIO:
530 case VIDIOC_ENUMAUDIO:
531#ifdef __OLD_VIDIOC_
532 case VIDIOC_G_AUDIO_OLD:
533#endif
534 {
535 struct v4l2_audio *p=arg;
536
537 printk ("%s: index=%d, name=%s, capability=%d, mode=%d\n",
538 s,p->index, p->name,p->capability, p->mode);
539 break;
540 }
541 case VIDIOC_G_AUDOUT:
542 case VIDIOC_S_AUDOUT:
543 case VIDIOC_ENUMAUDOUT:
544#ifdef __OLD_VIDIOC_
545 case VIDIOC_G_AUDOUT_OLD:
546#endif
547 {
548 struct v4l2_audioout *p=arg;
549 printk ("%s: index=%d, name=%s, capability=%d, mode=%d\n", s,
550 p->index, p->name, p->capability,p->mode);
551 break;
552 }
553 case VIDIOC_QBUF:
554 case VIDIOC_DQBUF:
555 case VIDIOC_QUERYBUF:
556 {
557 struct v4l2_buffer *p=arg;
558 struct v4l2_timecode *tc=&p->timecode;
559 printk ("%s: %02ld:%02d:%02d.%08ld index=%d, type=%s, "
560 "bytesused=%d, flags=0x%08x, "
561 "field=%0d, sequence=%d, memory=%s, offset/userptr=0x%08lx\n",
562 s,
563 (p->timestamp.tv_sec/3600),
564 (int)(p->timestamp.tv_sec/60)%60,
565 (int)(p->timestamp.tv_sec%60),
566 p->timestamp.tv_usec,
567 p->index,
568 prt_names(p->type,v4l2_type_names),
569 p->bytesused,p->flags,
570 p->field,p->sequence,
571 prt_names(p->memory,v4l2_memory_names),
572 p->m.userptr);
573 printk ("%s: timecode= %02d:%02d:%02d type=%d, "
574 "flags=0x%08x, frames=%d, userbits=0x%08x\n",
575 s,tc->hours,tc->minutes,tc->seconds,
576 tc->type, tc->flags, tc->frames, *(__u32 *) tc->userbits);
577 break;
578 }
579 case VIDIOC_QUERYCAP:
580 {
581 struct v4l2_capability *p=arg;
582 printk ("%s: driver=%s, card=%s, bus=%s, version=0x%08x, "
583 "capabilities=0x%08x\n", s,
584 p->driver,p->card,p->bus_info,
585 p->version,
586 p->capabilities);
587 break;
588 }
589 case VIDIOC_G_CTRL:
590 case VIDIOC_S_CTRL:
591#ifdef __OLD_VIDIOC_
592 case VIDIOC_S_CTRL_OLD:
593#endif
594 {
595 struct v4l2_control *p=arg;
596 printk ("%s: id=%d, value=%d\n", s, p->id, p->value);
597 break;
598 }
599 case VIDIOC_G_EXT_CTRLS:
600 case VIDIOC_S_EXT_CTRLS:
601 case VIDIOC_TRY_EXT_CTRLS:
602 {
603 struct v4l2_ext_controls *p = arg;
604 int i;
605
606 printk("%s: ctrl_class=%d, count=%d\n", s, p->ctrl_class, p->count);
607 for (i = 0; i < p->count; i++) {
608 struct v4l2_ext_control *c = &p->controls[i];
609 if (cmd == VIDIOC_G_EXT_CTRLS)
610 printk("%s: id=%d\n", s, c->id);
611 else
612 printk("%s: id=%d, value=%d\n", s, c->id, c->value);
613 }
614 break;
615 }
616 case VIDIOC_G_CROP:
617 case VIDIOC_S_CROP:
618 {
619 struct v4l2_crop *p=arg;
620 /*FIXME: Should also show rect structs */
621 printk ("%s: type=%d\n", s, p->type);
622 break;
623 }
624 case VIDIOC_CROPCAP:
625#ifdef __OLD_VIDIOC_
626 case VIDIOC_CROPCAP_OLD:
627#endif
628 {
629 struct v4l2_cropcap *p=arg;
630 /*FIXME: Should also show rect structs */
631 printk ("%s: type=%d\n", s, p->type);
632 break;
633 }
634 case VIDIOC_INT_DECODE_VBI_LINE:
635 {
636 struct v4l2_decode_vbi_line *p=arg;
637 printk ("%s: is_second_field=%d, ptr=0x%08lx, line=%d, "
638 "type=%d\n", s,
639 p->is_second_field,(unsigned long)p->p,p->line,p->type);
640 break;
641 }
642 case VIDIOC_ENUM_FMT:
643 {
644 struct v4l2_fmtdesc *p=arg;
645 printk ("%s: index=%d, type=%d, flags=%d, description=%s,"
646 " pixelformat=%d\n", s,
647 p->index, p->type, p->flags,p->description,
648 p->pixelformat);
649
650 break;
651 }
652 case VIDIOC_G_FMT:
653 case VIDIOC_S_FMT:
654 case VIDIOC_TRY_FMT:
655 {
656 struct v4l2_format *p=arg;
657 printk ("%s: type=%s\n", s,
658 prt_names(p->type,v4l2_type_names));
659 switch (p->type) {
660 case V4L2_BUF_TYPE_VIDEO_CAPTURE:
661 v4l_print_pix_fmt (s, &p->fmt.pix);
662 break;
663 default:
664 break;
665 }
666 }
667 case VIDIOC_G_FBUF:
668 case VIDIOC_S_FBUF:
669 {
670 struct v4l2_framebuffer *p=arg;
671 printk ("%s: capability=%d, flags=%d, base=0x%08lx\n", s,
672 p->capability,p->flags, (unsigned long)p->base);
673 v4l_print_pix_fmt (s, &p->fmt);
674 break;
675 }
676 case VIDIOC_G_FREQUENCY:
677 case VIDIOC_S_FREQUENCY:
678 {
679 struct v4l2_frequency *p=arg;
680 printk ("%s: tuner=%d, type=%d, frequency=%d\n", s,
681 p->tuner,p->type,p->frequency);
682 break;
683 }
684 case VIDIOC_ENUMINPUT:
685 {
686 struct v4l2_input *p=arg;
687 printk ("%s: index=%d, name=%s, type=%d, audioset=%d, "
688 "tuner=%d, std=%Ld, status=%d\n", s,
689 p->index,p->name,p->type,p->audioset,
690 p->tuner,
691 (unsigned long long)p->std,
692 p->status);
693 break;
694 }
695 case VIDIOC_G_JPEGCOMP:
696 case VIDIOC_S_JPEGCOMP:
697 {
698 struct v4l2_jpegcompression *p=arg;
699 printk ("%s: quality=%d, APPn=%d, APP_len=%d, COM_len=%d,"
700 " jpeg_markers=%d\n", s,
701 p->quality,p->APPn,p->APP_len,
702 p->COM_len,p->jpeg_markers);
703 break;
704 }
705 case VIDIOC_G_MODULATOR:
706 case VIDIOC_S_MODULATOR:
707 {
708 struct v4l2_modulator *p=arg;
709 printk ("%s: index=%d, name=%s, capability=%d, rangelow=%d,"
710 " rangehigh=%d, txsubchans=%d\n", s,
711 p->index, p->name,p->capability,p->rangelow,
712 p->rangehigh,p->txsubchans);
713 break;
714 }
715 case VIDIOC_G_MPEGCOMP:
716 case VIDIOC_S_MPEGCOMP:
717 {
718 struct v4l2_mpeg_compression *p=arg;
719 /*FIXME: Several fields not shown */
720 printk ("%s: ts_pid_pmt=%d, ts_pid_audio=%d, ts_pid_video=%d, "
721 "ts_pid_pcr=%d, ps_size=%d, au_sample_rate=%d, "
722 "au_pesid=%c, vi_frame_rate=%d, vi_frames_per_gop=%d, "
723 "vi_bframes_count=%d, vi_pesid=%c\n", s,
724 p->ts_pid_pmt,p->ts_pid_audio, p->ts_pid_video,
725 p->ts_pid_pcr, p->ps_size, p->au_sample_rate,
726 p->au_pesid, p->vi_frame_rate,
727 p->vi_frames_per_gop, p->vi_bframes_count,
728 p->vi_pesid);
729 break;
730 }
731 case VIDIOC_ENUMOUTPUT:
732 {
733 struct v4l2_output *p=arg;
734 printk ("%s: index=%d, name=%s,type=%d, audioset=%d, "
735 "modulator=%d, std=%Ld\n",
736 s,p->index,p->name,p->type,p->audioset,
737 p->modulator,
738 (unsigned long long)p->std);
739 break;
740 }
741 case VIDIOC_QUERYCTRL:
742 {
743 struct v4l2_queryctrl *p=arg;
744 printk ("%s: id=%d, type=%d, name=%s, min/max=%d/%d,"
745 " step=%d, default=%d, flags=0x%08x\n", s,
746 p->id,p->type,p->name,p->minimum,p->maximum,
747 p->step,p->default_value,p->flags);
748 break;
749 }
750 case VIDIOC_QUERYMENU:
751 {
752 struct v4l2_querymenu *p=arg;
753 printk ("%s: id=%d, index=%d, name=%s\n", s,
754 p->id,p->index,p->name);
755 break;
756 }
757#ifdef CONFIG_VIDEO_ADV_DEBUG
758 case VIDIOC_DBG_G_REGISTER:
759 case VIDIOC_DBG_S_REGISTER:
760 {
761 struct v4l2_register *p=arg;
762 printk ("%s: i2c_id=%d, reg=%llu, val=%u\n", s,
763 p->i2c_id,(unsigned long long)p->reg,p->val);
764
765 break;
766 }
767#endif
768 case VIDIOC_REQBUFS:
769 {
770 struct v4l2_requestbuffers *p=arg;
771 printk ("%s: count=%d, type=%s, memory=%s\n", s,
772 p->count,
773 prt_names(p->type,v4l2_type_names),
774 prt_names(p->memory,v4l2_memory_names));
775 break;
776 }
777 case VIDIOC_INT_S_AUDIO_ROUTING:
778 case VIDIOC_INT_S_VIDEO_ROUTING:
779 case VIDIOC_INT_G_AUDIO_ROUTING:
780 case VIDIOC_INT_G_VIDEO_ROUTING:
781 {
782 struct v4l2_routing *p=arg;
783 printk ("%s: input=0x%x, output=0x%x\n", s, p->input, p->output);
784 break;
785 }
786 case VIDIOC_INT_S_CRYSTAL_FREQ:
787 {
788 struct v4l2_crystal_freq *p=arg;
789 printk ("%s: freq=%u, flags=0x%x\n", s, p->freq, p->flags);
790 break;
791 }
792 case VIDIOC_G_SLICED_VBI_CAP:
793 {
794 struct v4l2_sliced_vbi_cap *p=arg;
795 printk ("%s: service_set=%d\n", s,
796 p->service_set);
797 break;
798 }
799 case VIDIOC_INT_S_VBI_DATA:
800 case VIDIOC_INT_G_VBI_DATA:
801 {
802 struct v4l2_sliced_vbi_data *p=arg;
803 printk ("%s: id=%d, field=%d, line=%d\n", s,
804 p->id, p->field, p->line);
805 break;
806 }
807 case VIDIOC_ENUMSTD:
808 {
809 struct v4l2_standard *p=arg;
810 printk ("%s: index=%d, id=%Ld, name=%s, fps=%d/%d, "
811 "framelines=%d\n", s, p->index,
812 (unsigned long long)p->id, p->name,
813 p->frameperiod.numerator,
814 p->frameperiod.denominator,
815 p->framelines);
816
817 break;
818 }
819 case VIDIOC_G_PARM:
820 case VIDIOC_S_PARM:
821#ifdef __OLD_VIDIOC_
822 case VIDIOC_S_PARM_OLD:
823#endif
824 {
825 struct v4l2_streamparm *p=arg;
826 printk ("%s: type=%d\n", s, p->type);
827
828 break;
829 }
830 case VIDIOC_G_TUNER:
831 case VIDIOC_S_TUNER:
832 {
833 struct v4l2_tuner *p=arg;
834 printk ("%s: index=%d, name=%s, type=%d, capability=%d, "
835 "rangelow=%d, rangehigh=%d, signal=%d, afc=%d, "
836 "rxsubchans=%d, audmode=%d\n", s,
837 p->index, p->name, p->type,
838 p->capability, p->rangelow,p->rangehigh,
839 p->rxsubchans, p->audmode, p->signal,
840 p->afc);
841 break;
842 }
843#ifdef CONFIG_VIDEO_V4L1_COMPAT
844 case VIDIOCGVBIFMT:
845 case VIDIOCSVBIFMT:
846 {
847 struct vbi_format *p=arg;
848 printk ("%s: sampling_rate=%d, samples_per_line=%d, "
849 "sample_format=%d, start=%d/%d, count=%d/%d, flags=%d\n", s,
850 p->sampling_rate,p->samples_per_line,
851 p->sample_format,p->start[0],p->start[1],
852 p->count[0],p->count[1],p->flags);
853 break;
854 }
855 case VIDIOCGAUDIO:
856 case VIDIOCSAUDIO:
857 {
858 struct video_audio *p=arg;
859 printk ("%s: audio=%d, volume=%d, bass=%d, treble=%d, "
860 "flags=%d, name=%s, mode=%d, balance=%d, step=%d\n",
861 s,p->audio,p->volume,p->bass, p->treble,
862 p->flags,p->name,p->mode,p->balance,p->step);
863 break;
864 }
865 case VIDIOCGFBUF:
866 case VIDIOCSFBUF:
867 {
868 struct video_buffer *p=arg;
869 printk ("%s: base=%08lx, height=%d, width=%d, depth=%d, "
870 "bytesperline=%d\n", s,
871 (unsigned long) p->base, p->height, p->width,
872 p->depth,p->bytesperline);
873 break;
874 }
875 case VIDIOCGCAP:
876 {
877 struct video_capability *p=arg;
878 printk ("%s: name=%s, type=%d, channels=%d, audios=%d, "
879 "maxwidth=%d, maxheight=%d, minwidth=%d, minheight=%d\n",
880 s,p->name,p->type,p->channels,p->audios,
881 p->maxwidth,p->maxheight,p->minwidth,
882 p->minheight);
883
884 break;
885 }
886 case VIDIOCGCAPTURE:
887 case VIDIOCSCAPTURE:
888 {
889 struct video_capture *p=arg;
890 printk ("%s: x=%d, y=%d, width=%d, height=%d, decimation=%d,"
891 " flags=%d\n", s,
892 p->x, p->y,p->width, p->height,
893 p->decimation,p->flags);
894 break;
895 }
896 case VIDIOCGCHAN:
897 case VIDIOCSCHAN:
898 {
899 struct video_channel *p=arg;
900 printk ("%s: channel=%d, name=%s, tuners=%d, flags=%d, "
901 "type=%d, norm=%d\n", s,
902 p->channel,p->name,p->tuners,
903 p->flags,p->type,p->norm);
904
905 break;
906 }
907 case VIDIOCSMICROCODE:
908 {
909 struct video_code *p=arg;
910 printk ("%s: loadwhat=%s, datasize=%d\n", s,
911 p->loadwhat,p->datasize);
912 break;
913 }
914 case DECODER_GET_CAPABILITIES:
915 {
916 struct video_decoder_capability *p=arg;
917 printk ("%s: flags=%d, inputs=%d, outputs=%d\n", s,
918 p->flags,p->inputs,p->outputs);
919 break;
920 }
921 case DECODER_INIT:
922 {
923 struct video_decoder_init *p=arg;
924 printk ("%s: len=%c\n", s, p->len);
925 break;
926 }
927 case VIDIOCGPLAYINFO:
928 {
929 struct video_info *p=arg;
930 printk ("%s: frame_count=%d, h_size=%d, v_size=%d, "
931 "smpte_timecode=%d, picture_type=%d, "
932 "temporal_reference=%d, user_data=%s\n", s,
933 p->frame_count, p->h_size,
934 p->v_size, p->smpte_timecode,
935 p->picture_type, p->temporal_reference,
936 p->user_data);
937 break;
938 }
939 case VIDIOCKEY:
940 {
941 struct video_key *p=arg;
942 printk ("%s: key=%s, flags=%d\n", s,
943 p->key, p->flags);
944 break;
945 }
946 case VIDIOCGMBUF:
947 {
948 struct video_mbuf *p=arg;
949 printk ("%s: size=%d, frames=%d, offsets=0x%08lx\n", s,
950 p->size,
951 p->frames,
952 (unsigned long)p->offsets);
953 break;
954 }
955 case VIDIOCMCAPTURE:
956 {
957 struct video_mmap *p=arg;
958 printk ("%s: frame=%d, height=%d, width=%d, format=%d\n", s,
959 p->frame,
960 p->height, p->width,
961 p->format);
962 break;
963 }
964 case VIDIOCGPICT:
965 case VIDIOCSPICT:
966 case DECODER_SET_PICTURE:
967 {
968 struct video_picture *p=arg;
969
970 printk ("%s: brightness=%d, hue=%d, colour=%d, contrast=%d,"
971 " whiteness=%d, depth=%d, palette=%d\n", s,
972 p->brightness, p->hue, p->colour,
973 p->contrast, p->whiteness, p->depth,
974 p->palette);
975 break;
976 }
977 case VIDIOCSPLAYMODE:
978 {
979 struct video_play_mode *p=arg;
980 printk ("%s: mode=%d, p1=%d, p2=%d\n", s,
981 p->mode,p->p1,p->p2);
982 break;
983 }
984 case VIDIOCGTUNER:
985 case VIDIOCSTUNER:
986 {
987 struct video_tuner *p=arg;
988 printk ("%s: tuner=%d, name=%s, rangelow=%ld, rangehigh=%ld, "
989 "flags=%d, mode=%d, signal=%d\n", s,
990 p->tuner, p->name,p->rangelow, p->rangehigh,
991 p->flags,p->mode, p->signal);
992 break;
993 }
994 case VIDIOCGUNIT:
995 {
996 struct video_unit *p=arg;
997 printk ("%s: video=%d, vbi=%d, radio=%d, audio=%d, "
998 "teletext=%d\n", s,
999 p->video,p->vbi,p->radio,p->audio,p->teletext);
1000 break;
1001 }
1002 case VIDIOCGWIN:
1003 case VIDIOCSWIN:
1004 {
1005 struct video_window *p=arg;
1006 printk ("%s: x=%d, y=%d, width=%d, height=%d, chromakey=%d,"
1007 " flags=%d, clipcount=%d\n", s,
1008 p->x, p->y,p->width, p->height,
1009 p->chromakey,p->flags,
1010 p->clipcount);
1011 break;
1012 }
1013 case VIDIOCGFREQ:
1014 case VIDIOCSFREQ:
1015 {
1016 unsigned long *p=arg;
1017 printk ("%s: value=%lu\n", s, *p);
1018 break;
1019 }
1020#endif
1021 case VIDIOC_INT_AUDIO_CLOCK_FREQ:
1022 case VIDIOC_INT_I2S_CLOCK_FREQ:
1023 case VIDIOC_INT_S_STANDBY:
1024 case VIDIOC_INT_RESET:
1025 {
1026 u32 *p=arg;
1027
1028 printk ("%s: value=%d\n", s, *p);
1029 break;
1030 }
1031 case VIDIOC_G_STD:
1032 case VIDIOC_S_STD:
1033 case VIDIOC_QUERYSTD:
1034 {
1035 v4l2_std_id *p=arg;
1036
1037 printk ("%s: value=%Lu\n", s, (unsigned long long)*p);
1038 break;
1039 }
1040 }
1041}
1042 457
1043/* ----------------------------------------------------------------- */ 458/* ----------------------------------------------------------------- */
1044 459
@@ -1547,7 +962,6 @@ EXPORT_SYMBOL(v4l2_prio_check);
1547EXPORT_SYMBOL(v4l2_field_names); 962EXPORT_SYMBOL(v4l2_field_names);
1548EXPORT_SYMBOL(v4l2_type_names); 963EXPORT_SYMBOL(v4l2_type_names);
1549EXPORT_SYMBOL(v4l_printk_ioctl); 964EXPORT_SYMBOL(v4l_printk_ioctl);
1550EXPORT_SYMBOL(v4l_printk_ioctl_arg);
1551 965
1552EXPORT_SYMBOL(v4l2_ctrl_next); 966EXPORT_SYMBOL(v4l2_ctrl_next);
1553EXPORT_SYMBOL(v4l2_ctrl_check); 967EXPORT_SYMBOL(v4l2_ctrl_check);