diff --git a/[refs] b/[refs]
index 11d93a26d96d..b87add9dfe4c 100644
--- a/[refs]
+++ b/[refs]
@@ -1,2 +1,2 @@
---
-refs/heads/master: 4163851f7b997e24602cad8e0eae96d31a252548
+refs/heads/master: fc39f46b54b600f053bf9bab757023344e97925e
diff --git a/trunk/Documentation/DocBook/media/v4l/controls.xml b/trunk/Documentation/DocBook/media/v4l/controls.xml
index c8eb6c222274..8d7a77928d49 100644
--- a/trunk/Documentation/DocBook/media/v4l/controls.xml
+++ b/trunk/Documentation/DocBook/media/v4l/controls.xml
@@ -3142,6 +3142,13 @@ giving priority to the center of the metered area.
V4L2_EXPOSURE_METERING_SPOT
Measure only very small area at the center of the frame.
+
+ V4L2_EXPOSURE_METERING_MATRIX
+ A multi-zone metering. The light intensity is measured
+in several points of the frame and the the results are combined. The
+algorithm of the zones selection and their significance in calculating the
+final value is device dependant.
+
diff --git a/trunk/drivers/media/v4l2-core/v4l2-ctrls.c b/trunk/drivers/media/v4l2-core/v4l2-ctrls.c
index ec89fd16361c..ebb8e48619a2 100644
--- a/trunk/drivers/media/v4l2-core/v4l2-ctrls.c
+++ b/trunk/drivers/media/v4l2-core/v4l2-ctrls.c
@@ -234,6 +234,7 @@ const char * const *v4l2_ctrl_get_menu(u32 id)
"Average",
"Center Weighted",
"Spot",
+ "Matrix",
NULL
};
static const char * const camera_auto_focus_range[] = {
diff --git a/trunk/include/uapi/linux/v4l2-controls.h b/trunk/include/uapi/linux/v4l2-controls.h
index 7da22cec30cd..69bd5bb0d5af 100644
--- a/trunk/include/uapi/linux/v4l2-controls.h
+++ b/trunk/include/uapi/linux/v4l2-controls.h
@@ -658,6 +658,7 @@ enum v4l2_exposure_metering {
V4L2_EXPOSURE_METERING_AVERAGE = 0,
V4L2_EXPOSURE_METERING_CENTER_WEIGHTED = 1,
V4L2_EXPOSURE_METERING_SPOT = 2,
+ V4L2_EXPOSURE_METERING_MATRIX = 3,
};
#define V4L2_CID_SCENE_MODE (V4L2_CID_CAMERA_CLASS_BASE+26)