diff options
Diffstat (limited to 'drivers/media/v4l2-core/v4l2-ctrls.c')
-rw-r--r-- | drivers/media/v4l2-core/v4l2-ctrls.c | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c index 6ff002bd5909..55c683254102 100644 --- a/drivers/media/v4l2-core/v4l2-ctrls.c +++ b/drivers/media/v4l2-core/v4l2-ctrls.c | |||
@@ -735,6 +735,8 @@ const char *v4l2_ctrl_get_name(u32 id) | |||
735 | case V4L2_CID_MPEG_VIDEO_DEC_PTS: return "Video Decoder PTS"; | 735 | case V4L2_CID_MPEG_VIDEO_DEC_PTS: return "Video Decoder PTS"; |
736 | case V4L2_CID_MPEG_VIDEO_DEC_FRAME: return "Video Decoder Frame Count"; | 736 | case V4L2_CID_MPEG_VIDEO_DEC_FRAME: return "Video Decoder Frame Count"; |
737 | case V4L2_CID_MPEG_VIDEO_VBV_DELAY: return "Initial Delay for VBV Control"; | 737 | case V4L2_CID_MPEG_VIDEO_VBV_DELAY: return "Initial Delay for VBV Control"; |
738 | case V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE: return "Horizontal MV Search Range"; | ||
739 | case V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE: return "Vertical MV Search Range"; | ||
738 | case V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER: return "Repeat Sequence Header"; | 740 | case V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER: return "Repeat Sequence Header"; |
739 | 741 | ||
740 | /* VPX controls */ | 742 | /* VPX controls */ |
@@ -857,6 +859,17 @@ const char *v4l2_ctrl_get_name(u32 id) | |||
857 | case V4L2_CID_FM_RX_CLASS: return "FM Radio Receiver Controls"; | 859 | case V4L2_CID_FM_RX_CLASS: return "FM Radio Receiver Controls"; |
858 | case V4L2_CID_TUNE_DEEMPHASIS: return "De-Emphasis"; | 860 | case V4L2_CID_TUNE_DEEMPHASIS: return "De-Emphasis"; |
859 | case V4L2_CID_RDS_RECEPTION: return "RDS Reception"; | 861 | case V4L2_CID_RDS_RECEPTION: return "RDS Reception"; |
862 | |||
863 | case V4L2_CID_RF_TUNER_CLASS: return "RF Tuner Controls"; | ||
864 | case V4L2_CID_RF_TUNER_LNA_GAIN_AUTO: return "LNA Gain, Auto"; | ||
865 | case V4L2_CID_RF_TUNER_LNA_GAIN: return "LNA Gain"; | ||
866 | case V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO: return "Mixer Gain, Auto"; | ||
867 | case V4L2_CID_RF_TUNER_MIXER_GAIN: return "Mixer Gain"; | ||
868 | case V4L2_CID_RF_TUNER_IF_GAIN_AUTO: return "IF Gain, Auto"; | ||
869 | case V4L2_CID_RF_TUNER_IF_GAIN: return "IF Gain"; | ||
870 | case V4L2_CID_RF_TUNER_BANDWIDTH_AUTO: return "Bandwidth, Auto"; | ||
871 | case V4L2_CID_RF_TUNER_BANDWIDTH: return "Bandwidth"; | ||
872 | case V4L2_CID_RF_TUNER_PLL_LOCK: return "PLL Lock"; | ||
860 | default: | 873 | default: |
861 | return NULL; | 874 | return NULL; |
862 | } | 875 | } |
@@ -906,10 +919,19 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type, | |||
906 | case V4L2_CID_WIDE_DYNAMIC_RANGE: | 919 | case V4L2_CID_WIDE_DYNAMIC_RANGE: |
907 | case V4L2_CID_IMAGE_STABILIZATION: | 920 | case V4L2_CID_IMAGE_STABILIZATION: |
908 | case V4L2_CID_RDS_RECEPTION: | 921 | case V4L2_CID_RDS_RECEPTION: |
922 | case V4L2_CID_RF_TUNER_LNA_GAIN_AUTO: | ||
923 | case V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO: | ||
924 | case V4L2_CID_RF_TUNER_IF_GAIN_AUTO: | ||
925 | case V4L2_CID_RF_TUNER_BANDWIDTH_AUTO: | ||
926 | case V4L2_CID_RF_TUNER_PLL_LOCK: | ||
909 | *type = V4L2_CTRL_TYPE_BOOLEAN; | 927 | *type = V4L2_CTRL_TYPE_BOOLEAN; |
910 | *min = 0; | 928 | *min = 0; |
911 | *max = *step = 1; | 929 | *max = *step = 1; |
912 | break; | 930 | break; |
931 | case V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE: | ||
932 | case V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE: | ||
933 | *type = V4L2_CTRL_TYPE_INTEGER; | ||
934 | break; | ||
913 | case V4L2_CID_PAN_RESET: | 935 | case V4L2_CID_PAN_RESET: |
914 | case V4L2_CID_TILT_RESET: | 936 | case V4L2_CID_TILT_RESET: |
915 | case V4L2_CID_FLASH_STROBE: | 937 | case V4L2_CID_FLASH_STROBE: |
@@ -991,6 +1013,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type, | |||
991 | case V4L2_CID_IMAGE_PROC_CLASS: | 1013 | case V4L2_CID_IMAGE_PROC_CLASS: |
992 | case V4L2_CID_DV_CLASS: | 1014 | case V4L2_CID_DV_CLASS: |
993 | case V4L2_CID_FM_RX_CLASS: | 1015 | case V4L2_CID_FM_RX_CLASS: |
1016 | case V4L2_CID_RF_TUNER_CLASS: | ||
994 | *type = V4L2_CTRL_TYPE_CTRL_CLASS; | 1017 | *type = V4L2_CTRL_TYPE_CTRL_CLASS; |
995 | /* You can neither read not write these */ | 1018 | /* You can neither read not write these */ |
996 | *flags |= V4L2_CTRL_FLAG_READ_ONLY | V4L2_CTRL_FLAG_WRITE_ONLY; | 1019 | *flags |= V4L2_CTRL_FLAG_READ_ONLY | V4L2_CTRL_FLAG_WRITE_ONLY; |
@@ -1063,6 +1086,10 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type, | |||
1063 | case V4L2_CID_PILOT_TONE_FREQUENCY: | 1086 | case V4L2_CID_PILOT_TONE_FREQUENCY: |
1064 | case V4L2_CID_TUNE_POWER_LEVEL: | 1087 | case V4L2_CID_TUNE_POWER_LEVEL: |
1065 | case V4L2_CID_TUNE_ANTENNA_CAPACITOR: | 1088 | case V4L2_CID_TUNE_ANTENNA_CAPACITOR: |
1089 | case V4L2_CID_RF_TUNER_LNA_GAIN: | ||
1090 | case V4L2_CID_RF_TUNER_MIXER_GAIN: | ||
1091 | case V4L2_CID_RF_TUNER_IF_GAIN: | ||
1092 | case V4L2_CID_RF_TUNER_BANDWIDTH: | ||
1066 | *flags |= V4L2_CTRL_FLAG_SLIDER; | 1093 | *flags |= V4L2_CTRL_FLAG_SLIDER; |
1067 | break; | 1094 | break; |
1068 | case V4L2_CID_PAN_RELATIVE: | 1095 | case V4L2_CID_PAN_RELATIVE: |
@@ -1081,6 +1108,9 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type, | |||
1081 | case V4L2_CID_DV_RX_POWER_PRESENT: | 1108 | case V4L2_CID_DV_RX_POWER_PRESENT: |
1082 | *flags |= V4L2_CTRL_FLAG_READ_ONLY; | 1109 | *flags |= V4L2_CTRL_FLAG_READ_ONLY; |
1083 | break; | 1110 | break; |
1111 | case V4L2_CID_RF_TUNER_PLL_LOCK: | ||
1112 | *flags |= V4L2_CTRL_FLAG_VOLATILE; | ||
1113 | break; | ||
1084 | } | 1114 | } |
1085 | } | 1115 | } |
1086 | EXPORT_SYMBOL(v4l2_ctrl_fill); | 1116 | EXPORT_SYMBOL(v4l2_ctrl_fill); |
@@ -1921,7 +1951,8 @@ void v4l2_ctrl_cluster(unsigned ncontrols, struct v4l2_ctrl **controls) | |||
1921 | int i; | 1951 | int i; |
1922 | 1952 | ||
1923 | /* The first control is the master control and it must not be NULL */ | 1953 | /* The first control is the master control and it must not be NULL */ |
1924 | BUG_ON(ncontrols == 0 || controls[0] == NULL); | 1954 | if (WARN_ON(ncontrols == 0 || controls[0] == NULL)) |
1955 | return; | ||
1925 | 1956 | ||
1926 | for (i = 0; i < ncontrols; i++) { | 1957 | for (i = 0; i < ncontrols; i++) { |
1927 | if (controls[i]) { | 1958 | if (controls[i]) { |