aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/DocBook/media/v4l/biblio.xml11
-rw-r--r--Documentation/DocBook/media/v4l/controls.xml38
-rw-r--r--drivers/media/video/v4l2-ctrls.c11
-rw-r--r--include/linux/videodev2.h7
4 files changed, 67 insertions, 0 deletions
diff --git a/Documentation/DocBook/media/v4l/biblio.xml b/Documentation/DocBook/media/v4l/biblio.xml
index 7dc65c592a87..66a0ef251c79 100644
--- a/Documentation/DocBook/media/v4l/biblio.xml
+++ b/Documentation/DocBook/media/v4l/biblio.xml
@@ -197,4 +197,15 @@ in the frequency range from 87,5 to 108,0 MHz</title>
197 <title>NTSC-4: United States RBDS Standard</title> 197 <title>NTSC-4: United States RBDS Standard</title>
198 </biblioentry> 198 </biblioentry>
199 199
200 <biblioentry id="iso12232">
201 <abbrev>ISO&nbsp;12232:2006</abbrev>
202 <authorgroup>
203 <corpauthor>International Organization for Standardization
204(<ulink url="http://www.iso.org">http://www.iso.org</ulink>)</corpauthor>
205 </authorgroup>
206 <title>Photography &mdash; Digital still cameras &mdash; Determination
207 of exposure index, ISO speed ratings, standard output sensitivity, and
208 recommended exposure index</title>
209 </biblioentry>
210
200 </bibliography> 211 </bibliography>
diff --git a/Documentation/DocBook/media/v4l/controls.xml b/Documentation/DocBook/media/v4l/controls.xml
index 74876b423bc3..8fccfe1b2058 100644
--- a/Documentation/DocBook/media/v4l/controls.xml
+++ b/Documentation/DocBook/media/v4l/controls.xml
@@ -3117,6 +3117,44 @@ control in the future, if more options are required.</para></footnote></entry>
3117 </row> 3117 </row>
3118 <row><entry></entry></row> 3118 <row><entry></entry></row>
3119 3119
3120 <row>
3121 <entry spanname="id"><constant>V4L2_CID_ISO_SENSITIVITY</constant>&nbsp;</entry>
3122 <entry>integer menu</entry>
3123 </row><row><entry spanname="descr">Determines ISO equivalent of an
3124image sensor indicating the sensor's sensitivity to light. The numbers are
3125expressed in arithmetic scale, as per <xref linkend="iso12232" /> standard,
3126where doubling the sensor sensitivity is represented by doubling the numerical
3127ISO value. Applications should interpret the values as standard ISO values
3128multiplied by 1000, e.g. control value 800 stands for ISO 0.8. Drivers will
3129usually support only a subset of standard ISO values. The effect of setting
3130this control while the <constant>V4L2_CID_ISO_SENSITIVITY_AUTO</constant>
3131control is set to a value other than <constant>V4L2_CID_ISO_SENSITIVITY_MANUAL
3132</constant> is undefined, drivers should ignore such requests.</entry>
3133 </row>
3134 <row><entry></entry></row>
3135
3136 <row id="v4l2-iso-sensitivity-auto-type">
3137 <entry spanname="id"><constant>V4L2_CID_ISO_SENSITIVITY_AUTO</constant>&nbsp;</entry>
3138 <entry>enum&nbsp;v4l2_iso_sensitivity_type</entry>
3139 </row><row><entry spanname="descr">Enables or disables automatic ISO
3140sensitivity adjustments.</entry>
3141 </row>
3142 <row>
3143 <entrytbl spanname="descr" cols="2">
3144 <tbody valign="top">
3145 <row>
3146 <entry><constant>V4L2_CID_ISO_SENSITIVITY_MANUAL</constant>&nbsp;</entry>
3147 <entry>Manual ISO sensitivity.</entry>
3148 </row>
3149 <row>
3150 <entry><constant>V4L2_CID_ISO_SENSITIVITY_AUTO</constant>&nbsp;</entry>
3151 <entry>Automatic ISO sensitivity adjustments.</entry>
3152 </row>
3153 </tbody>
3154 </entrytbl>
3155 </row>
3156 <row><entry></entry></row>
3157
3120 </tbody> 3158 </tbody>
3121 </tgroup> 3159 </tgroup>
3122 </table> 3160 </table>
diff --git a/drivers/media/video/v4l2-ctrls.c b/drivers/media/video/v4l2-ctrls.c
index 2da8b98ac757..debaf9fb9004 100644
--- a/drivers/media/video/v4l2-ctrls.c
+++ b/drivers/media/video/v4l2-ctrls.c
@@ -262,6 +262,11 @@ const char * const *v4l2_ctrl_get_menu(u32 id)
262 "Shade", 262 "Shade",
263 NULL, 263 NULL,
264 }; 264 };
265 static const char * const camera_iso_sensitivity_auto[] = {
266 "Manual",
267 "Auto",
268 NULL
269 };
265 static const char * const tune_preemphasis[] = { 270 static const char * const tune_preemphasis[] = {
266 "No Preemphasis", 271 "No Preemphasis",
267 "50 Microseconds", 272 "50 Microseconds",
@@ -433,6 +438,8 @@ const char * const *v4l2_ctrl_get_menu(u32 id)
433 return colorfx; 438 return colorfx;
434 case V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE: 439 case V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE:
435 return auto_n_preset_white_balance; 440 return auto_n_preset_white_balance;
441 case V4L2_CID_ISO_SENSITIVITY_AUTO:
442 return camera_iso_sensitivity_auto;
436 case V4L2_CID_TUNE_PREEMPHASIS: 443 case V4L2_CID_TUNE_PREEMPHASIS:
437 return tune_preemphasis; 444 return tune_preemphasis;
438 case V4L2_CID_FLASH_LED_MODE: 445 case V4L2_CID_FLASH_LED_MODE:
@@ -623,6 +630,8 @@ const char *v4l2_ctrl_get_name(u32 id)
623 case V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE: return "White Balance, Auto & Preset"; 630 case V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE: return "White Balance, Auto & Preset";
624 case V4L2_CID_WIDE_DYNAMIC_RANGE: return "Wide Dynamic Range"; 631 case V4L2_CID_WIDE_DYNAMIC_RANGE: return "Wide Dynamic Range";
625 case V4L2_CID_IMAGE_STABILIZATION: return "Image Stabilization"; 632 case V4L2_CID_IMAGE_STABILIZATION: return "Image Stabilization";
633 case V4L2_CID_ISO_SENSITIVITY: return "ISO Sensitivity";
634 case V4L2_CID_ISO_SENSITIVITY_AUTO: return "ISO Sensitivity, Auto";
626 635
627 /* FM Radio Modulator control */ 636 /* FM Radio Modulator control */
628 /* Keep the order of the 'case's the same as in videodev2.h! */ 637 /* Keep the order of the 'case's the same as in videodev2.h! */
@@ -773,6 +782,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type,
773 case V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL: 782 case V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL:
774 case V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE: 783 case V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE:
775 case V4L2_CID_JPEG_CHROMA_SUBSAMPLING: 784 case V4L2_CID_JPEG_CHROMA_SUBSAMPLING:
785 case V4L2_CID_ISO_SENSITIVITY_AUTO:
776 *type = V4L2_CTRL_TYPE_MENU; 786 *type = V4L2_CTRL_TYPE_MENU;
777 break; 787 break;
778 case V4L2_CID_LINK_FREQ: 788 case V4L2_CID_LINK_FREQ:
@@ -782,6 +792,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type,
782 case V4L2_CID_RDS_TX_RADIO_TEXT: 792 case V4L2_CID_RDS_TX_RADIO_TEXT:
783 *type = V4L2_CTRL_TYPE_STRING; 793 *type = V4L2_CTRL_TYPE_STRING;
784 break; 794 break;
795 case V4L2_CID_ISO_SENSITIVITY:
785 case V4L2_CID_AUTO_EXPOSURE_BIAS: 796 case V4L2_CID_AUTO_EXPOSURE_BIAS:
786 *type = V4L2_CTRL_TYPE_INTEGER_MENU; 797 *type = V4L2_CTRL_TYPE_INTEGER_MENU;
787 break; 798 break;
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index e94601a7ae5f..593a1bd33111 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -1726,6 +1726,13 @@ enum v4l2_auto_n_preset_white_balance {
1726#define V4L2_CID_WIDE_DYNAMIC_RANGE (V4L2_CID_CAMERA_CLASS_BASE+21) 1726#define V4L2_CID_WIDE_DYNAMIC_RANGE (V4L2_CID_CAMERA_CLASS_BASE+21)
1727#define V4L2_CID_IMAGE_STABILIZATION (V4L2_CID_CAMERA_CLASS_BASE+22) 1727#define V4L2_CID_IMAGE_STABILIZATION (V4L2_CID_CAMERA_CLASS_BASE+22)
1728 1728
1729#define V4L2_CID_ISO_SENSITIVITY (V4L2_CID_CAMERA_CLASS_BASE+23)
1730#define V4L2_CID_ISO_SENSITIVITY_AUTO (V4L2_CID_CAMERA_CLASS_BASE+24)
1731enum v4l2_iso_sensitivity_auto_type {
1732 V4L2_ISO_SENSITIVITY_MANUAL = 0,
1733 V4L2_ISO_SENSITIVITY_AUTO = 1,
1734};
1735
1729/* FM Modulator class control IDs */ 1736/* FM Modulator class control IDs */
1730#define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900) 1737#define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900)
1731#define V4L2_CID_FM_TX_CLASS (V4L2_CTRL_CLASS_FM_TX | 1) 1738#define V4L2_CID_FM_TX_CLASS (V4L2_CTRL_CLASS_FM_TX | 1)