From patchwork Thu Jul 22 12:12:48 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Plowman X-Patchwork-Id: 75923 X-Patchwork-Delegate: sakari.ailus@iki.fi Received: from vger.kernel.org ([23.128.96.18]) by www.linuxtv.org with esmtp (Exim 4.92) (envelope-from ) id 1m6XZe-000bRz-Jy; Thu, 22 Jul 2021 12:13:12 +0000 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231838AbhGVLca (ORCPT + 1 other); Thu, 22 Jul 2021 07:32:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42524 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231823AbhGVLc2 (ORCPT ); Thu, 22 Jul 2021 07:32:28 -0400 Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com [IPv6:2a00:1450:4864:20::32e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 95A13C061575 for ; Thu, 22 Jul 2021 05:13:03 -0700 (PDT) Received: by mail-wm1-x32e.google.com with SMTP id k14-20020a05600c1c8eb02901f13dd1672aso2411580wms.0 for ; Thu, 22 Jul 2021 05:13:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=vnR2lUf9gTQzwDBNDeTwAed1gYoD0FTWfr1g0VBZfns=; b=k0oJgwuknwFUDCg0GGpoWtKovAYgwWXb4db47EO0FJxY9ZxA2qixP/25/7iqIuIccN Zj7MPUo1c9cI9CivuaiOUqzOrfkAZl3yW8jIo1GIz/wdHpi1cCYg0/2EY7RNxHTmbMWU DWFC1zSyCmAreKeuedL+W4WUpNzLSYCaz1SFx/uglGeJUxtqD5AKdjftzMpD8casNTDU ReEUjAgyyev+riMVV6h2v8YaxVLjBjdpo8qnDMQnsfnMjplkSkNiR8yuNe6ZYOfNti40 hvvkPrI7++dg0JFb4DIkBEzcsTGwDbOgwIZFoPOhOSGpaFmz4IjOVPJ+76PUNg46wxq1 FRbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=vnR2lUf9gTQzwDBNDeTwAed1gYoD0FTWfr1g0VBZfns=; b=eP5TX6nXzV30Kni1QEBvokCmdqoraI6DpTrZ5qTckIlcDyWK5IMQXr0Y7VtAma8dtC NtFggEw0wQdJqVDsbicF3P4U0mqSaz1Uy+ePuqbEfs/UksN/j0q9hkvK6Ut/07vYWeH6 waKS4obLClTDGaEggRHmFBvBSH4n7GLOwdMaf4T7/D27Rttwd+vLayZf8GdCAooMIexT 31fFYv6tjvUk0KjsHgW8DJBaghw/YjDUHofkUcpvOwPOegrTAoAr2wHyJOjGFcPocjxG aUy3luxdO0p/M8qA5vFGGXCSKzwmvfsP5mAD7EarMd+SQBiwen/UPqtM/F5yoQ3duR0v xM/A== X-Gm-Message-State: AOAM533WqrLgfUTmkk5PqolCaIFmoJHtWuokFvDU45eBsgXfWbefdtaS w+HF3m1eodGtYOBeaPZGtLs0XcYpwwIbpg== X-Google-Smtp-Source: ABdhPJw6vfoqPlVKw0bQzV6Eo0KnupMH4vFSV2UclbHr0ddzhEoClMO/NE2Bt4wB4INYyi5tB6ESnA== X-Received: by 2002:a1c:790a:: with SMTP id l10mr42552147wme.8.1626955981950; Thu, 22 Jul 2021 05:13:01 -0700 (PDT) Received: from davidp-xps-13.pitowers.org ([2a00:1098:3142:14:b918:b36f:9ba:b778]) by smtp.gmail.com with ESMTPSA id e8sm8448228wrc.6.2021.07.22.05.13.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 Jul 2021 05:13:01 -0700 (PDT) From: David Plowman To: linux-media@vger.kernel.org, sakari.ailus@iki.fi, Laurent Pinchart , Kieran Bingham , Mauro Carvalho Chehab , Hans Verkuil Cc: David Plowman Subject: [PATCH v3 1/2] media: v4l2-ctrls: Add V4L2_CID_NOTIFY_GAIN_XXX controls Date: Thu, 22 Jul 2021 13:12:48 +0100 Message-Id: <20210722121249.16483-2-david.plowman@raspberrypi.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210722121249.16483-1-david.plowman@raspberrypi.com> References: <20210722121249.16483-1-david.plowman@raspberrypi.com> MIME-Version: 1.0 Precedence: bulk List-ID: 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,RCVD_IN_DNSWL_NONE=-0.0001 autolearn=ham autolearn_force=no We add new controls, one for each of the four usual Bayer channels: V4L2_CID_NOTIFY_GAIN_RED V4L2_CID_NOTIFY_GAIN_GREENR V4L2_CID_NOTIFY_GAIN_BLUE V4L2_CID_NOTIFY_GAIN_GREENB These are provided for sensors that need to know what colour gains will be applied to the Bayer channel by subsequent processing (such as by an ISP), even though the sensor will not apply this gain itself. The units are linear with the default value indicating a gain of exactly 1. Signed-off-by: David Plowman Reviewed-by: Hans Verkuil --- drivers/media/v4l2-core/v4l2-ctrls-defs.c | 4 ++++ include/uapi/linux/v4l2-controls.h | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/drivers/media/v4l2-core/v4l2-ctrls-defs.c b/drivers/media/v4l2-core/v4l2-ctrls-defs.c index b6344bbf1e00..12c810cd4ae6 100644 --- a/drivers/media/v4l2-core/v4l2-ctrls-defs.c +++ b/drivers/media/v4l2-core/v4l2-ctrls-defs.c @@ -1106,6 +1106,10 @@ const char *v4l2_ctrl_get_name(u32 id) case V4L2_CID_TEST_PATTERN_GREENR: return "Green (Red) Pixel Value"; case V4L2_CID_TEST_PATTERN_BLUE: return "Blue Pixel Value"; case V4L2_CID_TEST_PATTERN_GREENB: return "Green (Blue) Pixel Value"; + case V4L2_CID_NOTIFY_GAIN_RED: return "Notify Red Gain"; + case V4L2_CID_NOTIFY_GAIN_GREENR: return "Notify Green (Red) Gain"; + case V4L2_CID_NOTIFY_GAIN_BLUE: return "Notify Blue Gain"; + case V4L2_CID_NOTIFY_GAIN_GREENB: return "Notify Green (Blue) Gain"; /* Image processing controls */ /* Keep the order of the 'case's the same as in v4l2-controls.h! */ diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h index fdf97a6d7d18..711930bb54f0 100644 --- a/include/uapi/linux/v4l2-controls.h +++ b/include/uapi/linux/v4l2-controls.h @@ -1117,6 +1117,10 @@ enum v4l2_jpeg_chroma_subsampling { #define V4L2_CID_TEST_PATTERN_BLUE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6) #define V4L2_CID_TEST_PATTERN_GREENB (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7) #define V4L2_CID_UNIT_CELL_SIZE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8) +#define V4L2_CID_NOTIFY_GAIN_RED (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 9) +#define V4L2_CID_NOTIFY_GAIN_GREENR (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 10) +#define V4L2_CID_NOTIFY_GAIN_BLUE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 11) +#define V4L2_CID_NOTIFY_GAIN_GREENB (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 12) /* Image processing controls */ From patchwork Thu Jul 22 12:12:49 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Plowman X-Patchwork-Id: 75924 X-Patchwork-Delegate: sakari.ailus@iki.fi Received: from vger.kernel.org ([23.128.96.18]) by www.linuxtv.org with esmtp (Exim 4.92) (envelope-from ) id 1m6XZh-000bRz-5k; Thu, 22 Jul 2021 12:13:14 +0000 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231830AbhGVLce (ORCPT + 1 other); Thu, 22 Jul 2021 07:32:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42526 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231826AbhGVLc3 (ORCPT ); Thu, 22 Jul 2021 07:32:29 -0400 Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com [IPv6:2a00:1450:4864:20::429]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 43AF0C061575 for ; Thu, 22 Jul 2021 05:13:04 -0700 (PDT) Received: by mail-wr1-x429.google.com with SMTP id k4so5699413wrc.8 for ; Thu, 22 Jul 2021 05:13:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=mncn1LcgKDTMYAOw1LqPaDbPls59/gAmcd0XhWZpuA0=; b=PSPdsAnyMY5YHTC5svsNCg83BJeayuLwNiKcYarcu6swHOzng6eC44jll52V8L28df 5sGWE9GoEKsInFd6xq7LDCnvCgIEOeVpJM+WP5bN0kSiS6Kjpb9m71xwEnG/uAwt+bsd sJZaw4gqt52ojyBmfUHYuqbhEDzifPGdkGsKA6+wBE7tYwOCe6fvC0NJSKiEL740HmJo KA6mHl7bK9rxOS0fPNijC/B7DJZk45UKXnl6IIfYwPdAL4zGOAfUQDHvHDztcOg469nD yk0JDT1BPHTwWwyD1cU9y0s1aih42fV5oAjBuR/6T0IUJjOoBFJ43Cg5hmeKJdIoeOKl ofIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=mncn1LcgKDTMYAOw1LqPaDbPls59/gAmcd0XhWZpuA0=; b=t0JwTB2ADznCgBeAyVHz05GkaEfuRDa1o5KL7bELZiwUlV14Rp996TuDn7R5hHWAy0 umPWcyUJmTQv0+8mtQUAvoz/1EFVzZTTDCnhfHU2uT1YRlYO0k9N5TwYz7Jq6khyJNFZ 5wP51QlH1uNIBW7d6rgzjESsWzEdCVku0IXCDQ5tIMF3JQ9WobctJ830xinWE2wuzRfG 1UBlfpZJcBZFhFhlBHui01gX8lVfoWtKgjzqyRnGDlQ+c8QPC3VQtkZO2aDayxcJq+Jn XcuwcTRTxHWn0vCZvZRc3uYYK4HazEZ2mnVjNxEXaL3mluENbD7VRyuwW5hUCkfkDWpA XIdw== X-Gm-Message-State: AOAM533MnV1lokK/6dbHGQdA9973aWD9KTq4R7OIG/JAjrNope/+Z2bh r54JQxX/hJVaxVIoS+dktsEDK9rI4L8JLg== X-Google-Smtp-Source: ABdhPJzKQ/a55jqLrSruHHGIvgpSznPYEl0ExN2JrsP+oEwuYY3usJdWA0oSNwSq+1KdwBa5gxxmAw== X-Received: by 2002:a5d:4561:: with SMTP id a1mr46860919wrc.259.1626955982724; Thu, 22 Jul 2021 05:13:02 -0700 (PDT) Received: from davidp-xps-13.pitowers.org ([2a00:1098:3142:14:b918:b36f:9ba:b778]) by smtp.gmail.com with ESMTPSA id e8sm8448228wrc.6.2021.07.22.05.13.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 Jul 2021 05:13:02 -0700 (PDT) From: David Plowman To: linux-media@vger.kernel.org, sakari.ailus@iki.fi, Laurent Pinchart , Kieran Bingham , Mauro Carvalho Chehab , Hans Verkuil Cc: David Plowman Subject: [PATCH v3 2/2] media: v4l2-ctrls: Document V4L2_CID_NOTIFY_GAIN_XXX controls Date: Thu, 22 Jul 2021 13:12:49 +0100 Message-Id: <20210722121249.16483-3-david.plowman@raspberrypi.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210722121249.16483-1-david.plowman@raspberrypi.com> References: <20210722121249.16483-1-david.plowman@raspberrypi.com> MIME-Version: 1.0 Precedence: bulk List-ID: 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,RCVD_IN_DNSWL_NONE=-0.0001 autolearn=ham autolearn_force=no Add documentation for each of the controls V4L2_CID_NOTIFY_GAIN_RED V4L2_CID_NOTIFY_GAIN_GREENR V4L2_CID_NOTIFY_GAIN_BLUE V4L2_CID_NOTIFY_GAIN_GREENB These controls are required by sensors that need to know what colour gains will be applied to pixels by downstream processing (such as by an ISP), though the sensor does not apply these gains itself. Signed-off-by: David Plowman Reviewed-by: Hans Verkuil --- .../media/v4l/ext-ctrls-image-source.rst | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/Documentation/userspace-api/media/v4l/ext-ctrls-image-source.rst b/Documentation/userspace-api/media/v4l/ext-ctrls-image-source.rst index de43f5c8486d..d50b56156a8e 100644 --- a/Documentation/userspace-api/media/v4l/ext-ctrls-image-source.rst +++ b/Documentation/userspace-api/media/v4l/ext-ctrls-image-source.rst @@ -72,3 +72,28 @@ Image Source Control IDs * - __u32 - ``height`` - Height of the area. + +``V4L2_CID_NOTIFY_GAIN_RED (integer)`` + Please refer to ``V4L2_CID_NOTIFY_GAIN_GREENB`` below. + +``V4L2_CID_NOTIFY_GAIN_GREENR (integer)`` + Please refer to ``V4L2_CID_NOTIFY_GAIN_GREENB`` below. + +``V4L2_CID_NOTIFY_GAIN_BLUE (integer)`` + Please refer to ``V4L2_CID_NOTIFY_GAIN_GREENB`` below. + +``V4L2_CID_NOTIFY_GAIN_GREENB (integer)`` + Note: this description covers all four ``V4L2_CID_NOTIFY_GAIN`` + controls, according to the Bayer channel indicated at the end of + the control name. + + The sensor is notified what gain will be applied to this Bayer + channel by subsequent processing (such as by an ISP). The sensor + is merely informed of this value in case it performs processing + that requires it, but it does not apply it to the output pixels + themselves. + + The units for the gain value are linear, with the default value + being shared between all four controls and representing a gain of + exactly 1. Other control properties, such as ranges, should also + be common.