This is an automatic generated email to let you know that the following patch were queued at the http://git.linuxtv.org/v4l-utils.git tree:
Subject: v4l-utils: run sync-with-kernel, add ioctl32 tests for v4l2-subdev.h Author: Hans Verkuil <hans.verk...@cisco.com> Date: Wed Jan 15 09:13:08 2014 +0100 The v4l2-subdev ioctls were never tested in compat32 mode. Add the v4l2-subdev.h header to v4l-utils when running sync-with-kernel and fix the gen_ioctl_list.pl script to generate the subdev ioctls. Signed-off-by: Hans Verkuil <hans.verk...@cisco.com> Makefile.am | 2 + contrib/freebsd/include/linux/v4l2-controls.h | 13 + contrib/freebsd/include/linux/videodev2.h | 4 +- contrib/test/gen_ioctl_list.pl | 13 +- contrib/test/ioctl-test.h | 342 +++++++++++++------------ contrib/test/ioctl_32.h | 13 + contrib/test/ioctl_64.h | 13 + include/linux/v4l2-controls.h | 13 + include/linux/v4l2-subdev.h | 180 +++++++++++++ include/linux/videodev2.h | 4 +- utils/keytable/rc_keymaps/dw210x | 32 --- utils/keytable/rc_keymaps/su3000 | 2 +- utils/keytable/rc_keymaps/tbs | 33 --- utils/keytable/rc_keymaps/tevii | 48 ---- utils/keytable/rc_maps.cfg | 5 +- utils/xc3028-firmware/tuner-xc2028-types.h | 2 +- 16 files changed, 434 insertions(+), 285 deletions(-) --- http://git.linuxtv.org/v4l-utils.git?a=commitdiff;h=f352115010846f3dee53af70b08c82c4d4afb804 diff --git a/Makefile.am b/Makefile.am index 65a075c..500d0ae 100644 --- a/Makefile.am +++ b/Makefile.am @@ -15,6 +15,7 @@ sync-with-kernel: @if [ ! -f $(KERNEL_DIR)/include/uapi/linux/videodev2.h -o \ ! -f $(KERNEL_DIR)/include/uapi/linux/v4l2-controls.h -o \ ! -f $(KERNEL_DIR)/include/uapi/linux/v4l2-common.h -o \ + ! -f $(KERNEL_DIR)/include/uapi/linux/v4l2-subdev.h -o \ ! -f $(KERNEL_DIR)/include/uapi/linux/ivtv.h -o \ ! -f $(KERNEL_DIR)/include/uapi/linux/dvb/frontend.h -o \ ! -f $(KERNEL_DIR)/include/uapi/linux/dvb/dmx.h -o \ @@ -26,6 +27,7 @@ sync-with-kernel: cp -a $(KERNEL_DIR)/include/uapi/linux/videodev2.h $(top_srcdir)/include/linux cp -a $(KERNEL_DIR)/include/uapi/linux/v4l2-controls.h $(top_srcdir)/include/linux cp -a $(KERNEL_DIR)/include/uapi/linux/v4l2-common.h $(top_srcdir)/include/linux + cp -a $(KERNEL_DIR)/include/uapi/linux/v4l2-subdev.h $(top_srcdir)/include/linux cp -a $(KERNEL_DIR)/include/uapi/linux/ivtv.h $(top_srcdir)/include/linux cp -a $(KERNEL_DIR)/include/uapi/linux/dvb/frontend.h $(top_srcdir)/include/linux/dvb cp -a $(KERNEL_DIR)/include/uapi/linux/dvb/dmx.h $(top_srcdir)/include/linux/dvb diff --git a/contrib/freebsd/include/linux/v4l2-controls.h b/contrib/freebsd/include/linux/v4l2-controls.h index 083bb5a..2cbe605 100644 --- a/contrib/freebsd/include/linux/v4l2-controls.h +++ b/contrib/freebsd/include/linux/v4l2-controls.h @@ -160,6 +160,14 @@ enum v4l2_colorfx { * of controls. Total of 16 controls is reserved for this driver */ #define V4L2_CID_USER_SI476X_BASE (V4L2_CID_USER_BASE + 0x1040) +/* The base for the TI VPE driver controls. Total of 16 controls is reserved for + * this driver */ +#define V4L2_CID_USER_TI_VPE_BASE (V4L2_CID_USER_BASE + 0x1050) + +/* The base for the saa7134 driver controls. + * We reserve 16 controls for this driver. */ +#define V4L2_CID_USER_SAA7134_BASE (V4L2_CID_USER_BASE + 0x1060) + /* MPEG-class control IDs */ /* The MPEG controls are applicable to all codec controls * and the 'MPEG' part of the define is historical */ @@ -550,6 +558,11 @@ enum v4l2_vp8_golden_frame_sel { V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_PREV = 0, V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_REF_PERIOD = 1, }; +#define V4L2_CID_MPEG_VIDEO_VPX_MIN_QP (V4L2_CID_MPEG_BASE+507) +#define V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (V4L2_CID_MPEG_BASE+508) +#define V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (V4L2_CID_MPEG_BASE+509) +#define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_MPEG_BASE+510) +#define V4L2_CID_MPEG_VIDEO_VPX_PROFILE (V4L2_CID_MPEG_BASE+511) /* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */ #define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000) diff --git a/contrib/freebsd/include/linux/videodev2.h b/contrib/freebsd/include/linux/videodev2.h index 1fcfaeb..5c75762 100644 --- a/contrib/freebsd/include/linux/videodev2.h +++ b/contrib/freebsd/include/linux/videodev2.h @@ -241,8 +241,8 @@ enum v4l2_priority { struct v4l2_rect { int32_t left; int32_t top; - int32_t width; - int32_t height; + uint32_t width; + uint32_t height; }; struct v4l2_fract { diff --git a/contrib/test/gen_ioctl_list.pl b/contrib/test/gen_ioctl_list.pl index d7033fe..c77e4be 100755 --- a/contrib/test/gen_ioctl_list.pl +++ b/contrib/test/gen_ioctl_list.pl @@ -3,6 +3,7 @@ use strict; my %headers = ( "video" => "videodev2.h", + "subdev" => "v4l2-subdev.h", "frontend" => "dvb/frontend.h", "demux" => "dvb/dmx.h", ); @@ -71,11 +72,18 @@ sub print_ioc() printf "/* This file is auto-generated by make sync-with-kernel */\n"; foreach my $h (sort keys %headers) { + my $line; + printf "#include \"linux/%s\"\n", $headers{$h}; open IN, "../../include/linux/" . $headers{$h}; while (<IN>) { - if (m/\#define\s+([A-Z][A-Z0-9_]+)\s+\_IO.+\(.*\,\s*([^\)]+)\)/) { + $line .= $_; + if (/\\\s*$/) { + $line =~ s/\\\s*$//; + next; + } + if ($line =~ m/\#define\s+([A-Z][A-Z0-9_]+)\s+\_IO.+\(.*\,\s*([^\)]+)\)/) { $structs{$2} = 1; $ioc{$1} = "$h: $2"; if ($size_ioc < length($1)) { @@ -85,12 +93,13 @@ foreach my $h (sort keys %headers) { $size_struct = length($2); } } - if (m/\#define\s+([A-Z][A-Z0-9_]+)\s+\_IO\(.*\)/) { + if ($line =~ m/\#define\s+([A-Z][A-Z0-9_]+)\s+\_IO\(.*\)/) { $ioc{$1} = "$h: void"; if ($size_ioc < length($1)) { $size_ioc = length($1); } } + $line = ""; } $size_ioc = int((9 + $size_ioc + 7) / 8) * 8; $size_struct = int(($size_struct + 7) / 8) * 8; diff --git a/contrib/test/ioctl-test.h b/contrib/test/ioctl-test.h index ad496fe..7502fa3 100644 --- a/contrib/test/ioctl-test.h +++ b/contrib/test/ioctl-test.h @@ -1,6 +1,7 @@ /* This file is auto-generated by make sync-with-kernel */ #include "linux/dvb/dmx.h" #include "linux/dvb/frontend.h" +#include "linux/v4l2-subdev.h" #include "linux/videodev2.h" #include "ioctl_32.h" #include "ioctl_64.h" @@ -13,55 +14,63 @@ union v4l_parms { enum v4l2_priority prio; /* ioctl structs */ - struct dmx_pes_filter_params p_dmx_pes_filter_params; - struct dmx_sct_filter_params p_dmx_sct_filter_params; - struct dmx_stc p_dmx_stc; - struct dtv_properties p_dtv_properties; - struct dvb_diseqc_master_cmd p_dvb_diseqc_master_cmd; - struct dvb_diseqc_slave_reply p_dvb_diseqc_slave_reply; - struct dvb_frontend_event p_dvb_frontend_event; - struct dvb_frontend_info p_dvb_frontend_info; - struct dvb_frontend_parameters p_dvb_frontend_parameters; - struct v4l2_audio p_v4l2_audio; - struct v4l2_audioout p_v4l2_audioout; - struct v4l2_buffer p_v4l2_buffer; - struct v4l2_capability p_v4l2_capability; - struct v4l2_control p_v4l2_control; - struct v4l2_create_buffers p_v4l2_create_buffers; - struct v4l2_crop p_v4l2_crop; - struct v4l2_cropcap p_v4l2_cropcap; - struct v4l2_dbg_chip_info p_v4l2_dbg_chip_info; - struct v4l2_dbg_register p_v4l2_dbg_register; - struct v4l2_decoder_cmd p_v4l2_decoder_cmd; - struct v4l2_dv_timings p_v4l2_dv_timings; - struct v4l2_dv_timings_cap p_v4l2_dv_timings_cap; - struct v4l2_enc_idx p_v4l2_enc_idx; - struct v4l2_encoder_cmd p_v4l2_encoder_cmd; - struct v4l2_enum_dv_timings p_v4l2_enum_dv_timings; - struct v4l2_event p_v4l2_event; - struct v4l2_event_subscription p_v4l2_event_subscription; - struct v4l2_exportbuffer p_v4l2_exportbuffer; - struct v4l2_ext_controls p_v4l2_ext_controls; - struct v4l2_fmtdesc p_v4l2_fmtdesc; - struct v4l2_format p_v4l2_format; - struct v4l2_framebuffer p_v4l2_framebuffer; - struct v4l2_frequency p_v4l2_frequency; - struct v4l2_frequency_band p_v4l2_frequency_band; - struct v4l2_frmivalenum p_v4l2_frmivalenum; - struct v4l2_frmsizeenum p_v4l2_frmsizeenum; - struct v4l2_hw_freq_seek p_v4l2_hw_freq_seek; - struct v4l2_input p_v4l2_input; - struct v4l2_jpegcompression p_v4l2_jpegcompression; - struct v4l2_modulator p_v4l2_modulator; - struct v4l2_output p_v4l2_output; - struct v4l2_queryctrl p_v4l2_queryctrl; - struct v4l2_querymenu p_v4l2_querymenu; - struct v4l2_requestbuffers p_v4l2_requestbuffers; - struct v4l2_selection p_v4l2_selection; - struct v4l2_sliced_vbi_cap p_v4l2_sliced_vbi_cap; - struct v4l2_standard p_v4l2_standard; - struct v4l2_streamparm p_v4l2_streamparm; - struct v4l2_tuner p_v4l2_tuner; + struct dmx_pes_filter_params p_dmx_pes_filter_params; + struct dmx_sct_filter_params p_dmx_sct_filter_params; + struct dmx_stc p_dmx_stc; + struct dtv_properties p_dtv_properties; + struct dvb_diseqc_master_cmd p_dvb_diseqc_master_cmd; + struct dvb_diseqc_slave_reply p_dvb_diseqc_slave_reply; + struct dvb_frontend_event p_dvb_frontend_event; + struct dvb_frontend_info p_dvb_frontend_info; + struct dvb_frontend_parameters p_dvb_frontend_parameters; + struct v4l2_audio p_v4l2_audio; + struct v4l2_audioout p_v4l2_audioout; + struct v4l2_buffer p_v4l2_buffer; + struct v4l2_capability p_v4l2_capability; + struct v4l2_control p_v4l2_control; + struct v4l2_create_buffers p_v4l2_create_buffers; + struct v4l2_crop p_v4l2_crop; + struct v4l2_cropcap p_v4l2_cropcap; + struct v4l2_dbg_chip_info p_v4l2_dbg_chip_info; + struct v4l2_dbg_register p_v4l2_dbg_register; + struct v4l2_decoder_cmd p_v4l2_decoder_cmd; + struct v4l2_dv_timings p_v4l2_dv_timings; + struct v4l2_dv_timings_cap p_v4l2_dv_timings_cap; + struct v4l2_enc_idx p_v4l2_enc_idx; + struct v4l2_encoder_cmd p_v4l2_encoder_cmd; + struct v4l2_enum_dv_timings p_v4l2_enum_dv_timings; + struct v4l2_event p_v4l2_event; + struct v4l2_event_subscription p_v4l2_event_subscription; + struct v4l2_exportbuffer p_v4l2_exportbuffer; + struct v4l2_ext_controls p_v4l2_ext_controls; + struct v4l2_fmtdesc p_v4l2_fmtdesc; + struct v4l2_format p_v4l2_format; + struct v4l2_framebuffer p_v4l2_framebuffer; + struct v4l2_frequency p_v4l2_frequency; + struct v4l2_frequency_band p_v4l2_frequency_band; + struct v4l2_frmivalenum p_v4l2_frmivalenum; + struct v4l2_frmsizeenum p_v4l2_frmsizeenum; + struct v4l2_hw_freq_seek p_v4l2_hw_freq_seek; + struct v4l2_input p_v4l2_input; + struct v4l2_jpegcompression p_v4l2_jpegcompression; + struct v4l2_modulator p_v4l2_modulator; + struct v4l2_output p_v4l2_output; + struct v4l2_queryctrl p_v4l2_queryctrl; + struct v4l2_querymenu p_v4l2_querymenu; + struct v4l2_requestbuffers p_v4l2_requestbuffers; + struct v4l2_selection p_v4l2_selection; + struct v4l2_sliced_vbi_cap p_v4l2_sliced_vbi_cap; + struct v4l2_standard p_v4l2_standard; + struct v4l2_streamparm p_v4l2_streamparm; + struct v4l2_subdev_crop p_v4l2_subdev_crop; + struct v4l2_subdev_edid p_v4l2_subdev_edid; + struct v4l2_subdev_format p_v4l2_subdev_format; + struct v4l2_subdev_frame_interval p_v4l2_subdev_frame_interval; + struct v4l2_subdev_frame_interval_enum p_v4l2_subdev_frame_interval_enum; + struct v4l2_subdev_frame_size_enum p_v4l2_subdev_frame_size_enum; + struct v4l2_subdev_mbus_code_enum p_v4l2_subdev_mbus_code_enum; + struct v4l2_subdev_selection p_v4l2_subdev_selection; + struct v4l2_tuner p_v4l2_tuner; }; #define ioc(type, cmd) { CMD32_##cmd, CMD64_##cmd, cmd, #type, #cmd } @@ -74,116 +83,129 @@ static const struct { const char *name; } ioctls[] = { /* ioctl structs */ - ioc(demux, DMX_ADD_PID), /* __u16 */ - ioc(demux, DMX_GET_CAPS), /* dmx_caps_t */ - ioc(demux, DMX_GET_PES_PIDS), /* __u16[5] */ - ioc(demux, DMX_GET_STC), /* struct dmx_stc */ - ioc(demux, DMX_REMOVE_PID), /* __u16 */ - ioc(demux, DMX_SET_BUFFER_SIZE), /* void */ - ioc(demux, DMX_SET_FILTER), /* struct dmx_sct_filter_params */ - ioc(demux, DMX_SET_PES_FILTER), /* struct dmx_pes_filter_params */ - ioc(demux, DMX_SET_SOURCE), /* dmx_source_t */ - ioc(demux, DMX_START), /* void */ - ioc(demux, DMX_STOP), /* void */ - ioc(frontend, FE_DISEQC_RECV_SLAVE_REPLY), /* struct dvb_diseqc_slave_reply */ - ioc(frontend, FE_DISEQC_RESET_OVERLOAD), /* void */ - ioc(frontend, FE_DISEQC_SEND_BURST), /* void */ - ioc(frontend, FE_DISEQC_SEND_MASTER_CMD), /* struct dvb_diseqc_master_cmd */ - ioc(frontend, FE_DISHNETWORK_SEND_LEGACY_CMD), /* void */ - ioc(frontend, FE_ENABLE_HIGH_LNB_VOLTAGE), /* void */ - ioc(frontend, FE_GET_EVENT), /* struct dvb_frontend_event */ - ioc(frontend, FE_GET_FRONTEND), /* struct dvb_frontend_parameters */ - ioc(frontend, FE_GET_INFO), /* struct dvb_frontend_info */ - ioc(frontend, FE_GET_PROPERTY), /* struct dtv_properties */ - ioc(frontend, FE_READ_BER), /* __u32 */ - ioc(frontend, FE_READ_SIGNAL_STRENGTH), /* __u16 */ - ioc(frontend, FE_READ_SNR), /* __u16 */ - ioc(frontend, FE_READ_STATUS), /* fe_status_t */ - ioc(frontend, FE_READ_UNCORRECTED_BLOCKS), /* __u32 */ - ioc(frontend, FE_SET_FRONTEND), /* struct dvb_frontend_parameters */ - ioc(frontend, FE_SET_FRONTEND_TUNE_MODE), /* void */ - ioc(frontend, FE_SET_PROPERTY), /* struct dtv_properties */ - ioc(frontend, FE_SET_TONE), /* void */ - ioc(frontend, FE_SET_VOLTAGE), /* void */ - ioc(video, VIDIOC_CREATE_BUFS), /* struct v4l2_create_buffers */ - ioc(video, VIDIOC_CROPCAP), /* struct v4l2_cropcap */ - ioc(video, VIDIOC_DBG_G_CHIP_INFO), /* struct v4l2_dbg_chip_info */ - ioc(video, VIDIOC_DBG_G_REGISTER), /* struct v4l2_dbg_register */ - ioc(video, VIDIOC_DBG_S_REGISTER), /* struct v4l2_dbg_register */ - ioc(video, VIDIOC_DECODER_CMD), /* struct v4l2_decoder_cmd */ - ioc(video, VIDIOC_DQBUF), /* struct v4l2_buffer */ - ioc(video, VIDIOC_DQEVENT), /* struct v4l2_event */ - ioc(video, VIDIOC_DV_TIMINGS_CAP), /* struct v4l2_dv_timings_cap */ - ioc(video, VIDIOC_ENCODER_CMD), /* struct v4l2_encoder_cmd */ - ioc(video, VIDIOC_ENUMAUDIO), /* struct v4l2_audio */ - ioc(video, VIDIOC_ENUMAUDOUT), /* struct v4l2_audioout */ - ioc(video, VIDIOC_ENUMINPUT), /* struct v4l2_input */ - ioc(video, VIDIOC_ENUMOUTPUT), /* struct v4l2_output */ - ioc(video, VIDIOC_ENUMSTD), /* struct v4l2_standard */ - ioc(video, VIDIOC_ENUM_DV_TIMINGS), /* struct v4l2_enum_dv_timings */ - ioc(video, VIDIOC_ENUM_FMT), /* struct v4l2_fmtdesc */ - ioc(video, VIDIOC_ENUM_FRAMEINTERVALS), /* struct v4l2_frmivalenum */ - ioc(video, VIDIOC_ENUM_FRAMESIZES), /* struct v4l2_frmsizeenum */ - ioc(video, VIDIOC_ENUM_FREQ_BANDS), /* struct v4l2_frequency_band */ - ioc(video, VIDIOC_EXPBUF), /* struct v4l2_exportbuffer */ - ioc(video, VIDIOC_G_AUDIO), /* struct v4l2_audio */ - ioc(video, VIDIOC_G_AUDOUT), /* struct v4l2_audioout */ - ioc(video, VIDIOC_G_CROP), /* struct v4l2_crop */ - ioc(video, VIDIOC_G_CTRL), /* struct v4l2_control */ - ioc(video, VIDIOC_G_DV_TIMINGS), /* struct v4l2_dv_timings */ - ioc(video, VIDIOC_G_ENC_INDEX), /* struct v4l2_enc_idx */ - ioc(video, VIDIOC_G_EXT_CTRLS), /* struct v4l2_ext_controls */ - ioc(video, VIDIOC_G_FBUF), /* struct v4l2_framebuffer */ - ioc(video, VIDIOC_G_FMT), /* struct v4l2_format */ - ioc(video, VIDIOC_G_FREQUENCY), /* struct v4l2_frequency */ - ioc(video, VIDIOC_G_INPUT), /* int */ - ioc(video, VIDIOC_G_JPEGCOMP), /* struct v4l2_jpegcompression */ - ioc(video, VIDIOC_G_MODULATOR), /* struct v4l2_modulator */ - ioc(video, VIDIOC_G_OUTPUT), /* int */ - ioc(video, VIDIOC_G_PARM), /* struct v4l2_streamparm */ - ioc(video, VIDIOC_G_PRIORITY), /* __u32 */ - ioc(video, VIDIOC_G_SELECTION), /* struct v4l2_selection */ - ioc(video, VIDIOC_G_SLICED_VBI_CAP), /* struct v4l2_sliced_vbi_cap */ - ioc(video, VIDIOC_G_STD), /* v4l2_std_id */ - ioc(video, VIDIOC_G_TUNER), /* struct v4l2_tuner */ - ioc(video, VIDIOC_LOG_STATUS), /* void */ - ioc(video, VIDIOC_OVERLAY), /* int */ - ioc(video, VIDIOC_PREPARE_BUF), /* struct v4l2_buffer */ - ioc(video, VIDIOC_QBUF), /* struct v4l2_buffer */ - ioc(video, VIDIOC_QUERYBUF), /* struct v4l2_buffer */ - ioc(video, VIDIOC_QUERYCAP), /* struct v4l2_capability */ - ioc(video, VIDIOC_QUERYCTRL), /* struct v4l2_queryctrl */ - ioc(video, VIDIOC_QUERYMENU), /* struct v4l2_querymenu */ - ioc(video, VIDIOC_QUERYSTD), /* v4l2_std_id */ - ioc(video, VIDIOC_QUERY_DV_TIMINGS), /* struct v4l2_dv_timings */ - ioc(video, VIDIOC_REQBUFS), /* struct v4l2_requestbuffers */ - ioc(video, VIDIOC_RESERVED), /* void */ - ioc(video, VIDIOC_STREAMOFF), /* int */ - ioc(video, VIDIOC_STREAMON), /* int */ - ioc(video, VIDIOC_SUBSCRIBE_EVENT), /* struct v4l2_event_subscription */ - ioc(video, VIDIOC_S_AUDIO), /* struct v4l2_audio */ - ioc(video, VIDIOC_S_AUDOUT), /* struct v4l2_audioout */ - ioc(video, VIDIOC_S_CROP), /* struct v4l2_crop */ - ioc(video, VIDIOC_S_CTRL), /* struct v4l2_control */ - ioc(video, VIDIOC_S_DV_TIMINGS), /* struct v4l2_dv_timings */ - ioc(video, VIDIOC_S_EXT_CTRLS), /* struct v4l2_ext_controls */ - ioc(video, VIDIOC_S_FBUF), /* struct v4l2_framebuffer */ - ioc(video, VIDIOC_S_FMT), /* struct v4l2_format */ - ioc(video, VIDIOC_S_FREQUENCY), /* struct v4l2_frequency */ - ioc(video, VIDIOC_S_HW_FREQ_SEEK), /* struct v4l2_hw_freq_seek */ - ioc(video, VIDIOC_S_INPUT), /* int */ - ioc(video, VIDIOC_S_JPEGCOMP), /* struct v4l2_jpegcompression */ - ioc(video, VIDIOC_S_MODULATOR), /* struct v4l2_modulator */ - ioc(video, VIDIOC_S_OUTPUT), /* int */ - ioc(video, VIDIOC_S_PARM), /* struct v4l2_streamparm */ - ioc(video, VIDIOC_S_PRIORITY), /* __u32 */ - ioc(video, VIDIOC_S_SELECTION), /* struct v4l2_selection */ - ioc(video, VIDIOC_S_STD), /* v4l2_std_id */ - ioc(video, VIDIOC_S_TUNER), /* struct v4l2_tuner */ - ioc(video, VIDIOC_TRY_DECODER_CMD), /* struct v4l2_decoder_cmd */ - ioc(video, VIDIOC_TRY_ENCODER_CMD), /* struct v4l2_encoder_cmd */ - ioc(video, VIDIOC_TRY_EXT_CTRLS), /* struct v4l2_ext_controls */ - ioc(video, VIDIOC_TRY_FMT), /* struct v4l2_format */ - ioc(video, VIDIOC_UNSUBSCRIBE_EVENT), /* struct v4l2_event_subscription */ + ioc(demux, DMX_ADD_PID), /* __u16 */ + ioc(demux, DMX_GET_CAPS), /* dmx_caps_t */ + ioc(demux, DMX_GET_PES_PIDS), /* __u16[5] */ + ioc(demux, DMX_GET_STC), /* struct dmx_stc */ + ioc(demux, DMX_REMOVE_PID), /* __u16 */ + ioc(demux, DMX_SET_BUFFER_SIZE), /* void */ + ioc(demux, DMX_SET_FILTER), /* struct dmx_sct_filter_params */ + ioc(demux, DMX_SET_PES_FILTER), /* struct dmx_pes_filter_params */ + ioc(demux, DMX_SET_SOURCE), /* dmx_source_t */ + ioc(demux, DMX_START), /* void */ + ioc(demux, DMX_STOP), /* void */ + ioc(frontend, FE_DISEQC_RECV_SLAVE_REPLY), /* struct dvb_diseqc_slave_reply */ + ioc(frontend, FE_DISEQC_RESET_OVERLOAD), /* void */ + ioc(frontend, FE_DISEQC_SEND_BURST), /* void */ + ioc(frontend, FE_DISEQC_SEND_MASTER_CMD), /* struct dvb_diseqc_master_cmd */ + ioc(frontend, FE_DISHNETWORK_SEND_LEGACY_CMD), /* void */ + ioc(frontend, FE_ENABLE_HIGH_LNB_VOLTAGE), /* void */ + ioc(frontend, FE_GET_EVENT), /* struct dvb_frontend_event */ + ioc(frontend, FE_GET_FRONTEND), /* struct dvb_frontend_parameters */ + ioc(frontend, FE_GET_INFO), /* struct dvb_frontend_info */ + ioc(frontend, FE_GET_PROPERTY), /* struct dtv_properties */ + ioc(frontend, FE_READ_BER), /* __u32 */ + ioc(frontend, FE_READ_SIGNAL_STRENGTH), /* __u16 */ + ioc(frontend, FE_READ_SNR), /* __u16 */ + ioc(frontend, FE_READ_STATUS), /* fe_status_t */ + ioc(frontend, FE_READ_UNCORRECTED_BLOCKS), /* __u32 */ + ioc(frontend, FE_SET_FRONTEND), /* struct dvb_frontend_parameters */ + ioc(frontend, FE_SET_FRONTEND_TUNE_MODE), /* void */ + ioc(frontend, FE_SET_PROPERTY), /* struct dtv_properties */ + ioc(frontend, FE_SET_TONE), /* void */ + ioc(frontend, FE_SET_VOLTAGE), /* void */ + ioc(video, VIDIOC_CREATE_BUFS), /* struct v4l2_create_buffers */ + ioc(video, VIDIOC_CROPCAP), /* struct v4l2_cropcap */ + ioc(video, VIDIOC_DBG_G_CHIP_INFO), /* struct v4l2_dbg_chip_info */ + ioc(video, VIDIOC_DBG_G_REGISTER), /* struct v4l2_dbg_register */ + ioc(video, VIDIOC_DBG_S_REGISTER), /* struct v4l2_dbg_register */ + ioc(video, VIDIOC_DECODER_CMD), /* struct v4l2_decoder_cmd */ + ioc(video, VIDIOC_DQBUF), /* struct v4l2_buffer */ + ioc(video, VIDIOC_DQEVENT), /* struct v4l2_event */ + ioc(video, VIDIOC_DV_TIMINGS_CAP), /* struct v4l2_dv_timings_cap */ + ioc(video, VIDIOC_ENCODER_CMD), /* struct v4l2_encoder_cmd */ + ioc(video, VIDIOC_ENUMAUDIO), /* struct v4l2_audio */ + ioc(video, VIDIOC_ENUMAUDOUT), /* struct v4l2_audioout */ + ioc(video, VIDIOC_ENUMINPUT), /* struct v4l2_input */ + ioc(video, VIDIOC_ENUMOUTPUT), /* struct v4l2_output */ + ioc(video, VIDIOC_ENUMSTD), /* struct v4l2_standard */ + ioc(video, VIDIOC_ENUM_DV_TIMINGS), /* struct v4l2_enum_dv_timings */ + ioc(video, VIDIOC_ENUM_FMT), /* struct v4l2_fmtdesc */ + ioc(video, VIDIOC_ENUM_FRAMEINTERVALS), /* struct v4l2_frmivalenum */ + ioc(video, VIDIOC_ENUM_FRAMESIZES), /* struct v4l2_frmsizeenum */ + ioc(video, VIDIOC_ENUM_FREQ_BANDS), /* struct v4l2_frequency_band */ + ioc(video, VIDIOC_EXPBUF), /* struct v4l2_exportbuffer */ + ioc(video, VIDIOC_G_AUDIO), /* struct v4l2_audio */ + ioc(video, VIDIOC_G_AUDOUT), /* struct v4l2_audioout */ + ioc(video, VIDIOC_G_CROP), /* struct v4l2_crop */ + ioc(video, VIDIOC_G_CTRL), /* struct v4l2_control */ + ioc(video, VIDIOC_G_DV_TIMINGS), /* struct v4l2_dv_timings */ + ioc(video, VIDIOC_G_ENC_INDEX), /* struct v4l2_enc_idx */ + ioc(video, VIDIOC_G_EXT_CTRLS), /* struct v4l2_ext_controls */ + ioc(video, VIDIOC_G_FBUF), /* struct v4l2_framebuffer */ + ioc(video, VIDIOC_G_FMT), /* struct v4l2_format */ + ioc(video, VIDIOC_G_FREQUENCY), /* struct v4l2_frequency */ + ioc(video, VIDIOC_G_INPUT), /* int */ + ioc(video, VIDIOC_G_JPEGCOMP), /* struct v4l2_jpegcompression */ + ioc(video, VIDIOC_G_MODULATOR), /* struct v4l2_modulator */ + ioc(video, VIDIOC_G_OUTPUT), /* int */ + ioc(video, VIDIOC_G_PARM), /* struct v4l2_streamparm */ + ioc(video, VIDIOC_G_PRIORITY), /* __u32 */ + ioc(video, VIDIOC_G_SELECTION), /* struct v4l2_selection */ + ioc(video, VIDIOC_G_SLICED_VBI_CAP), /* struct v4l2_sliced_vbi_cap */ + ioc(video, VIDIOC_G_STD), /* v4l2_std_id */ + ioc(video, VIDIOC_G_TUNER), /* struct v4l2_tuner */ + ioc(video, VIDIOC_LOG_STATUS), /* void */ + ioc(video, VIDIOC_OVERLAY), /* int */ + ioc(video, VIDIOC_PREPARE_BUF), /* struct v4l2_buffer */ + ioc(video, VIDIOC_QBUF), /* struct v4l2_buffer */ + ioc(video, VIDIOC_QUERYBUF), /* struct v4l2_buffer */ + ioc(video, VIDIOC_QUERYCAP), /* struct v4l2_capability */ + ioc(video, VIDIOC_QUERYCTRL), /* struct v4l2_queryctrl */ + ioc(video, VIDIOC_QUERYMENU), /* struct v4l2_querymenu */ + ioc(video, VIDIOC_QUERYSTD), /* v4l2_std_id */ + ioc(video, VIDIOC_QUERY_DV_TIMINGS), /* struct v4l2_dv_timings */ + ioc(video, VIDIOC_REQBUFS), /* struct v4l2_requestbuffers */ + ioc(video, VIDIOC_RESERVED), /* void */ + ioc(video, VIDIOC_STREAMOFF), /* int */ + ioc(video, VIDIOC_STREAMON), /* int */ + ioc(subdev, VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL), /* struct v4l2_subdev_frame_interval_enum */ + ioc(subdev, VIDIOC_SUBDEV_ENUM_FRAME_SIZE), /* struct v4l2_subdev_frame_size_enum */ + ioc(subdev, VIDIOC_SUBDEV_ENUM_MBUS_CODE), /* struct v4l2_subdev_mbus_code_enum */ + ioc(subdev, VIDIOC_SUBDEV_G_CROP), /* struct v4l2_subdev_crop */ + ioc(subdev, VIDIOC_SUBDEV_G_EDID), /* struct v4l2_subdev_edid */ + ioc(subdev, VIDIOC_SUBDEV_G_FMT), /* struct v4l2_subdev_format */ + ioc(subdev, VIDIOC_SUBDEV_G_FRAME_INTERVAL), /* struct v4l2_subdev_frame_interval */ + ioc(subdev, VIDIOC_SUBDEV_G_SELECTION), /* struct v4l2_subdev_selection */ + ioc(subdev, VIDIOC_SUBDEV_S_CROP), /* struct v4l2_subdev_crop */ + ioc(subdev, VIDIOC_SUBDEV_S_EDID), /* struct v4l2_subdev_edid */ + ioc(subdev, VIDIOC_SUBDEV_S_FMT), /* struct v4l2_subdev_format */ + ioc(subdev, VIDIOC_SUBDEV_S_FRAME_INTERVAL), /* struct v4l2_subdev_frame_interval */ + ioc(subdev, VIDIOC_SUBDEV_S_SELECTION), /* struct v4l2_subdev_selection */ + ioc(video, VIDIOC_SUBSCRIBE_EVENT), /* struct v4l2_event_subscription */ + ioc(video, VIDIOC_S_AUDIO), /* struct v4l2_audio */ + ioc(video, VIDIOC_S_AUDOUT), /* struct v4l2_audioout */ + ioc(video, VIDIOC_S_CROP), /* struct v4l2_crop */ + ioc(video, VIDIOC_S_CTRL), /* struct v4l2_control */ + ioc(video, VIDIOC_S_DV_TIMINGS), /* struct v4l2_dv_timings */ + ioc(video, VIDIOC_S_EXT_CTRLS), /* struct v4l2_ext_controls */ + ioc(video, VIDIOC_S_FBUF), /* struct v4l2_framebuffer */ + ioc(video, VIDIOC_S_FMT), /* struct v4l2_format */ + ioc(video, VIDIOC_S_FREQUENCY), /* struct v4l2_frequency */ + ioc(video, VIDIOC_S_HW_FREQ_SEEK), /* struct v4l2_hw_freq_seek */ + ioc(video, VIDIOC_S_INPUT), /* int */ + ioc(video, VIDIOC_S_JPEGCOMP), /* struct v4l2_jpegcompression */ + ioc(video, VIDIOC_S_MODULATOR), /* struct v4l2_modulator */ + ioc(video, VIDIOC_S_OUTPUT), /* int */ + ioc(video, VIDIOC_S_PARM), /* struct v4l2_streamparm */ + ioc(video, VIDIOC_S_PRIORITY), /* __u32 */ + ioc(video, VIDIOC_S_SELECTION), /* struct v4l2_selection */ + ioc(video, VIDIOC_S_STD), /* v4l2_std_id */ + ioc(video, VIDIOC_S_TUNER), /* struct v4l2_tuner */ + ioc(video, VIDIOC_TRY_DECODER_CMD), /* struct v4l2_decoder_cmd */ + ioc(video, VIDIOC_TRY_ENCODER_CMD), /* struct v4l2_encoder_cmd */ + ioc(video, VIDIOC_TRY_EXT_CTRLS), /* struct v4l2_ext_controls */ + ioc(video, VIDIOC_TRY_FMT), /* struct v4l2_format */ + ioc(video, VIDIOC_UNSUBSCRIBE_EVENT), /* struct v4l2_event_subscription */ }; #define S_IOCTLS sizeof(ioctls)/sizeof(ioctls[0]) diff --git a/contrib/test/ioctl_32.h b/contrib/test/ioctl_32.h index bccb429..89e52eb 100644 --- a/contrib/test/ioctl_32.h +++ b/contrib/test/ioctl_32.h @@ -86,6 +86,19 @@ #define CMD32_VIDIOC_RESERVED 0x5601 #define CMD32_VIDIOC_STREAMOFF 0x40045613 #define CMD32_VIDIOC_STREAMON 0x40045612 +#define CMD32_VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL 0xc040564b +#define CMD32_VIDIOC_SUBDEV_ENUM_FRAME_SIZE 0xc040564a +#define CMD32_VIDIOC_SUBDEV_ENUM_MBUS_CODE 0xc0305602 +#define CMD32_VIDIOC_SUBDEV_G_CROP 0xc038563b +#define CMD32_VIDIOC_SUBDEV_G_EDID 0xc0245628 +#define CMD32_VIDIOC_SUBDEV_G_FMT 0xc0585604 +#define CMD32_VIDIOC_SUBDEV_G_FRAME_INTERVAL 0xc0305615 +#define CMD32_VIDIOC_SUBDEV_G_SELECTION 0xc040563d +#define CMD32_VIDIOC_SUBDEV_S_CROP 0xc038563c +#define CMD32_VIDIOC_SUBDEV_S_EDID 0xc0245629 +#define CMD32_VIDIOC_SUBDEV_S_FMT 0xc0585605 +#define CMD32_VIDIOC_SUBDEV_S_FRAME_INTERVAL 0xc0305616 +#define CMD32_VIDIOC_SUBDEV_S_SELECTION 0xc040563e #define CMD32_VIDIOC_SUBSCRIBE_EVENT 0x4020565a #define CMD32_VIDIOC_S_AUDIO 0x40345622 #define CMD32_VIDIOC_S_AUDOUT 0x40345632 diff --git a/contrib/test/ioctl_64.h b/contrib/test/ioctl_64.h index 372294a..9ec33b6 100644 --- a/contrib/test/ioctl_64.h +++ b/contrib/test/ioctl_64.h @@ -86,6 +86,19 @@ #define CMD64_VIDIOC_RESERVED 0x5601 #define CMD64_VIDIOC_STREAMOFF 0x40045613 #define CMD64_VIDIOC_STREAMON 0x40045612 +#define CMD64_VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL 0xc040564b +#define CMD64_VIDIOC_SUBDEV_ENUM_FRAME_SIZE 0xc040564a +#define CMD64_VIDIOC_SUBDEV_ENUM_MBUS_CODE 0xc0305602 +#define CMD64_VIDIOC_SUBDEV_G_CROP 0xc038563b +#define CMD64_VIDIOC_SUBDEV_G_EDID 0xc0285628 +#define CMD64_VIDIOC_SUBDEV_G_FMT 0xc0585604 +#define CMD64_VIDIOC_SUBDEV_G_FRAME_INTERVAL 0xc0305615 +#define CMD64_VIDIOC_SUBDEV_G_SELECTION 0xc040563d +#define CMD64_VIDIOC_SUBDEV_S_CROP 0xc038563c +#define CMD64_VIDIOC_SUBDEV_S_EDID 0xc0285629 +#define CMD64_VIDIOC_SUBDEV_S_FMT 0xc0585605 +#define CMD64_VIDIOC_SUBDEV_S_FRAME_INTERVAL 0xc0305616 +#define CMD64_VIDIOC_SUBDEV_S_SELECTION 0xc040563e #define CMD64_VIDIOC_SUBSCRIBE_EVENT 0x4020565a #define CMD64_VIDIOC_S_AUDIO 0x40345622 #define CMD64_VIDIOC_S_AUDOUT 0x40345632 diff --git a/include/linux/v4l2-controls.h b/include/linux/v4l2-controls.h index 083bb5a..2cbe605 100644 --- a/include/linux/v4l2-controls.h +++ b/include/linux/v4l2-controls.h @@ -160,6 +160,14 @@ enum v4l2_colorfx { * of controls. Total of 16 controls is reserved for this driver */ #define V4L2_CID_USER_SI476X_BASE (V4L2_CID_USER_BASE + 0x1040) +/* The base for the TI VPE driver controls. Total of 16 controls is reserved for + * this driver */ +#define V4L2_CID_USER_TI_VPE_BASE (V4L2_CID_USER_BASE + 0x1050) + +/* The base for the saa7134 driver controls. + * We reserve 16 controls for this driver. */ +#define V4L2_CID_USER_SAA7134_BASE (V4L2_CID_USER_BASE + 0x1060) + /* MPEG-class control IDs */ /* The MPEG controls are applicable to all codec controls * and the 'MPEG' part of the define is historical */ @@ -550,6 +558,11 @@ enum v4l2_vp8_golden_frame_sel { V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_PREV = 0, V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_REF_PERIOD = 1, }; +#define V4L2_CID_MPEG_VIDEO_VPX_MIN_QP (V4L2_CID_MPEG_BASE+507) +#define V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (V4L2_CID_MPEG_BASE+508) +#define V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (V4L2_CID_MPEG_BASE+509) +#define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_MPEG_BASE+510) +#define V4L2_CID_MPEG_VIDEO_VPX_PROFILE (V4L2_CID_MPEG_BASE+511) /* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */ #define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000) diff --git a/include/linux/v4l2-subdev.h b/include/linux/v4l2-subdev.h new file mode 100644 index 0000000..a33c4da --- /dev/null +++ b/include/linux/v4l2-subdev.h @@ -0,0 +1,180 @@ +/* + * V4L2 subdev userspace API + * + * Copyright (C) 2010 Nokia Corporation + * + * Contacts: Laurent Pinchart <laurent.pinch...@ideasonboard.com> + * Sakari Ailus <sakari.ai...@iki.fi> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __LINUX_V4L2_SUBDEV_H +#define __LINUX_V4L2_SUBDEV_H + +#include <linux/ioctl.h> +#include <linux/types.h> +#include <linux/v4l2-common.h> +#include <linux/v4l2-mediabus.h> + +/** + * enum v4l2_subdev_format_whence - Media bus format type + * @V4L2_SUBDEV_FORMAT_TRY: try format, for negotiation only + * @V4L2_SUBDEV_FORMAT_ACTIVE: active format, applied to the device + */ +enum v4l2_subdev_format_whence { + V4L2_SUBDEV_FORMAT_TRY = 0, + V4L2_SUBDEV_FORMAT_ACTIVE = 1, +}; + +/** + * struct v4l2_subdev_format - Pad-level media bus format + * @which: format type (from enum v4l2_subdev_format_whence) + * @pad: pad number, as reported by the media API + * @format: media bus format (format code and frame size) + */ +struct v4l2_subdev_format { + __u32 which; + __u32 pad; + struct v4l2_mbus_framefmt format; + __u32 reserved[8]; +}; + +/** + * struct v4l2_subdev_crop - Pad-level crop settings + * @which: format type (from enum v4l2_subdev_format_whence) + * @pad: pad number, as reported by the media API + * @rect: pad crop rectangle boundaries + */ +struct v4l2_subdev_crop { + __u32 which; + __u32 pad; + struct v4l2_rect rect; + __u32 reserved[8]; +}; + +/** + * struct v4l2_subdev_mbus_code_enum - Media bus format enumeration + * @pad: pad number, as reported by the media API + * @index: format index during enumeration + * @code: format code (from enum v4l2_mbus_pixelcode) + */ +struct v4l2_subdev_mbus_code_enum { + __u32 pad; + __u32 index; + __u32 code; + __u32 reserved[9]; +}; + +/** + * struct v4l2_subdev_frame_size_enum - Media bus format enumeration + * @pad: pad number, as reported by the media API + * @index: format index during enumeration + * @code: format code (from enum v4l2_mbus_pixelcode) + */ +struct v4l2_subdev_frame_size_enum { + __u32 index; + __u32 pad; + __u32 code; + __u32 min_width; + __u32 max_width; + __u32 min_height; + __u32 max_height; + __u32 reserved[9]; +}; + +/** + * struct v4l2_subdev_frame_interval - Pad-level frame rate + * @pad: pad number, as reported by the media API + * @interval: frame interval in seconds + */ +struct v4l2_subdev_frame_interval { + __u32 pad; + struct v4l2_fract interval; + __u32 reserved[9]; +}; + +/** + * struct v4l2_subdev_frame_interval_enum - Frame interval enumeration + * @pad: pad number, as reported by the media API + * @index: frame interval index during enumeration + * @code: format code (from enum v4l2_mbus_pixelcode) + * @width: frame width in pixels + * @height: frame height in pixels + * @interval: frame interval in seconds + */ +struct v4l2_subdev_frame_interval_enum { + __u32 index; + __u32 pad; + __u32 code; + __u32 width; + __u32 height; + struct v4l2_fract interval; + __u32 reserved[9]; +}; + +/** + * struct v4l2_subdev_selection - selection info + * + * @which: either V4L2_SUBDEV_FORMAT_ACTIVE or V4L2_SUBDEV_FORMAT_TRY + * @pad: pad number, as reported by the media API + * @target: Selection target, used to choose one of possible rectangles, + * defined in v4l2-common.h; V4L2_SEL_TGT_* . + * @flags: constraint flags, defined in v4l2-common.h; V4L2_SEL_FLAG_*. + * @r: coordinates of the selection window + * @reserved: for future use, set to zero for now + * + * Hardware may use multiple helper windows to process a video stream. + * The structure is used to exchange this selection areas between + * an application and a driver. + */ +struct v4l2_subdev_selection { + __u32 which; + __u32 pad; + __u32 target; + __u32 flags; + struct v4l2_rect r; + __u32 reserved[8]; +}; + +struct v4l2_subdev_edid { + __u32 pad; + __u32 start_block; + __u32 blocks; + __u32 reserved[5]; + __u8 __user *edid; +}; + +#define VIDIOC_SUBDEV_G_FMT _IOWR('V', 4, struct v4l2_subdev_format) +#define VIDIOC_SUBDEV_S_FMT _IOWR('V', 5, struct v4l2_subdev_format) +#define VIDIOC_SUBDEV_G_FRAME_INTERVAL \ + _IOWR('V', 21, struct v4l2_subdev_frame_interval) +#define VIDIOC_SUBDEV_S_FRAME_INTERVAL \ + _IOWR('V', 22, struct v4l2_subdev_frame_interval) +#define VIDIOC_SUBDEV_ENUM_MBUS_CODE \ + _IOWR('V', 2, struct v4l2_subdev_mbus_code_enum) +#define VIDIOC_SUBDEV_ENUM_FRAME_SIZE \ + _IOWR('V', 74, struct v4l2_subdev_frame_size_enum) +#define VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL \ + _IOWR('V', 75, struct v4l2_subdev_frame_interval_enum) +#define VIDIOC_SUBDEV_G_CROP _IOWR('V', 59, struct v4l2_subdev_crop) +#define VIDIOC_SUBDEV_S_CROP _IOWR('V', 60, struct v4l2_subdev_crop) +#define VIDIOC_SUBDEV_G_SELECTION \ + _IOWR('V', 61, struct v4l2_subdev_selection) +#define VIDIOC_SUBDEV_S_SELECTION \ + _IOWR('V', 62, struct v4l2_subdev_selection) +#define VIDIOC_SUBDEV_G_EDID _IOWR('V', 40, struct v4l2_subdev_edid) +#define VIDIOC_SUBDEV_S_EDID _IOWR('V', 41, struct v4l2_subdev_edid) + +#endif diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h index 437f1b0..6ae7bbe 100644 --- a/include/linux/videodev2.h +++ b/include/linux/videodev2.h @@ -207,8 +207,8 @@ enum v4l2_priority { struct v4l2_rect { __s32 left; __s32 top; - __s32 width; - __s32 height; + __u32 width; + __u32 height; }; struct v4l2_fract { diff --git a/utils/keytable/rc_keymaps/dw210x b/utils/keytable/rc_keymaps/dw210x deleted file mode 100644 index 01bb877..0000000 --- a/utils/keytable/rc_keymaps/dw210x +++ /dev/null @@ -1,32 +0,0 @@ -# table dw210x, type: UNKNOWN -0xf80a KEY_POWER2 -0xf80c KEY_MUTE -0xf811 KEY_1 -0xf812 KEY_2 -0xf813 KEY_3 -0xf814 KEY_4 -0xf815 KEY_5 -0xf816 KEY_6 -0xf817 KEY_7 -0xf818 KEY_8 -0xf819 KEY_9 -0xf810 KEY_0 -0xf81c KEY_CHANNELUP -0xf80f KEY_CHANNELDOWN -0xf81a KEY_VOLUMEUP -0xf80e KEY_VOLUMEDOWN -0xf804 KEY_RECORD -0xf809 KEY_FAVORITES -0xf808 KEY_REWIND -0xf807 KEY_FASTFORWARD -0xf80b KEY_PAUSE -0xf802 KEY_ESC -0xf803 KEY_TAB -0xf800 KEY_UP -0xf81f KEY_OK -0xf801 KEY_DOWN -0xf805 KEY_CAMERA -0xf806 KEY_STOP -0xf840 KEY_ZOOM -0xf81e KEY_TV -0xf81b KEY_LAST diff --git a/utils/keytable/rc_keymaps/su3000 b/utils/keytable/rc_keymaps/su3000 index b53aaed..584499c 100644 --- a/utils/keytable/rc_keymaps/su3000 +++ b/utils/keytable/rc_keymaps/su3000 @@ -1,4 +1,4 @@ -# table su3000, type: UNKNOWN +# table su3000, type: RC5 0x25 KEY_POWER 0x0a KEY_MUTE 0x01 KEY_1 diff --git a/utils/keytable/rc_keymaps/tbs b/utils/keytable/rc_keymaps/tbs deleted file mode 100644 index 4ad31e1..0000000 --- a/utils/keytable/rc_keymaps/tbs +++ /dev/null @@ -1,33 +0,0 @@ -# table tbs, type: UNKNOWN -0xf884 KEY_POWER -0xf894 KEY_MUTE -0xf887 KEY_1 -0xf886 KEY_2 -0xf885 KEY_3 -0xf88b KEY_4 -0xf88a KEY_5 -0xf889 KEY_6 -0xf88f KEY_7 -0xf88e KEY_8 -0xf88d KEY_9 -0xf892 KEY_0 -0xf896 KEY_CHANNELUP -0xf891 KEY_CHANNELDOWN -0xf893 KEY_VOLUMEUP -0xf88c KEY_VOLUMEDOWN -0xf883 KEY_RECORD -0xf898 KEY_PAUSE -0xf899 KEY_OK -0xf89a KEY_SHUFFLE -0xf881 KEY_UP -0xf890 KEY_LEFT -0xf882 KEY_RIGHT -0xf888 KEY_DOWN -0xf895 KEY_FAVORITES -0xf897 KEY_SUBTITLE -0xf89d KEY_ZOOM -0xf89f KEY_EXIT -0xf89e KEY_MENU -0xf89c KEY_EPG -0xf880 KEY_PREVIOUS -0xf89b KEY_MODE diff --git a/utils/keytable/rc_keymaps/tevii b/utils/keytable/rc_keymaps/tevii deleted file mode 100644 index 8b4e96b..0000000 --- a/utils/keytable/rc_keymaps/tevii +++ /dev/null @@ -1,48 +0,0 @@ -# table tevii, type: UNKNOWN -0xf80a KEY_POWER -0xf80c KEY_MUTE -0xf811 KEY_1 -0xf812 KEY_2 -0xf813 KEY_3 -0xf814 KEY_4 -0xf815 KEY_5 -0xf816 KEY_6 -0xf817 KEY_7 -0xf818 KEY_8 -0xf819 KEY_9 -0xf810 KEY_0 -0xf81c KEY_MENU -0xf80f KEY_VOLUMEDOWN -0xf81a KEY_LAST -0xf80e KEY_OPEN -0xf804 KEY_RECORD -0xf809 KEY_VOLUMEUP -0xf808 KEY_CHANNELUP -0xf807 KEY_PVR -0xf80b KEY_TIME -0xf802 KEY_RIGHT -0xf803 KEY_LEFT -0xf800 KEY_UP -0xf81f KEY_OK -0xf801 KEY_DOWN -0xf805 KEY_TUNER -0xf806 KEY_CHANNELDOWN -0xf840 KEY_PLAYPAUSE -0xf81e KEY_REWIND -0xf81b KEY_FAVORITES -0xf81d KEY_BACK -0xf84d KEY_FASTFORWARD -0xf844 KEY_EPG -0xf84c KEY_INFO -0xf841 KEY_AB -0xf843 KEY_AUDIO -0xf845 KEY_SUBTITLE -0xf84a KEY_LIST -0xf846 KEY_F1 -0xf847 KEY_F2 -0xf85e KEY_F3 -0xf85c KEY_F4 -0xf852 KEY_F5 -0xf85a KEY_F6 -0xf856 KEY_MODE -0xf858 KEY_SWITCHVIDEOMODE diff --git a/utils/keytable/rc_maps.cfg b/utils/keytable/rc_maps.cfg index f354dfe..0c0dfa2 100644 --- a/utils/keytable/rc_maps.cfg +++ b/utils/keytable/rc_maps.cfg @@ -46,6 +46,7 @@ * rc-msi-digivox-ii msi_digivox_ii * rc-norwood norwood * rc-nec-terratec-cinergy-xs nec_terratec_cinergy_xs +* rc-su3000 su3000 * rc-videomate-s350 videomate_s350 * rc-digitalnow-tinytwin digitalnow_tinytwin * rc-rc6-mce rc6_mce @@ -139,10 +140,6 @@ # * * dibusb # found in dibusb-common.c # * * digitv # found in digitv.c # * * dtt200u # found in dtt200u.c -# * * dw210x # found in dw2102.c -# * * tevii # found in dw2102.c -# * * tbs # found in dw2102.c -# * * su3000 # found in dw2102.c # * * megasky # found in m920x.c # * * tvwalkertwin # found in m920x.c # * * pinnacle310e # found in m920x.c diff --git a/utils/xc3028-firmware/tuner-xc2028-types.h b/utils/xc3028-firmware/tuner-xc2028-types.h index 74dc46a..7e47987 100644 --- a/utils/xc3028-firmware/tuner-xc2028-types.h +++ b/utils/xc3028-firmware/tuner-xc2028-types.h @@ -119,7 +119,7 @@ #define V4L2_STD_A2 (V4L2_STD_A2_A | V4L2_STD_A2_B) #define V4L2_STD_NICAM (V4L2_STD_NICAM_A | V4L2_STD_NICAM_B) -/* To preserve backward compatibilty, +/* To preserve backward compatibility, (std & V4L2_STD_AUDIO) = 0 means that ALL audio stds are supported */ _______________________________________________ linuxtv-commits mailing list linuxtv-commits@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits