Message ID | 20220831090118.104057-3-benjamin.mugnier@foss.st.com (mailing list archive) |
---|---|
State | Superseded |
Headers |
Received: from vger.kernel.org ([23.128.96.18]) by www.linuxtv.org with esmtp (Exim 4.92) (envelope-from <linux-media-owner@vger.kernel.org>) id 1oTJbc-006jXQ-2S; Wed, 31 Aug 2022 09:01:52 +0000 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231345AbiHaJBu (ORCPT <rfc822;mkrufky@linuxtv.org> + 1 other); Wed, 31 Aug 2022 05:01:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34940 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230458AbiHaJBr (ORCPT <rfc822;linux-media@vger.kernel.org>); Wed, 31 Aug 2022 05:01:47 -0400 Received: from mx07-00178001.pphosted.com (mx08-00178001.pphosted.com [91.207.212.93]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F3EA5BC10E for <linux-media@vger.kernel.org>; Wed, 31 Aug 2022 02:01:45 -0700 (PDT) Received: from pps.filterd (m0046661.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 27V8ClwW015766; Wed, 31 Aug 2022 11:01:35 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=selector1; bh=ABaUSPMcGFQRZBlJJ8VLV4LzmOa70Z6qC2E0EUutZxE=; b=uktGXKGPH1QaEQDZrRmEf7DR3LciwLVMhRTf6Lo2b9sMIzJ7n1Lol+tZ9UuaJrSAM+3b oj1wfe6FxPyWyj+dOVl+fAzUU+729//KZ/+7dlR3IPDv86D29UpTSHyFtKoyKVbQUgZG EY8h/r9meAqC0OhuH9TV9OLISilHB2KbXtW8ZWVvVevcWhWkzei/kJMlbgS68f35vgqO KgYCox9tCgeDYdvGHuxtk0lRjyA8ae3kNM0wtRKsBKIoDZPdeDstxdk0bSTU1+hLe2EC vhCfLdYWZF5GCDW+krUHgmvIoXrlvSRPqoKnIYBm08Kn8Mawg+CrzGaxL7EVqlbLt5XQ MA== Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 3ja3xe8b1y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 31 Aug 2022 11:01:35 +0200 Received: from euls16034.sgp.st.com (euls16034.sgp.st.com [10.75.44.20]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id ACCE8100034; Wed, 31 Aug 2022 11:01:34 +0200 (CEST) Received: from Webmail-eu.st.com (shfdag1node1.st.com [10.75.129.69]) by euls16034.sgp.st.com (STMicroelectronics) with ESMTP id A73B8216ECE; Wed, 31 Aug 2022 11:01:34 +0200 (CEST) Received: from localhost (10.75.127.48) by SHFDAG1NODE1.st.com (10.75.129.69) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.2375.7; Wed, 31 Aug 2022 11:01:34 +0200 From: Benjamin Mugnier <benjamin.mugnier@foss.st.com> To: <linux-media@vger.kernel.org> CC: <alain.volmat@foss.st.com>, <hugues.fruchet@foss.st.com>, <sylvain.petinot@foss.st.com>, <dave.stevenson@raspberrypi.com>, <sakari.ailus@linux.intel.com>, <laurent.pinchart@ideasonboard.com>, <kieran.bingham@ideasonboard.com>, Benjamin Mugnier <benjamin.mugnier@foss.st.com> Subject: [PATCH v5 2/4] media: v4l: ctrls: Add a control for HDR mode Date: Wed, 31 Aug 2022 11:01:16 +0200 Message-ID: <20220831090118.104057-3-benjamin.mugnier@foss.st.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220831090118.104057-1-benjamin.mugnier@foss.st.com> References: <20220831090118.104057-1-benjamin.mugnier@foss.st.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.75.127.48] X-ClientProxiedBy: SFHDAG2NODE3.st.com (10.75.127.6) To SHFDAG1NODE1.st.com (10.75.129.69) X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.517,FMLib:17.11.122.1 definitions=2022-08-31_05,2022-08-31_01,2022-06-22_01 X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-media.vger.kernel.org> X-Mailing-List: linux-media@vger.kernel.org X-LSpam-Score: -2.5 (--) X-LSpam-Report: No, score=-2.5 required=5.0 tests=BAYES_00=-1.9,DKIM_SIGNED=0.1,DKIM_VALID=-0.1,DKIM_VALID_AU=-0.1,HEADER_FROM_DIFFERENT_DOMAINS=0.5,MAILING_LIST_MULTI=-1 autolearn=ham autolearn_force=no |
Series |
media: Add ST VGXY61 camera sensor driver
|
|
Commit Message
Benjamin Mugnier
Aug. 31, 2022, 9:01 a.m. UTC
Add V4L2_CID_HDR_MODE as a menu item control to set the HDR mode of the
sensor, and its documentation.
Menu items are not standardized as they differ for each sensors.
Signed-off-by: Benjamin Mugnier <benjamin.mugnier@foss.st.com>
---
.../userspace-api/media/v4l/ext-ctrls-camera.rst | 8 ++++++++
drivers/media/v4l2-core/v4l2-ctrls-defs.c | 2 ++
include/uapi/linux/v4l2-controls.h | 2 ++
3 files changed, 12 insertions(+)
Comments
Hi Benjamin, Le mercredi 31 août 2022 à 11:01 +0200, Benjamin Mugnier a écrit : > Add V4L2_CID_HDR_MODE as a menu item control to set the HDR mode of the > sensor, and its documentation. > Menu items are not standardized as they differ for each sensors. > > Signed-off-by: Benjamin Mugnier <benjamin.mugnier@foss.st.com> > --- > .../userspace-api/media/v4l/ext-ctrls-camera.rst | 8 ++++++++ > drivers/media/v4l2-core/v4l2-ctrls-defs.c | 2 ++ > include/uapi/linux/v4l2-controls.h | 2 ++ > 3 files changed, 12 insertions(+) > > diff --git a/Documentation/userspace-api/media/v4l/ext-ctrls-camera.rst b/Documentation/userspace-api/media/v4l/ext-ctrls-camera.rst > index 4c5061aa9cd4..0ee09ff250e7 100644 > --- a/Documentation/userspace-api/media/v4l/ext-ctrls-camera.rst > +++ b/Documentation/userspace-api/media/v4l/ext-ctrls-camera.rst > @@ -661,3 +661,11 @@ enum v4l2_scene_mode - > .. [#f1] > This control may be changed to a menu control in the future, if more > options are required. > + > +``V4L2_CID_HDR_MODE (menu)`` Perhaps try to make this more sensor specific in it name ? V4L2_CID_HDR_SENSOR_MODE ? > + Change the sensor HDR mode. A HDR picture is obtained by merging two > + captures of the same scene using two different exposure periods. HDR mode > + describes the way these two captures are merged in the sensor. > + > + As modes differ for each sensor, menu items are not standardized by this > + control and are left to the programmer. I do have concern about this approach. Can you clarify ? regards, Nicolas > diff --git a/drivers/media/v4l2-core/v4l2-ctrls-defs.c b/drivers/media/v4l2-core/v4l2-ctrls-defs.c > index e22921e7ea61..0854de1ef1a5 100644 > --- a/drivers/media/v4l2-core/v4l2-ctrls-defs.c > +++ b/drivers/media/v4l2-core/v4l2-ctrls-defs.c > @@ -1043,6 +1043,7 @@ const char *v4l2_ctrl_get_name(u32 id) > case V4L2_CID_UNIT_CELL_SIZE: return "Unit Cell Size"; > case V4L2_CID_CAMERA_ORIENTATION: return "Camera Orientation"; > case V4L2_CID_CAMERA_SENSOR_ROTATION: return "Camera Sensor Rotation"; > + case V4L2_CID_HDR_MODE: return "HDR mode"; > > /* FM Radio Modulator controls */ > /* Keep the order of the 'case's the same as in v4l2-controls.h! */ > @@ -1370,6 +1371,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type, > case V4L2_CID_STATELESS_H264_START_CODE: > case V4L2_CID_CAMERA_ORIENTATION: > case V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE: > + case V4L2_CID_HDR_MODE: > *type = V4L2_CTRL_TYPE_MENU; > break; > case V4L2_CID_LINK_FREQ: > diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h > index 5f46bf4a570c..5dfd38b09768 100644 > --- a/include/uapi/linux/v4l2-controls.h > +++ b/include/uapi/linux/v4l2-controls.h > @@ -1013,6 +1013,8 @@ enum v4l2_auto_focus_range { > > #define V4L2_CID_CAMERA_SENSOR_ROTATION (V4L2_CID_CAMERA_CLASS_BASE+35) > > +#define V4L2_CID_HDR_MODE (V4L2_CID_CAMERA_CLASS_BASE+36) > + > /* FM Modulator class control IDs */ > > #define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900)
Hi Nicolas, Thank you for your review. On 9/12/22 17:51, Nicolas Dufresne wrote: > Hi Benjamin, > > Le mercredi 31 août 2022 à 11:01 +0200, Benjamin Mugnier a écrit : >> Add V4L2_CID_HDR_MODE as a menu item control to set the HDR mode of the >> sensor, and its documentation. >> Menu items are not standardized as they differ for each sensors. >> >> Signed-off-by: Benjamin Mugnier <benjamin.mugnier@foss.st.com> >> --- >> .../userspace-api/media/v4l/ext-ctrls-camera.rst | 8 ++++++++ >> drivers/media/v4l2-core/v4l2-ctrls-defs.c | 2 ++ >> include/uapi/linux/v4l2-controls.h | 2 ++ >> 3 files changed, 12 insertions(+) >> >> diff --git a/Documentation/userspace-api/media/v4l/ext-ctrls-camera.rst b/Documentation/userspace-api/media/v4l/ext-ctrls-camera.rst >> index 4c5061aa9cd4..0ee09ff250e7 100644 >> --- a/Documentation/userspace-api/media/v4l/ext-ctrls-camera.rst >> +++ b/Documentation/userspace-api/media/v4l/ext-ctrls-camera.rst >> @@ -661,3 +661,11 @@ enum v4l2_scene_mode - >> .. [#f1] >> This control may be changed to a menu control in the future, if more >> options are required. >> + >> +``V4L2_CID_HDR_MODE (menu)`` > > Perhaps try to make this more sensor specific in it name ? > V4L2_CID_HDR_SENSOR_MODE ? > No problem, queued for v6. Thank you. >> + Change the sensor HDR mode. A HDR picture is obtained by merging two >> + captures of the same scene using two different exposure periods. HDR mode >> + describes the way these two captures are merged in the sensor. >> + >> + As modes differ for each sensor, menu items are not standardized by this >> + control and are left to the programmer. > > I do have concern about this approach. Can you clarify ? > Sure! This is the implementation of Sakari's excellent idea from v3 which you can read here: https://lore.kernel.org/linux-media/YwNcUpsw1psudCOC@paasikivi.fi.intel.com/ The control name is standardized as a menu type, but values of the menu or not. The driver developer has to provide them by himself in its driver when adding the control. This is pretty versatile as hdr modes differ from one sensor to another (at least for my cases). For the vgxy61 I defined these hdr modes in the driver file: +static const char * const vgxy61_hdr_mode_menu[] = { + "HDR linearize", + "HDR substraction", + "No HDR", +}; and added these elements to the V4L2_CID_HDR_MODE control with a std_menu_items in the vgxy61_init_controls function: + v4l2_ctrl_new_std_menu_items(hdl, ops, V4L2_CID_HDR_MODE, + ARRAY_SIZE(vgxy61_hdr_mode_menu) - 1, 0, + VGXY61_NO_HDR, vgxy61_hdr_mode_menu); I hope this is clearer. This implementation can of course be discussed. Tell me what you think. Regards, Benjamin > regards, > Nicolas > >> diff --git a/drivers/media/v4l2-core/v4l2-ctrls-defs.c b/drivers/media/v4l2-core/v4l2-ctrls-defs.c >> index e22921e7ea61..0854de1ef1a5 100644 >> --- a/drivers/media/v4l2-core/v4l2-ctrls-defs.c >> +++ b/drivers/media/v4l2-core/v4l2-ctrls-defs.c >> @@ -1043,6 +1043,7 @@ const char *v4l2_ctrl_get_name(u32 id) >> case V4L2_CID_UNIT_CELL_SIZE: return "Unit Cell Size"; >> case V4L2_CID_CAMERA_ORIENTATION: return "Camera Orientation"; >> case V4L2_CID_CAMERA_SENSOR_ROTATION: return "Camera Sensor Rotation"; >> + case V4L2_CID_HDR_MODE: return "HDR mode"; >> >> /* FM Radio Modulator controls */ >> /* Keep the order of the 'case's the same as in v4l2-controls.h! */ >> @@ -1370,6 +1371,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type, >> case V4L2_CID_STATELESS_H264_START_CODE: >> case V4L2_CID_CAMERA_ORIENTATION: >> case V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE: >> + case V4L2_CID_HDR_MODE: >> *type = V4L2_CTRL_TYPE_MENU; >> break; >> case V4L2_CID_LINK_FREQ: >> diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h >> index 5f46bf4a570c..5dfd38b09768 100644 >> --- a/include/uapi/linux/v4l2-controls.h >> +++ b/include/uapi/linux/v4l2-controls.h >> @@ -1013,6 +1013,8 @@ enum v4l2_auto_focus_range { >> >> #define V4L2_CID_CAMERA_SENSOR_ROTATION (V4L2_CID_CAMERA_CLASS_BASE+35) >> >> +#define V4L2_CID_HDR_MODE (V4L2_CID_CAMERA_CLASS_BASE+36) >> + >> /* FM Modulator class control IDs */ >> >> #define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900) >
Hi, Le jeudi 15 septembre 2022 à 09:29 +0200, Benjamin MUGNIER a écrit : > Hi Nicolas, > > Thank you for your review. > > On 9/12/22 17:51, Nicolas Dufresne wrote: > > Hi Benjamin, > > > > Le mercredi 31 août 2022 à 11:01 +0200, Benjamin Mugnier a écrit : > > > Add V4L2_CID_HDR_MODE as a menu item control to set the HDR mode of the > > > sensor, and its documentation. > > > Menu items are not standardized as they differ for each sensors. > > > > > > Signed-off-by: Benjamin Mugnier <benjamin.mugnier@foss.st.com> > > > --- > > > .../userspace-api/media/v4l/ext-ctrls-camera.rst | 8 ++++++++ > > > drivers/media/v4l2-core/v4l2-ctrls-defs.c | 2 ++ > > > include/uapi/linux/v4l2-controls.h | 2 ++ > > > 3 files changed, 12 insertions(+) > > > > > > diff --git a/Documentation/userspace-api/media/v4l/ext-ctrls-camera.rst b/Documentation/userspace-api/media/v4l/ext-ctrls-camera.rst > > > index 4c5061aa9cd4..0ee09ff250e7 100644 > > > --- a/Documentation/userspace-api/media/v4l/ext-ctrls-camera.rst > > > +++ b/Documentation/userspace-api/media/v4l/ext-ctrls-camera.rst > > > @@ -661,3 +661,11 @@ enum v4l2_scene_mode - > > > .. [#f1] > > > This control may be changed to a menu control in the future, if more > > > options are required. > > > + > > > +``V4L2_CID_HDR_MODE (menu)`` > > > > Perhaps try to make this more sensor specific in it name ? > > V4L2_CID_HDR_SENSOR_MODE ? > > > > No problem, queued for v6. Thank you. > > > > + Change the sensor HDR mode. A HDR picture is obtained by merging two > > > + captures of the same scene using two different exposure periods. HDR mode > > > + describes the way these two captures are merged in the sensor. > > > + > > > + As modes differ for each sensor, menu items are not standardized by this > > > + control and are left to the programmer. > > > > I do have concern about this approach. Can you clarify ? > > > > Sure! This is the implementation of Sakari's excellent idea from v3 which you can read here: > https://lore.kernel.org/linux-media/YwNcUpsw1psudCOC@paasikivi.fi.intel.com/ > > The control name is standardized as a menu type, but values of the menu or not. The driver developer has to provide them by himself in its driver when adding the control. This is pretty versatile as hdr modes differ from one sensor to another (at least for my cases). > For the vgxy61 I defined these hdr modes in the driver file: > > +static const char * const vgxy61_hdr_mode_menu[] = { > + "HDR linearize", > + "HDR substraction", > + "No HDR", > +}; > > and added these elements to the V4L2_CID_HDR_MODE control with a std_menu_items in the vgxy61_init_controls function: > > + v4l2_ctrl_new_std_menu_items(hdl, ops, V4L2_CID_HDR_MODE, > + ARRAY_SIZE(vgxy61_hdr_mode_menu) - 1, 0, > + VGXY61_NO_HDR, vgxy61_hdr_mode_menu); > > I hope this is clearer. > This implementation can of course be discussed. Tell me what you think. Just food for the mind, this is going to be HW specific. If we go that way, I'd like to adopt a rule similar to DRM, that for these type of controls there must be an Open Source userland users of it. I'm sure you'd have no issue with that. The downside is that we no longer have a place to extend on the HW specific documentation/knowledge, which often endup lost. How is that approach better then having multiple vendor controls ? (Perhaps there is family of censors that could possibly share some of the controls and we'd have a common place to document the exact meaning of the menu items). > > > Regards, > > Benjamin > > > regards, > > Nicolas > > > > > diff --git a/drivers/media/v4l2-core/v4l2-ctrls-defs.c b/drivers/media/v4l2-core/v4l2-ctrls-defs.c > > > index e22921e7ea61..0854de1ef1a5 100644 > > > --- a/drivers/media/v4l2-core/v4l2-ctrls-defs.c > > > +++ b/drivers/media/v4l2-core/v4l2-ctrls-defs.c > > > @@ -1043,6 +1043,7 @@ const char *v4l2_ctrl_get_name(u32 id) > > > case V4L2_CID_UNIT_CELL_SIZE: return "Unit Cell Size"; > > > case V4L2_CID_CAMERA_ORIENTATION: return "Camera Orientation"; > > > case V4L2_CID_CAMERA_SENSOR_ROTATION: return "Camera Sensor Rotation"; > > > + case V4L2_CID_HDR_MODE: return "HDR mode"; > > > > > > /* FM Radio Modulator controls */ > > > /* Keep the order of the 'case's the same as in v4l2-controls.h! */ > > > @@ -1370,6 +1371,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type, > > > case V4L2_CID_STATELESS_H264_START_CODE: > > > case V4L2_CID_CAMERA_ORIENTATION: > > > case V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE: > > > + case V4L2_CID_HDR_MODE: > > > *type = V4L2_CTRL_TYPE_MENU; > > > break; > > > case V4L2_CID_LINK_FREQ: > > > diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h > > > index 5f46bf4a570c..5dfd38b09768 100644 > > > --- a/include/uapi/linux/v4l2-controls.h > > > +++ b/include/uapi/linux/v4l2-controls.h > > > @@ -1013,6 +1013,8 @@ enum v4l2_auto_focus_range { > > > > > > #define V4L2_CID_CAMERA_SENSOR_ROTATION (V4L2_CID_CAMERA_CLASS_BASE+35) > > > > > > +#define V4L2_CID_HDR_MODE (V4L2_CID_CAMERA_CLASS_BASE+36) > > > + > > > /* FM Modulator class control IDs */ > > > > > > #define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900) > >
diff --git a/Documentation/userspace-api/media/v4l/ext-ctrls-camera.rst b/Documentation/userspace-api/media/v4l/ext-ctrls-camera.rst index 4c5061aa9cd4..0ee09ff250e7 100644 --- a/Documentation/userspace-api/media/v4l/ext-ctrls-camera.rst +++ b/Documentation/userspace-api/media/v4l/ext-ctrls-camera.rst @@ -661,3 +661,11 @@ enum v4l2_scene_mode - .. [#f1] This control may be changed to a menu control in the future, if more options are required. + +``V4L2_CID_HDR_MODE (menu)`` + Change the sensor HDR mode. A HDR picture is obtained by merging two + captures of the same scene using two different exposure periods. HDR mode + describes the way these two captures are merged in the sensor. + + As modes differ for each sensor, menu items are not standardized by this + control and are left to the programmer. diff --git a/drivers/media/v4l2-core/v4l2-ctrls-defs.c b/drivers/media/v4l2-core/v4l2-ctrls-defs.c index e22921e7ea61..0854de1ef1a5 100644 --- a/drivers/media/v4l2-core/v4l2-ctrls-defs.c +++ b/drivers/media/v4l2-core/v4l2-ctrls-defs.c @@ -1043,6 +1043,7 @@ const char *v4l2_ctrl_get_name(u32 id) case V4L2_CID_UNIT_CELL_SIZE: return "Unit Cell Size"; case V4L2_CID_CAMERA_ORIENTATION: return "Camera Orientation"; case V4L2_CID_CAMERA_SENSOR_ROTATION: return "Camera Sensor Rotation"; + case V4L2_CID_HDR_MODE: return "HDR mode"; /* FM Radio Modulator controls */ /* Keep the order of the 'case's the same as in v4l2-controls.h! */ @@ -1370,6 +1371,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type, case V4L2_CID_STATELESS_H264_START_CODE: case V4L2_CID_CAMERA_ORIENTATION: case V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE: + case V4L2_CID_HDR_MODE: *type = V4L2_CTRL_TYPE_MENU; break; case V4L2_CID_LINK_FREQ: diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h index 5f46bf4a570c..5dfd38b09768 100644 --- a/include/uapi/linux/v4l2-controls.h +++ b/include/uapi/linux/v4l2-controls.h @@ -1013,6 +1013,8 @@ enum v4l2_auto_focus_range { #define V4L2_CID_CAMERA_SENSOR_ROTATION (V4L2_CID_CAMERA_CLASS_BASE+35) +#define V4L2_CID_HDR_MODE (V4L2_CID_CAMERA_CLASS_BASE+36) + /* FM Modulator class control IDs */ #define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900)