From patchwork Thu Feb 20 23:08:09 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cosmin Tanislav X-Patchwork-Id: 13984590 Received: from mail-ed1-f41.google.com (mail-ed1-f41.google.com [209.85.208.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 087FA264FAF for ; Thu, 20 Feb 2025 23:08:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740092925; cv=none; b=FJ70GDJHAZwgL7ILGA3cF8hYj4cryIXBtufYFmUDAQQWrNHwkUbunR49TpqKaWlypv8iu/FJbOWmQeAttCMqVLJHSzLmj+wh4bGfq8qKp9osePZ9fy4aOt66bwYY4GHFShFabTGV7zY3OdkXXBaB2T4v6Js8DHClRoKDWiBH9n0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740092925; c=relaxed/simple; bh=PZ1DnjTFl18o7jkWFg8lWtATbzYcZDhG5/KGRCkkiUU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=n8PiZi7xEE8bLyFmQTgbV98iylYGO2EVc9ZHmkGFMBmfVyrluDej9bRzrQsU27y7UNHSCw0+D2r5Ok6eEG2nTvT9GnB40oBf6KT8m2PSe+H1u9Xy9FD7uLScEW9dQVA4iVhQYV47BzCI87FkGs+fbC2tU4pBA5L29l29d7iAzcM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=FBD5wJqq; arc=none smtp.client-ip=209.85.208.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="FBD5wJqq" Received: by mail-ed1-f41.google.com with SMTP id 4fb4d7f45d1cf-5e02eba02e8so2014779a12.0 for ; Thu, 20 Feb 2025 15:08:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740092922; x=1740697722; darn=lists.linux.dev; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=NFOJHCDRxWmWioNC6N/UlZoweJhdV9qdoQg8e0aFcrs=; b=FBD5wJqqhk3OJxsiZDPIf7arj0mn/Tq/M/yC+d11iCgEp6RPjJsbTyHzPaxXjawlif o76zfW5arDT5nJgPUlvDDGfn6A0rMZR1qAjH02N+Y4g0bytprdoQ4lpGiUKybbNyPKt+ bEP9PWgXqd2B4KhXDhkzznuVJTv9/mUyHw6SqdSyX8/r3jg3SdkDp+rsM6dq1YcKre7r Xk3quZTypBCTGC6Ms++QAILG04JsBw/3AvPnsn6jIxiQBaSkufTsf2DuG9qJJwNat5N+ NLT26kQZAdwNavPfkrvJbgqbKViLSwztSCQLd7xlxdW/5ADwhDqpj9m8p0GmvWhOqiaA +zrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740092922; x=1740697722; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=NFOJHCDRxWmWioNC6N/UlZoweJhdV9qdoQg8e0aFcrs=; b=bAZ3W3BFnHZvNxK98wb5GCHNDPzhPRl0TtmPvlKLx7TaMCRzPidtu8ehhxHOjXPYkj RmqetppzbJbgdPf/vsamknifD66dOVhiEqTRu8g3WodLS9E0KhmVdw43WF34+dnzMHMS O7Mm1DfA0Qod6pJax2Smceek1m/eiv2uSKpkOSW4djoxuhaJBfT4cDu60uswVkBvgy4+ pMgRyDHDUZTu1RmqZUu5JaIOofB2r9eWug9aSn4hQTe7oiMEi+Hfu8jMAcEyrT14BCl+ wgs+wQWBbJ/6rFjIcF3w4RAl7gsXCBoHIA3VD0weoBIedVRDQXbXOnuXJksH0DlRtT3k 5HmQ== X-Forwarded-Encrypted: i=1; AJvYcCWBhRhF3o2gfRBUmr7+9Lc0eG0iNtMbY/qxNsrKqG1IPGsfNbYjzp4uz7fuHv4eYLMwBLY=@lists.linux.dev X-Gm-Message-State: AOJu0Yyd3aZKraOoEzQ67lFSIDFW+K2fCxMoGwWOYKytQapSM/NUOOI2 SpuO5rdMqt94QVwOBNxHznT9XKqBr+8KMEPdnARKOV3ffMzpiBpL X-Gm-Gg: ASbGncv8J5rXNvdbDcMNq1c6aBUq7Sc3a6GhhOdBp/oov7IRPz93ZqtbfZ0uI3j6xsW XH2KrkrCIZt02XPyeGEAh6IbBBXr588ZjDzJrlmliE3U6nKktmBSinRdGK3e++oUVP+rFsOgE15 MBTAJF0PkVLZTU4g4owxKH0eKRTZSjLrZOL3cE3J7Fp5LCEI0MllkLnsuQu1Jy0j9vSp8sf9TGt p0U6kHgS+Y786INFzOGLRdGwHFAArAzaWvKSuVXRsy6wtI9lZiHc/TyXE14jl60BKldDbDRFWiA xxNBt5RHGWzy4NB9jx6oC8IFjmt1 X-Google-Smtp-Source: AGHT+IG9EAhYRQtFAS88EjfSpO8anFUAbm7p/IUPqkE3ggwd0qucvdpByol+KZZelROudQA+nudZqQ== X-Received: by 2002:a17:907:c284:b0:aba:5f48:eda4 with SMTP id a640c23a62f3a-abc09ab9bcfmr86596366b.25.1740092921968; Thu, 20 Feb 2025 15:08:41 -0800 (PST) Received: from demon-pc.localdomain ([188.27.130.21]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-abb9654a6b2sm909107066b.135.2025.02.20.15.08.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 15:08:41 -0800 (PST) From: Cosmin Tanislav To: Cc: Dave Stevenson , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Sakari Ailus , Laurent Pinchart , linux-media@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Cosmin Tanislav Subject: [PATCH v2 1/6] dt-bindings: media: video-interfaces: add support for Virtual Channel IDs Date: Fri, 21 Feb 2025 01:08:09 +0200 Message-ID: <20250220230818.275262-2-demonsingur@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250220230818.275262-1-demonsingur@gmail.com> References: <20250220230818.275262-1-demonsingur@gmail.com> Precedence: bulk X-Mailing-List: imx@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Multi-camera systems often have issues with receiving video streams from multiple cameras at the same time because the cameras use the same Virtual Channel IDs. CSI bridges might not support remapping the Virtual Channel IDs, making it impossible to receive the separate video streams at the same time, while the CSI receiver is able to de-mux streams based on VC IDs. Cameras sometimes have support for changing the VC IDs they output themselves. For a practical example, GMSL2 deserializer chips do not support VC ID remapping in tunnel mode, and neither do the serializers. Allowing the cameras to have their VC IDs configured would allow multi-camera setups to use tunnel mode. Add support for specifying these Virtual Channel IDs in Video Interface Endpoints. The supported values are 0 to 3, with a maximum of 4 values. Although the CSI-2 specification allows for up to 32 virtual channels, most hardware doesn't support more than 4. This can be extended later if need be. Signed-off-by: Cosmin Tanislav --- .../devicetree/bindings/media/video-interfaces.yaml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Documentation/devicetree/bindings/media/video-interfaces.yaml b/Documentation/devicetree/bindings/media/video-interfaces.yaml index 038e85b45befa..414b5fa8f3472 100644 --- a/Documentation/devicetree/bindings/media/video-interfaces.yaml +++ b/Documentation/devicetree/bindings/media/video-interfaces.yaml @@ -231,6 +231,17 @@ properties: shall be interpreted as 0 (ABC). This property is valid for CSI-2 C-PHY busses only. + vc-ids: + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 1 + maxItems: 4 + items: + maximum: 3 + description: + An array of Virtual Channel IDs. These are unsigned integers that specify + the VC IDs used by the device for its data streams. This property is valid + for MIPI CSI-2 only. + strobe: $ref: /schemas/types.yaml#/definitions/uint32 enum: [ 0, 1 ] From patchwork Thu Feb 20 23:08:10 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cosmin Tanislav X-Patchwork-Id: 13984591 Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 30E46265629 for ; Thu, 20 Feb 2025 23:08:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740092928; cv=none; b=JWO/fIh2107j7WVLhnZVCK+/pPi6jOiz4MpGbBA4jxGgNVE1eHrnLe0q8QBF6g+bsXR1HKepqp1D2GZ1kIN62/o47w5uO/9rVcOWMQSLjI6262v7H76WJHa1YFdcNcBHJk9Ju8KWpGg7hygO/6WgIrMn8iu2Chg3eDu78E8XJI4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740092928; c=relaxed/simple; bh=CWodvW4NCBIlUv6/PqgOLyTNVvQ6Z0Bh5b4w0MpQRQY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fP3Gd5e+9pQGaBIIugrFQQ+YPqgNEwcp+P8bm4Labm4z5ezPOs1W3Ag20kcX6ZtD1/4mpr6cCoE+unNwJ2iCyiZ/e+zDxCGNOxyiWryx300KlGF/7jRKhWeR+TezjUYUOWPZ+LpabXrdvGUwNMJTC7ufSNJ2yOaqcIFrFYlpTrI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=APNU2qQ2; arc=none smtp.client-ip=209.85.218.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="APNU2qQ2" Received: by mail-ej1-f44.google.com with SMTP id a640c23a62f3a-abb999658fbso195316466b.3 for ; Thu, 20 Feb 2025 15:08:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740092924; x=1740697724; darn=lists.linux.dev; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ku1J4a4L44q8po1KQAtOYx7Ff0tpcPyGvZxYWms+JUM=; b=APNU2qQ2je62YQn+QcMIcw084puyNXn5vE5jThe4ApcICZ8RTw85XLEbl2Rs+oxd8P ai2QZHmjNuq4TWT2ashtsv3Poo/Xma53ZhA+Gl4Ws6yo/MOPOQEb3UrJkODVQvVX+I8G sKSyz+Ds9z8bV//Ma8Q89fCFcAMS7NqNS53MsCk+Q0jWyxKUsyEcTJ1+RGDK1lGWexOP STZMWLd5EW6SiPXATrh2+IU7ABeeuivUzJ5tDC+ewonHmEhBJFABSjpI7Yx1UFMjLfk8 b5J03Y6LZNkHMXoPJpjB3sBGMIUQs9kdH+RQJCbnqkpNF0629Odkrtij4lw3VnAk3jFe Jxyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740092924; x=1740697724; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ku1J4a4L44q8po1KQAtOYx7Ff0tpcPyGvZxYWms+JUM=; b=Ux7RXcqMYnoz1Low9QpWTfGsyei9LVdO1gF7A8I3YuwdjB0m+gPs3B5FS0I7wqD7Bb RJhQN1qUcLbjMfRbvaAISn0rV1LK3ItN4nzK6RSSotCw8n68BhjX++tckOrLGRARSpXt grl+kKoWgJA4TIl3ck+sMahtepnXRUAWGvVVrG9exwUvGMZb2Q8Veq3+dV436yPhwlhf rj3pETCLzJCnaV8IAVfkwSWT1h9TYvxY5O6FdvdkE2vsfyHxO3BxREEDIZocr67dV/Tf 1NXWWRlqfZUO0XtB2H+2pefIb2zdLLGMpjPIKNBI1A5Qt1d4Rlhnbtt6+hkQPyCv1DRw u71A== X-Forwarded-Encrypted: i=1; AJvYcCUqSOZc7vYy9V7bPL/LdZ5O2FKik7Pe5SvrAWPEWrhVWcJR8cuGMbO0fsm2N986N3Qstvw=@lists.linux.dev X-Gm-Message-State: AOJu0YypJvvRgc/MEzKDn0dGlXIem/+KqSb3JZwD9ZG4uTX4dzLFoN/P oEnH/JDDse2e2/hPu0LwJPXp8yKFI5wU1vkag2c6d7WhLyfwa3m7 X-Gm-Gg: ASbGncvskJnH4J9udwfjkGDTyQvrxBSCInRFyOEdimEXvD1lnlieBFmXi6hbKeT2kLR Kp1rkzNckRP2K+PllRPYUPrfQLuqV1o78oOdiwmCu+vjU/i9UNUUQpCYW/ISPZC9w7S36Fr+aAH TvRX2TGclgn01+58oasdq9SBH85vSS4bXbDuQ+lGUgO1Myc0g525RMnvWa8tqjA9/9my9CTOkVv 0SrRmcQ/UFRCm5CPXkMC4qF8kQINRl2l9NvmsqRDPlY//aPPRIahUphNlK0TsgiJelduBOkJWt7 GDAAFbUMhDWME9jYRhFe52e0APQ4 X-Google-Smtp-Source: AGHT+IGI84KAeDso59r/glMSFnTqqVRIRbIaVVOma5XZW7x9oyN/znWeSz2Mp+/p5CWLAdYA/aqo1g== X-Received: by 2002:a05:6402:27d3:b0:5e0:7510:5787 with SMTP id 4fb4d7f45d1cf-5e0b720ae8emr1532105a12.19.1740092924094; Thu, 20 Feb 2025 15:08:44 -0800 (PST) Received: from demon-pc.localdomain ([188.27.130.21]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-abb9654a6b2sm909107066b.135.2025.02.20.15.08.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 15:08:43 -0800 (PST) From: Cosmin Tanislav To: Cc: Dave Stevenson , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Sakari Ailus , Laurent Pinchart , linux-media@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Cosmin Tanislav Subject: [PATCH v2 2/6] media: v4l: fwnode: parse Virtual Channel IDs for CSI2 buses Date: Fri, 21 Feb 2025 01:08:10 +0200 Message-ID: <20250220230818.275262-3-demonsingur@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250220230818.275262-1-demonsingur@gmail.com> References: <20250220230818.275262-1-demonsingur@gmail.com> Precedence: bulk X-Mailing-List: imx@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Multi-camera systems often have issues with receiving video streams from multiple cameras at the same time because the cameras use the same Virtual Channel IDs. CSI bridges might not support remapping the Virtual Channel IDs, making it impossible to receive the separate video streams at the same time, while the CSI receiver is able to de-mux streams based on VC IDs. Cameras sometimes have support for changing the VC IDs they output themselves. For a practical example, GMSL2 deserializer chips do not support VC ID remapping in tunnel mode, and neither do the serializers. Allowing the cameras to have their VC IDs configured would allow multi-camera setups to use tunnel mode. Add support for parsing VC IDs in v4l2_fwnode_endpoint_parse(). This allows us to retrieve the specified VC IDs in camera drivers and configure the hardware to use them. The supported values are 0 to 3, with a maximum of 4 values. Although the CSI-2 specification allows for up to 32 virtual channels, most hardware doesn't support more than 4. This can be extended later if need be. The driver must validate the number of VC IDs and the VC IDs themselves. Signed-off-by: Cosmin Tanislav --- drivers/media/v4l2-core/v4l2-fwnode.c | 15 +++++++++++++++ include/media/v4l2-mediabus.h | 5 +++++ 2 files changed, 20 insertions(+) diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c index cb153ce42c45d..97ecc01e1e39e 100644 --- a/drivers/media/v4l2-core/v4l2-fwnode.c +++ b/drivers/media/v4l2-core/v4l2-fwnode.c @@ -129,8 +129,10 @@ static int v4l2_fwnode_endpoint_parse_csi2_bus(struct fwnode_handle *fwnode, bool have_clk_lane = false, have_data_lanes = false, have_lane_polarities = false, have_line_orders = false; unsigned int flags = 0, lanes_used = 0; + u32 vc_ids_array[V4L2_MBUS_CSI2_MAX_VC_IDS]; u32 array[1 + V4L2_MBUS_CSI2_MAX_DATA_LANES]; u32 clock_lane = 0; + unsigned int num_vc_ids = 0; unsigned int num_data_lanes = 0; bool use_default_lane_mapping = false; unsigned int i; @@ -208,6 +210,15 @@ static int v4l2_fwnode_endpoint_parse_csi2_bus(struct fwnode_handle *fwnode, have_line_orders = true; } + rval = fwnode_property_count_u32(fwnode, "vc-ids"); + if (rval > 0) { + num_vc_ids = + min_t(unsigned int, V4L2_MBUS_CSI2_MAX_VC_IDS, rval); + + fwnode_property_read_u32_array(fwnode, "vc-ids", vc_ids_array, + num_vc_ids); + } + if (!fwnode_property_read_u32(fwnode, "clock-lanes", &v)) { clock_lane = v; pr_debug("clock lane position %u\n", v); @@ -248,6 +259,10 @@ static int v4l2_fwnode_endpoint_parse_csi2_bus(struct fwnode_handle *fwnode, bus->data_lanes[i] = array[i]; } + bus->num_vc_ids = num_vc_ids; + for (i = 0; i < num_vc_ids; i++) + bus->vc_ids[i] = vc_ids_array[i]; + if (have_lane_polarities) { fwnode_property_read_u32_array(fwnode, "lane-polarities", array, diff --git a/include/media/v4l2-mediabus.h b/include/media/v4l2-mediabus.h index 24c738cd78940..291b680d2a845 100644 --- a/include/media/v4l2-mediabus.h +++ b/include/media/v4l2-mediabus.h @@ -72,6 +72,7 @@ #define V4L2_MBUS_CSI2_NONCONTINUOUS_CLOCK BIT(0) #define V4L2_MBUS_CSI2_MAX_DATA_LANES 8 +#define V4L2_MBUS_CSI2_MAX_VC_IDS 4 /** * enum v4l2_mbus_csi2_cphy_line_orders_type - CSI-2 C-PHY line order @@ -94,8 +95,10 @@ enum v4l2_mbus_csi2_cphy_line_orders_type { /** * struct v4l2_mbus_config_mipi_csi2 - MIPI CSI-2 data bus configuration * @flags: media bus (V4L2_MBUS_*) flags + * @vc_ids: an array of Virtual Channel IDs * @data_lanes: an array of physical data lane indexes * @clock_lane: physical lane index of the clock lane + * @num_vc_ids: number of Virtual Channel IDs * @num_data_lanes: number of data lanes * @lane_polarities: polarity of the lanes. The order is the same of * the physical lanes. @@ -104,8 +107,10 @@ enum v4l2_mbus_csi2_cphy_line_orders_type { */ struct v4l2_mbus_config_mipi_csi2 { unsigned int flags; + unsigned char vc_ids[V4L2_MBUS_CSI2_MAX_VC_IDS]; unsigned char data_lanes[V4L2_MBUS_CSI2_MAX_DATA_LANES]; unsigned char clock_lane; + unsigned char num_vc_ids; unsigned char num_data_lanes; bool lane_polarities[1 + V4L2_MBUS_CSI2_MAX_DATA_LANES]; enum v4l2_mbus_csi2_cphy_line_orders_type line_orders[V4L2_MBUS_CSI2_MAX_DATA_LANES]; From patchwork Thu Feb 20 23:08:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cosmin Tanislav X-Patchwork-Id: 13984592 Received: from mail-ej1-f43.google.com (mail-ej1-f43.google.com [209.85.218.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CC50D2673B8 for ; Thu, 20 Feb 2025 23:08:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740092930; cv=none; b=QIce9NA+vQT0JWVA9hDRZuO5G3SCW/1jW0dybx6Q2mxAEV8HVQij1S1+V7QRpUoVYLgoVsuYErzTisPP1uElQVGT9Nrc8R8DT/3byZ4/G8LHGO4KioT2ydgi38dAvzgS1QNfv9Og8Ywzkt7ec0IGlhTrEXCLFHTwF3E8Gx52BoQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740092930; c=relaxed/simple; bh=lg2S49Y/PXrPABJ4Pn2C18lsbCiXukENnnTBnuXF1lc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BUyLPrubfv0dZnNdmKuAx2sAIYmYV7tiGae+5R8+JoFaV6VUwzk3Z53QHKzkM1aVJbaHB2O6uVdYgvscUGUvaIKlxPL1W1mzR1rmY6ILMhrl6TVUUm9IN401enLvlquhEfJJdGpHYPgzpG2d96iO52lFjSc7U/Pa3ynyqqbw83w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=EHluE+PQ; arc=none smtp.client-ip=209.85.218.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="EHluE+PQ" Received: by mail-ej1-f43.google.com with SMTP id a640c23a62f3a-abbdc4a0b5aso289323966b.0 for ; Thu, 20 Feb 2025 15:08:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740092927; x=1740697727; darn=lists.linux.dev; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=xrabmWDNnjDbFDGwlYLKTrhkDOrLGupRTNC+Vz/SZV8=; b=EHluE+PQ1MM5FnEwxf3pO5qmCyRHVT8l9JnYmKU5TXkY3q2vTzVPgQo54Ri/A8ZB/7 8D/hED2q0gwDd6nsLLf1YV29Kj3zcvdeRchPW+vEFRpJfBYUsLd3UXeKo63tqP1TV8y4 +AAiXa2KtyQN+52T6U8iI5hB7ElK8B6LdFMLLNnvZbOP4Uwjzwy/I/BuoiCLNLMqn6GG dPan96Q5uRYSBox44VBHUAbzntBLyorJnZxA3oB8ePWqj/sznmkXPJ9t/KTX+h0g3fQb 0j0w/rJUyUbx6RgGDYaaGOLdVaH3OU/Sld0tR3Qu8aDboi8K+9vFgdBCIRb1DN+5b9JC xvLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740092927; x=1740697727; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xrabmWDNnjDbFDGwlYLKTrhkDOrLGupRTNC+Vz/SZV8=; b=VXsXAIQQZZT12DVHwty9Rz2dpV5gz8G7jI680HJ2T5WypRczTY2e+RW6mr+tBBERSN 9G636YFeSqhEQJ9fmIiUjYsdwrpZJNG8UyXPnbpzStpN72U0J35J3Zjr2lL13b5Lpdws +eKfVXj12Ykf5BN/gTSsRhWSQKC5u/8zVwQlbwj8rB+qq+4oqhh4CrzStV6qLd8yA9qd BgN11TXltiK5sjoSasggdp5BYbVttdzaSRoISfTAc1Q2Ate8KcdFSNbdUMGiEeQYCSJt YM+Q7byuJBLDJzILHcszDVx6d8ZjMfrbzVRmVRfP969FO1NvxFyLZWIhdSZSaY7wFBNj nHjg== X-Forwarded-Encrypted: i=1; AJvYcCVcu1MJqoD75cVPZuvaVCaV2XKY5r+IbBrYW1o5082mtexgbnD8tqFUWFeLl4IEY7ZBBw0=@lists.linux.dev X-Gm-Message-State: AOJu0Yxslz9am5xzk4QZ+3CW6JbdbUSwsbNh9byx0Kmy0nSqOCAff5ia kOBXyM8j+6t8adpzovAU4+Gfap7yE2ct506MH9Accz2ogeUHskGa X-Gm-Gg: ASbGncsElhKLYytpOAGhid2wpJOJH421XBA4c8b1LLYDgpMdoLfomUDcMOZm3J4qFb7 SakfasibThYCkC63OUWelqYvYrhbo6PI/qolLPknZv3lbyLcleGZ23Afjw1NKJNyWUfjKVNLSid 4FakTlD/dtapxXpG56O19GWClbYsAS+x+Reb+ZGkcpPtRDUBUCMpvPl9/Qp20iYUPzXCNDFkAgt 2BfFa2I9Mlt0SiKVhDkCN5Ebr49v8A+IwYn2A9fLs6eY5SJB1dq3vc4i35xnW/A8myAe2XwzqYv BA20/p9ozM/ySNQl/jYbu1JhUy9N X-Google-Smtp-Source: AGHT+IHxCyp3AmxX9+y1FumuMZ2w71DFr0p5Hi7cNfrmyJDTIG49fuCS7zq2b1FXlJ53fyeJ7aqZdg== X-Received: by 2002:a17:906:3151:b0:ab6:504a:4c03 with SMTP id a640c23a62f3a-abc0b037859mr72192566b.24.1740092926822; Thu, 20 Feb 2025 15:08:46 -0800 (PST) Received: from demon-pc.localdomain ([188.27.130.21]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-abb9654a6b2sm909107066b.135.2025.02.20.15.08.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 15:08:45 -0800 (PST) From: Cosmin Tanislav To: Cc: Dave Stevenson , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Sakari Ailus , Laurent Pinchart , linux-media@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Cosmin Tanislav Subject: [PATCH v2 3/6] dt-bindings: media: imx219: add support for Virtual Channel IDs Date: Fri, 21 Feb 2025 01:08:11 +0200 Message-ID: <20250220230818.275262-4-demonsingur@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250220230818.275262-1-demonsingur@gmail.com> References: <20250220230818.275262-1-demonsingur@gmail.com> Precedence: bulk X-Mailing-List: imx@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 IMX219 supports configuring the Virtual Channel ID used for image and embedded data streams. Signed-off-by: Cosmin Tanislav --- Documentation/devicetree/bindings/media/i2c/imx219.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/media/i2c/imx219.yaml b/Documentation/devicetree/bindings/media/i2c/imx219.yaml index 07d088cf66e0b..766b0e5fedb05 100644 --- a/Documentation/devicetree/bindings/media/i2c/imx219.yaml +++ b/Documentation/devicetree/bindings/media/i2c/imx219.yaml @@ -66,6 +66,8 @@ properties: clock-noncontinuous: true link-frequencies: true + vc-ids: + maxItems: 1 required: - link-frequencies From patchwork Thu Feb 20 23:08:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cosmin Tanislav X-Patchwork-Id: 13984593 Received: from mail-ej1-f50.google.com (mail-ej1-f50.google.com [209.85.218.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C886B267701 for ; Thu, 20 Feb 2025 23:08:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740092932; cv=none; b=gsxCH0WOjfFz9Z0STH8J7WA7kKGj4zQim5HyDuk2fv2rIqOfCRPHiFNlt2WW7KK7Uk8+FyPukGJXh6HHAFWBpDBoO4TJoSVRJMFpnI5ng6An7Lf6xQpzHrnh619HUkQULE8jNQUsCeICFxCnWXT+mdEc+bb1fKLyswBmiSmtFdk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740092932; c=relaxed/simple; bh=zAx5h3CW9uhScVCOaEZGPbZKRppELpmuFuRjU0AzcDE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VA59lZAso7BVOsBdtfkzibvXSRotesh6CKeRB/7OodEtK23sjSjokvQwT869XenECumZ1fiR2IKzqoHG56eBdEkdzETA+8wJDHJQjXRDJZ2SIt83ifW3//4pUl1alErqmjYKw1+hjHcuppqNjZwBieFYXosLBu0EbCDy/l5moJ4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=W+tSg1a3; arc=none smtp.client-ip=209.85.218.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="W+tSg1a3" Received: by mail-ej1-f50.google.com with SMTP id a640c23a62f3a-ab771575040so464176266b.1 for ; Thu, 20 Feb 2025 15:08:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740092929; x=1740697729; darn=lists.linux.dev; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1V5REDmi/qwmeZmzS61DPGBCJO64NPZWi8x4XF3HxB0=; b=W+tSg1a3mEPiw8Upwp/8Q98N4P6ZOVuzxC7yxnbp3xDWgAyFyIWXF4JBva0URKglr5 xQfN9qWC5lZfqVLkWMXbM8y96qBQXrhcjVsTTz+fdLM0oujlH9lT5F4yYOxuzCKe0G6w 1O3SnwrPoAqEhNUcrS7AhzA49Mmyt6ruTYpeyi2eNklqJ1Zn9fw7LAhIvkq2fH3XWbLN BC3MDvQIFX49aKySzl8TKslWI+JxLJSP+ppkOuZmHRoVtND3DHbOIirMNCXnjOlMk0jg zxUoWEM7r4CS2Fn/tA2qBNa33cMrrpnuuMnP9lqxh0IR6Rq6669YYnoxknu6P+GCaCZ3 U3IA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740092929; x=1740697729; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1V5REDmi/qwmeZmzS61DPGBCJO64NPZWi8x4XF3HxB0=; b=mBMh9yh4te1UKc+nteAX0hyHLFw8DP4JUaifTfc4zQNof8J+ysBIAT8BAmEvxquco4 iFR6Pt57KcRA1lkuby9LTyhjLp8UDnEyfVbaq3MfacPCVQ/Qo6IywsoOjk4aiizykB2D nhknUQmLDyiCuLOQTuzwwq+aJUGkdGoAPAgenZ38q/E4Q+dmgFkdqiO8tI1XlscVTyae rnEqTMiIHTU3GUg/E3igi035QV0QWGtc2xqnE64Z4IxZgzIbtmXJoMkNdJsa694G3d25 jO65NnhlHY+pZ6FqgMlqYaI1bKeELcqnaDHjtUoCaclzn7CKljMNn5EXLv1XgE+HUgBT RSxA== X-Forwarded-Encrypted: i=1; AJvYcCXUOYV1u5n2cykDYk2HDK32ORvAtCURq0WmPOeuA8b9gBzH0ilNa2rNxT3x3NaWfkJTVpM=@lists.linux.dev X-Gm-Message-State: AOJu0YzdlwHzLBDqU7XHxztu5XFS12ntxKbZJMDbDhJCaESM9jb8eNxJ Eicy8Mu42Xf6rD3uhxVcFB7CMtLPQxDN6eqlUkTlMFzhCie73zyM X-Gm-Gg: ASbGncsUq/OTr1wKjBJIk3shmh+GgbY6E3TfMcGSqJVDJhPWIMMyL/NoFhAjFT9bOsj 4AQqPQURmqQp9WTbzFvQkAis4pmS2VzavcARUCrs05vkVHMVK9kngyIsT+aiCd6OnhyPnI7i5e4 q4pPW+az1lMraerUyHTJWtDaGGcYsk3uzFgCGC31yE1srUhzWNRFLg6XwxYmLY8w9YZ80IM3pP8 05rm+PHqAOmwbm2BhIGs7/+3HOZjbl4SJ3bQGClZWwp0a+ZCYTeuYOWcjztckwDoiomcB0KRbfy tz6W2moUs3up9hLgctVWeH/dkYyy X-Google-Smtp-Source: AGHT+IEydEuTk0agw+AF9f8wYzDAN5oKuTWK4h1DVKaFvIYPrYzGCYHJkQgTkbLioaZGj3jOXXoyBA== X-Received: by 2002:a17:906:318b:b0:ab7:b7b5:2a0c with SMTP id a640c23a62f3a-abc0ae1b6e9mr76032266b.6.1740092928857; Thu, 20 Feb 2025 15:08:48 -0800 (PST) Received: from demon-pc.localdomain ([188.27.130.21]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-abb9654a6b2sm909107066b.135.2025.02.20.15.08.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 15:08:48 -0800 (PST) From: Cosmin Tanislav To: Cc: Dave Stevenson , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Sakari Ailus , Laurent Pinchart , linux-media@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Cosmin Tanislav Subject: [PATCH v2 4/6] media: i2c: imx219: pass format's code to imx219_get_format_bpp() Date: Fri, 21 Feb 2025 01:08:12 +0200 Message-ID: <20250220230818.275262-5-demonsingur@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250220230818.275262-1-demonsingur@gmail.com> References: <20250220230818.275262-1-demonsingur@gmail.com> Precedence: bulk X-Mailing-List: imx@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 imx219_get_format_bpp() only uses the code of the format, pass it instead of the whole format to allow usage when the whole format is not available. Signed-off-by: Cosmin Tanislav Reviewed-by: Jai Luthra --- drivers/media/i2c/imx219.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/media/i2c/imx219.c b/drivers/media/i2c/imx219.c index fcd98ee54768e..ad1965a91ae3c 100644 --- a/drivers/media/i2c/imx219.c +++ b/drivers/media/i2c/imx219.c @@ -387,9 +387,9 @@ static u32 imx219_get_format_code(struct imx219 *imx219, u32 code) return imx219_mbus_formats[i]; } -static u32 imx219_get_format_bpp(const struct v4l2_mbus_framefmt *format) +static u32 imx219_get_format_bpp(u32 code) { - switch (format->code) { + switch (code) { case MEDIA_BUS_FMT_SRGGB8_1X8: case MEDIA_BUS_FMT_SGRBG8_1X8: case MEDIA_BUS_FMT_SGBRG8_1X8: @@ -680,7 +680,7 @@ static int imx219_set_framefmt(struct imx219 *imx219, format = v4l2_subdev_state_get_format(state, 0); crop = v4l2_subdev_state_get_crop(state, 0); - bpp = imx219_get_format_bpp(format); + bpp = imx219_get_format_bpp(format->code); cci_write(imx219->regmap, IMX219_REG_X_ADD_STA_A, crop->left - IMX219_PIXEL_ARRAY_LEFT, &ret); From patchwork Thu Feb 20 23:08:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cosmin Tanislav X-Patchwork-Id: 13984594 Received: from mail-ed1-f41.google.com (mail-ed1-f41.google.com [209.85.208.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 313B02673B9 for ; Thu, 20 Feb 2025 23:08:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740092935; cv=none; b=MIclYXQkRduwuiUh0g+3E+Sgm4MMbkhO1HVESWf7qtD084MDTnhKfM9fPfYjgsIB6+3dsCCU8GX4OMa0/bite4NQlRSud0fwQda7uwZ4lomLE0qFkcEgoUkNVWfwbcaKUcirblVSzZvov/3bF2NuGq3V1UrKgnmmA8IaSR2Clug= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740092935; c=relaxed/simple; bh=c2oJdhEAPkgZHieAm+Hz9dCi2VAJ3Im9nKjJmOfI5T4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hZKinQp4c2v4RpHcd2MruwOKMfrFbwDHZJ/N/vy/z2IU3Rmk7aTjZ/Hu8SFXl61eJ3n7MJmBV46J90EsvTFw9NSnFshEFXRLsYCB90k+zODcAwfaa+l/BeBoxvcAlLC4TRXduwzoWFjA8IvwbpvjEJqHcoFCg+/BLoofx468z6k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=l0BajZ8u; arc=none smtp.client-ip=209.85.208.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="l0BajZ8u" Received: by mail-ed1-f41.google.com with SMTP id 4fb4d7f45d1cf-5deb1266031so2751060a12.2 for ; Thu, 20 Feb 2025 15:08:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740092932; x=1740697732; darn=lists.linux.dev; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=th+517ZC0V4fbqH9CgBsf81RO0nRc/LViRgQwQPk9dM=; b=l0BajZ8u5H/ZqWw73c0GdgtnjbbKlIx9MtxW5YaJb9pjjX95ISU+S6r4Po7fM7VK2d +hZtHEWLeUF8LFrEmkjA9NIo8JjLRgzz2HA0CXsKIteQtak38/UjOidVe7h2ZVzSH6Pu DRPLwMQhvKP6GAO+kPdRsFu7AS1k6LupgaOuOQMoQM7x69Skr0SzzGCg44sg5gWF79Wr ypRtcZyU+2Oacmr7JaRLgj5snhwKKaTyOoAjVNqQxgCFO4KyJwmvLF6ZnO+J40Ghr5py bELS4IfsCdOGgF4+erVvOK0S62qidSLvBF4mVpafM2iM9uxVfbTqf6HMD/MTCE7dhIbi Wxsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740092932; x=1740697732; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=th+517ZC0V4fbqH9CgBsf81RO0nRc/LViRgQwQPk9dM=; b=Ch0/3WvxHKHaacXfHESTHRVFafrw2lXAFafkODWxWf/50aOjLzBFTKqKD7BGE6JvFA rtGKS/JDzfyFmGTMwfSV5B8ByedKAYl6l86dB2vllzcv345naqj2tDzqJG9CkrL/2t9Z t7qWmCtF283udvtN+THagUYk8C7AMKWo0aerqRFi4+qFChsZHaUA25exjnV1LbrmaSWP Jp/Tc3pbotAytxmbaSLkYNHkpSnzEw1verOHbGiKTESqi0dTwza81VQIFmQzOa33zvTB UdwC74Cp4UM+bkiPlSLbKqVIa9bssMSfex/uN5CvfF8LckRurzfXy8LtqaN5aH1Vm4Jx PlTw== X-Forwarded-Encrypted: i=1; AJvYcCU00eg0vlI5XpVfzsb1tLY6qZgakEXZzEt/lPFmPuVryfsS32QZppJ95XMEWkiX7ViucH4=@lists.linux.dev X-Gm-Message-State: AOJu0Yy5CRGExCJJ4IK/bQvSkl2yf5oXZDcO050oM9tGBGDxC4Ca5Oib 2u4Wv2tipEt7id8Z+MpdSCzzIOLXZvMmkn9tpt0YmpjeOzUyiyYu X-Gm-Gg: ASbGnctRa26yuhMdKBErr/19sYjRJ6S1yhY5L0waHmnFQcS8MLUEEh2HRcEFE9aYgcf o1yy51TCNMp2c4JGXY5RT+zp9SKQ7ClSxPoS9ZeOn7Ohkt+Y4eFqN1RgkV3rwJcHtti8BNQgj7I uezwSlZgPsH2sBBMVe6YN+r28OhGN9LXgykF1EbTFIRBbVBc2Jx1rn2H2kqrXLh4EO58Z0TW7he VtVUZylpkWxePxsOMhSot/IewcXgMrw2op6neG8foa2FdClC9A7abpRWvHrYtkW/OsoVSpkPfoU TgfApxcsrH4yMYJawqNfIGm4ugkH X-Google-Smtp-Source: AGHT+IFfE/1JdGnfUcNxpjJHL3/DYWaNKaOhzV3vJxEUOthUy2riBK/uCS6Yxc/sSSL3TdBg0rq7Nw== X-Received: by 2002:a17:906:308e:b0:ab6:511d:8908 with SMTP id a640c23a62f3a-abc0de19516mr43067066b.40.1740092932201; Thu, 20 Feb 2025 15:08:52 -0800 (PST) Received: from demon-pc.localdomain ([188.27.130.21]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-abb9654a6b2sm909107066b.135.2025.02.20.15.08.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 15:08:51 -0800 (PST) From: Cosmin Tanislav To: Cc: Dave Stevenson , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Sakari Ailus , Laurent Pinchart , linux-media@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 5/6] media: i2c: imx219: Report streams using frame descriptors Date: Fri, 21 Feb 2025 01:08:13 +0200 Message-ID: <20250220230818.275262-6-demonsingur@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250220230818.275262-1-demonsingur@gmail.com> References: <20250220230818.275262-1-demonsingur@gmail.com> Precedence: bulk X-Mailing-List: imx@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Laurent Pinchart Implement the .get_frame_desc() subdev operation to report information about streams to the connected CSI-2 receiver. This is required to let the CSI-2 receiver driver know about virtual channels and data types for each stream. Signed-off-by: Laurent Pinchart --- drivers/media/i2c/imx219.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/drivers/media/i2c/imx219.c b/drivers/media/i2c/imx219.c index ad1965a91ae3c..4c4ebe54f191b 100644 --- a/drivers/media/i2c/imx219.c +++ b/drivers/media/i2c/imx219.c @@ -23,6 +23,7 @@ #include #include +#include #include #include #include @@ -990,6 +991,28 @@ static int imx219_init_state(struct v4l2_subdev *sd, return 0; } +static int imx219_get_frame_desc(struct v4l2_subdev *sd, unsigned int pad, + struct v4l2_mbus_frame_desc *fd) +{ + struct v4l2_subdev_state *state; + u32 code; + + state = v4l2_subdev_lock_and_get_active_state(sd); + code = v4l2_subdev_state_get_format(state, 0)->code; + v4l2_subdev_unlock_state(state); + + fd->type = V4L2_MBUS_FRAME_DESC_TYPE_CSI2; + fd->num_entries = 1; + + fd->entry[0].pixelcode = code; + fd->entry[0].stream = 0; + fd->entry[0].bus.csi2.vc = 0; + fd->entry[0].bus.csi2.dt = imx219_get_format_bpp(code) == 8 + ? MIPI_CSI2_DT_RAW8 : MIPI_CSI2_DT_RAW10; + + return 0; +} + static const struct v4l2_subdev_video_ops imx219_video_ops = { .s_stream = imx219_set_stream, }; @@ -1000,6 +1023,7 @@ static const struct v4l2_subdev_pad_ops imx219_pad_ops = { .set_fmt = imx219_set_pad_format, .get_selection = imx219_get_selection, .enum_frame_size = imx219_enum_frame_size, + .get_frame_desc = imx219_get_frame_desc, }; static const struct v4l2_subdev_ops imx219_subdev_ops = { From patchwork Thu Feb 20 23:08:14 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cosmin Tanislav X-Patchwork-Id: 13984595 Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 24CBB265CBC for ; Thu, 20 Feb 2025 23:08:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740092938; cv=none; b=IZru0gYzvho7ZOWbq6SldbU+AB6EFB0tatqW7zQ7o8kZObHLwlt2bsCaKPulLsDeePgUREqRiZnCS1c9BuY6s6P08BRYgL79zJ3brg3qcRknwLObrez8XFp4m8tTuwIeB5mza6Cx3OBlGNvL6mFdj+6QHQwWoCrMLY4Udi05bFQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740092938; c=relaxed/simple; bh=EzZQSdIx5D7T5oRoBm/8fSqgGLdREtHQcr2NCdkG5fY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ifPYz2txEnsu7KRGpMyLGQ/vtGH4yk/PtaBVpXCT7SjKIPDQaYTJB7wzqbH2FQpaXII5/PM7kttqDJbyizAKrVJkyGClAVZJUlLYSwVEgyreA6hl7GjbkM05Z34diNITAHEIscW96Cb26HYyn7PmORsTZI3y1b/DoBRqwsr6Hfw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=IF4Gcs0C; arc=none smtp.client-ip=209.85.218.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="IF4Gcs0C" Received: by mail-ej1-f51.google.com with SMTP id a640c23a62f3a-aaec111762bso342569066b.2 for ; Thu, 20 Feb 2025 15:08:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740092934; x=1740697734; darn=lists.linux.dev; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=NhX43RkJeHOzyL9QEiVx31rF6Y6JmPRuPUbmR6ly4C4=; b=IF4Gcs0CMpaRMqVqRSuVPbMmp/z+ZRHPyi6Nknw3jgAdz15CRjGyVRtKn9TDzV4AMK n24zi1nA1M2KJ/ipIx4F/d7lG72ItO4siDZTjO4rGCG1jzcCJlmQ82G3Q3pQOYGClgJ+ cU5vLMOVwCKCXH8YPy55YxVlKNKPhYynQQHk/e727sucKXrWO2Qv6Wm1KN+YVZiXS+c9 j9sQ+5HVWY9m3jORfiUaX+d/1ofic04EaI8SYBt8p/kcG+o+OqSuRES1cgyoVX6Dh7Lc OhsExoTjnLUqY+p3+y7CF1ZcpzDqo6TWwbLORtKsXq5fvw/t4FT+8WheMCN3K/X7Ze5z 00eg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740092934; x=1740697734; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=NhX43RkJeHOzyL9QEiVx31rF6Y6JmPRuPUbmR6ly4C4=; b=u3H7UPnNY/qxDqFGVR8RV0mTmUXGTqP9tHYCiJJJUljNaQKHRRa63yXoFHVdzpVQvR W4yA6IGAMkDPnP3asTIResgDcRCYtBATE1Dyw7PgAz6f4BlJr+W0Nh4X5MKNKxURUmpL uA83Wufkoy9qVgsI0tULD47JyJQ8nYkU1FiP7vFnJkBm0s8Ri4bkctXqlt5BNtxdyiDZ eCf4hVOzS5W/QYyJtD/07/e1WKq2DIwAaK1ZAwWKfvP5quGk/V5ReXHw63LCDqterp21 X7Myn0gZasxOs2wYrh43NDOCL9r/QRfyI+j1w9lHQtn3l4bNpMCSjlG6Mme9t9w3DwaD KeYQ== X-Forwarded-Encrypted: i=1; AJvYcCUNK/X7WYMHUB9FPdO4ievjEFeQ710yrs0+JYpQ3HeBIajlgQszxz3ekcitysOlJ0gW2rw=@lists.linux.dev X-Gm-Message-State: AOJu0YwBWU2X8R43MVWMAG+/m8l2jkKvhCUAaZli2hF37w6if399ZnAm W+LsFW2aoDUgVraBqunSw0lvgAleG7FlLDvq66gF/IiCqiNGHC70 X-Gm-Gg: ASbGnctahe9Jo7pjLSTFIWtHcF1jivKXHzeBVKuuvNraXIODQalAp10cGiqYf7V/41h 0cobsbG+/m1oe9Am6VfeclaFe8339A8GaNis4r60UD2AocaQVYbpzVvtR8SheUjIZfo8QRT9QyZ 1/f6o8WskTGMoLG3NMyoYAq3h4GlSXL2BCJOWtFFoQ2xp9uqiW/XBE61kSzd1OJW/aAAYv3FVnN 6OK8Io3QFryGqJq0jPEXsE7l2c59w8rQWbG6zfpUro55lKhGE2otMzIGMj6wcCpzIyeHGd2LkK2 vu+f151uDDr+rGhZRD70OoKUVI5x X-Google-Smtp-Source: AGHT+IHN9q1K9iy2cJqlLoBVyZt+NIVwf4Z/pfv0pnr1nZE9X5wgZJrRlMItfXGJSo5vo2ienwvsKA== X-Received: by 2002:a17:906:4fc7:b0:ab6:dbd2:df78 with SMTP id a640c23a62f3a-abc09d31cd2mr102596866b.35.1740092934282; Thu, 20 Feb 2025 15:08:54 -0800 (PST) Received: from demon-pc.localdomain ([188.27.130.21]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-abb9654a6b2sm909107066b.135.2025.02.20.15.08.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 15:08:53 -0800 (PST) From: Cosmin Tanislav To: Cc: Dave Stevenson , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Sakari Ailus , Laurent Pinchart , linux-media@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Cosmin Tanislav Subject: [PATCH v2 6/6] media: i2c: imx219: implement configurable VC ID Date: Fri, 21 Feb 2025 01:08:14 +0200 Message-ID: <20250220230818.275262-7-demonsingur@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250220230818.275262-1-demonsingur@gmail.com> References: <20250220230818.275262-1-demonsingur@gmail.com> Precedence: bulk X-Mailing-List: imx@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 IMX219 supports configuring the Virtual Channel ID used for image and embedded data streams. Signed-off-by: Cosmin Tanislav --- drivers/media/i2c/imx219.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/drivers/media/i2c/imx219.c b/drivers/media/i2c/imx219.c index 4c4ebe54f191b..ae93ac2bbe367 100644 --- a/drivers/media/i2c/imx219.c +++ b/drivers/media/i2c/imx219.c @@ -38,6 +38,8 @@ #define IMX219_MODE_STANDBY 0x00 #define IMX219_MODE_STREAMING 0x01 +#define IMX219_REG_CSI_CH_ID CCI_REG8(0x0110) + #define IMX219_REG_CSI_LANE_MODE CCI_REG8(0x0114) #define IMX219_CSI_2_LANE_MODE 0x01 #define IMX219_CSI_4_LANE_MODE 0x03 @@ -363,6 +365,9 @@ struct imx219 { /* Two or Four lanes */ u8 lanes; + + /* Virtual channel ID */ + u8 vc_id; }; static inline struct imx219 *to_imx219(struct v4l2_subdev *_sd) @@ -724,6 +729,12 @@ static int imx219_configure_lanes(struct imx219 *imx219) ARRAY_SIZE(imx219_4lane_regs), NULL); }; +static int imx219_configure_vc(struct imx219 *imx219) +{ + return cci_write(imx219->regmap, IMX219_REG_CSI_CH_ID, + imx219->vc_id, NULL); +} + static int imx219_start_streaming(struct imx219 *imx219, struct v4l2_subdev_state *state) { @@ -749,6 +760,13 @@ static int imx219_start_streaming(struct imx219 *imx219, goto err_rpm_put; } + /* Configure Virtual Channel ID */ + ret = imx219_configure_vc(imx219); + if (ret) { + dev_err(&client->dev, "%s failed to configure vc\n", __func__); + goto err_rpm_put; + } + /* Apply format and crop settings. */ ret = imx219_set_framefmt(imx219, state); if (ret) { @@ -994,6 +1012,7 @@ static int imx219_init_state(struct v4l2_subdev *sd, static int imx219_get_frame_desc(struct v4l2_subdev *sd, unsigned int pad, struct v4l2_mbus_frame_desc *fd) { + struct imx219 *imx219 = to_imx219(sd); struct v4l2_subdev_state *state; u32 code; @@ -1006,7 +1025,7 @@ static int imx219_get_frame_desc(struct v4l2_subdev *sd, unsigned int pad, fd->entry[0].pixelcode = code; fd->entry[0].stream = 0; - fd->entry[0].bus.csi2.vc = 0; + fd->entry[0].bus.csi2.vc = imx219->vc_id; fd->entry[0].bus.csi2.dt = imx219_get_format_bpp(code) == 8 ? MIPI_CSI2_DT_RAW8 : MIPI_CSI2_DT_RAW10; @@ -1149,6 +1168,13 @@ static int imx219_check_hwcfg(struct device *dev, struct imx219 *imx219) } imx219->lanes = ep_cfg.bus.mipi_csi2.num_data_lanes; + if (ep_cfg.bus.mipi_csi2.num_vc_ids > 1) { + dev_err_probe(dev, -EINVAL, + "only 1 virtual channel id is supported\n"); + goto error_out; + } + imx219->vc_id = ep_cfg.bus.mipi_csi2.vc_ids[0]; + /* Check the link frequency set in device tree */ switch (imx219->lanes) { case 2: