From patchwork Thu Feb 20 14:17:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cosmin Tanislav X-Patchwork-Id: 13984059 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6BD4EC021B1 for ; Thu, 20 Feb 2025 14:23:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=NFOJHCDRxWmWioNC6N/UlZoweJhdV9qdoQg8e0aFcrs=; b=SJvKgqwn+8L4SFJrrupRlZBgW9 rXF540KVXVhEcsqPQH79jvy/LzOwz9CEsVbn4ZWeNteIhSkOxRIJXM8CRKM04Yxlut9Fp1fMzeJ7c azO+Jr9TGHn2OPH9v/cRTU85kQySFRNv7xWNU2BJifxrLn3J0lQwsB6Gt/eD/aCbl8s/vPBS/RxmZ 2JKHIiLKRK7VqX/UZe8HRIODdLL+oCfxbtRdWC7JOYTE8f6UyUXX3VANVC793bkZ4h1az7nvF0caP 5NEKfkEYbVg5XE4G+9WlbSOvvC6hFGl+0yPVGudsQPyTfJfHKs1pey0knyCjBGjCVndto4+ER/QAk AMvcHPWg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tl7SC-00000001Ht3-1MG6; Thu, 20 Feb 2025 14:23:04 +0000 Received: from mail-ej1-x62b.google.com ([2a00:1450:4864:20::62b]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tl7N7-00000001GPY-0P2O for linux-arm-kernel@lists.infradead.org; Thu, 20 Feb 2025 14:17:50 +0000 Received: by mail-ej1-x62b.google.com with SMTP id a640c23a62f3a-aaee2c5ee6eso182041166b.1 for ; Thu, 20 Feb 2025 06:17:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740061067; x=1740665867; darn=lists.infradead.org; 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=TkBD3TfWj9hMBWDiW0D6IA69DW0ijeZUWf1jqHYPSOE7JRGYtmzPsgbJ7uG9iAJs1T 47ogN396eRoLewkB75boVR4rSARH0AZxW3XG6ZA8CqAcyAdy7bxVL2fyipmTgIs+HcpV DNkPzemOwaDa6okZNGDUllE07N9B3kdp1Yf7fgSO+4FqBqvCkN22coLPNfgrIkRbPb32 0LXYDOMFkvv7K21CBS8i4ZICaP//w0+DUvrpDX7LDdyGcq2HCr7RfrZCYvHujlfqYq01 xmnQO/DeFCxv4r30DjQvr4uQTLmWIc/9XySoWTB9JtaoJZAJLBoo7nMTwZr4mxEjVype ltPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740061067; x=1740665867; 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=t2R+zXNgVQrqCxLswp3sWUqVTwYTNL04bMA6rpnTuewHMgfqocI5OlgeOXHRAFYN0c VUaOTjfWSHwYqgl4ChL6GJsgkCIL93XQWnynq4ac7LB4QHyibE+MD55U0kdr3lyU/AfU cuYmQv7McLK3FTqYjEs2kUC8/TpQWHURCkWoWSsHHN1SoXhm7LoCjmpkRGowzRfxfayD OS13nrU86rNyF/aHZne2vaNG7NFU+AYY5JOMzw3S35H8RlviXecFzu8ZjJ+2hH4gEUq8 ghMPIC/E+6kRMOHBfIC0HnZpe8AhIodv00nhmCioXHFCidPmC7eA7Y2mRcjterXKv76e ZtCQ== X-Forwarded-Encrypted: i=1; AJvYcCXmwHtlC5jRkSAO98jFOxd6Lb0lI1knyEddw52vvYqnTwaqJYh3I+KxFhZ9ieCL1QEJiHzFGX7bsE1E6yb8SeEw@lists.infradead.org X-Gm-Message-State: AOJu0Yx70H5BuakQCtZjaY2gxxMn/wEcbrbnoRl2he0BJLmsgsJkjVfF RUttdllUpSxH+LsdIFumAX3f643wAxpRnYVTqabgZ/ZXYm1wDhqY X-Gm-Gg: ASbGncso3XuW9Qp9MmQin6DDewv0ZFEqr5SsBPcVKehggk/p1SARJ//kt3UAXasdtjk mVImtN4GIQSkrhPC+Q70gQlY1yrBQPdIN3T91dl+4qyCRM5+dvbJSshWlNitCHAEL8btfmYISea e991yfrD8vp81kv5M6Nocen7AC94dZJmxEfx3iwWe1Omo0qyqUCaexa4VHV+IPQLmBJQ0p30pau 1wlbhPW00j1oCGFEUzSVR+EfWnbvC18iMuaLUt04WrnaK08l8cwPA0hBqR2GhvXEusAIXyTTOhL LJo/EBqvnmPhrwUCyf7nrRRxDFz/ X-Google-Smtp-Source: AGHT+IGbvT+ElwJFSjuG2SgiS1oHKWL2tTnh/dZxsOpA946XGKGKmXCEg6KymAHfaze7tPu7/efmcQ== X-Received: by 2002:a17:906:dc90:b0:aba:cc21:8b3c with SMTP id a640c23a62f3a-abbcd0491demr861472966b.38.1740061067200; Thu, 20 Feb 2025 06:17:47 -0800 (PST) Received: from demon-pc.localdomain ([188.27.130.21]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dece1b4f59sm12124224a12.6.2025.02.20.06.17.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 06:17:46 -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 1/6] dt-bindings: media: video-interfaces: add support for Virtual Channel IDs Date: Thu, 20 Feb 2025 16:17:23 +0200 Message-ID: <20250220141739.228714-2-demonsingur@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250220141739.228714-1-demonsingur@gmail.com> References: <20250220141739.228714-1-demonsingur@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250220_061749_132385_1A99C9B1 X-CRM114-Status: GOOD ( 15.27 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org 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 14:17:24 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cosmin Tanislav X-Patchwork-Id: 13984060 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A8F33C021B1 for ; Thu, 20 Feb 2025 14:24:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=ku1J4a4L44q8po1KQAtOYx7Ff0tpcPyGvZxYWms+JUM=; b=Cw9Xr0r9Cvmn9fW0kuJu+JA168 QaEtb7oGuQTzwrayNDLxJj5PPcOmD2CDJpNKMDjIgOT1NNZiU73BQkDOtKGEsicVCceTt15jZLQsp IAJh9HjZGP1RSypaQLcR94/nD9env2GzLIeTT+WnVI1QZtGIZdpuxjt5Am8J67VjtW8hZo2VJ1Eps PaJMnI3IS626UJsVh/66YezQDQuRmYNAbMJxgXOvm9exTRs2tcq97HY2XXqZbpyMCiuxOOCcgsrHP 8sLndflWFDmCf3HXZALZmCOfaXWL0bRklH+KK00KhdE7fbE3SOW4qqcArXoMxTPSWBX52mDgLS0WA OIMc1Cjw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tl7Tf-00000001IHv-04vv; Thu, 20 Feb 2025 14:24:35 +0000 Received: from mail-ed1-x52b.google.com ([2a00:1450:4864:20::52b]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tl7NA-00000001GRx-2hSV for linux-arm-kernel@lists.infradead.org; Thu, 20 Feb 2025 14:17:53 +0000 Received: by mail-ed1-x52b.google.com with SMTP id 4fb4d7f45d1cf-5e02eba02e8so1319408a12.0 for ; Thu, 20 Feb 2025 06:17:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740061071; x=1740665871; darn=lists.infradead.org; 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=m4WT5fr6OIw5ukFxloyy4nAnCUkCldzJ6nY0eYfLBgybSeq+DDOVNIwLv6NXYF3Z5V d7uIukt2SRGVHgsdTA/hp68y90sWhq1oyF9idfw3Mc4tYMkeD5QOu+vzCv3xFviVghiC 3rf+UFkfGHKg4hXwdwZkX8CQOYN+rRpX2k3HAG8zAwx/hPzHFNDWD7Cko6L4rTUGhu0r EJW2dMLOC3tiLxTT13fXY2hACTD/0y7bunJq4L6MQV/mmXX/35e2v4BaJWQcQotXDX3Q ALzRUBEo0ULHqxtHKj2Ocm/0zsAY8ZK64D1+cw7CoqwFQjYrBOy2t01w8Zq08y2i1BxN /lIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740061071; x=1740665871; 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=hlsJ9Qyi53V75bKv1pGYCilkvM3h+4bomph2Po1l6Vw9liHMKdTzivpmTNhzpHh+HD oSNtRNb2veya/VNXoTeAtBMFIXanKjSPVDeaiYwEIq9qGeYGUcZHoQQxNGZEAcDSwvKh CZEL5cdeHxhw/sPEJ4tLLvJvHOI8hdp0WZkezl9piv/7fdmlmhEGQKCS8AeXXio/nBYW 1wzvJ3xiGV4z3nk2XGNaU7gjH1AJDBgGkOFShwO+gFo8UthuNxUbfFQxbckPRBggBc5j RbisnKwwoMooP0bdb3jJa4BSbWJ7dpaqXUkzz43i54jw9C+Sx6UU8XCSNiQws13Iq6wW odDQ== X-Forwarded-Encrypted: i=1; AJvYcCWlKdXPnxehkrCvnqesB1RkcG79dLyP66GUiCd7UbPfuSCH3FteL4cEdYNUZqESxfHqWsj/k5wHWHGA+55eVfaP@lists.infradead.org X-Gm-Message-State: AOJu0Yzlby5tNEU5C1yvqhSNvlhtfCLMKDAgmDSjI9onjW887ttCjMMP P2TcDt4PGhq7ddFbEzgKIvy6UZHcbhCWH1n5wSt2kbNUZ0nvQxJ6X17/uA== X-Gm-Gg: ASbGncv8b4bGZ831nhgWQoknzO1yF4MIjqJCKvNsG0jKTT0u6o55yLJZ5x/WO5CFmw3 ikmo0mshnikExwd9fHjm1WAZvFDm1S7JDki2uLXyDxrCc5fx3oN18l1l8EkpCPoS9RPvt30YCoN LGQ5Q5SEBmwgN8EnCDRwYd5p5f4m+y18mrg2eD/1Vt0TFszBDDaboc9ZZH+lqGoiQL/9qRc1k/Y d5oxJ1yQdGZ4Ry3VjZOyrs6QDreXPOwJg2VRcw16U/uKRlSa4MUDFmzOcw38EHqvgHxcOq2PrCF zMkLMVjJDdCZbdBUcwQSOG4YW3Up X-Google-Smtp-Source: AGHT+IF+XJVyqbiTAhRVT2DX5gAGDj/R1pffrBAQNQzM7DfV9u3X2EU5bwoluW7W/73TKgTxtEDY7Q== X-Received: by 2002:a05:6402:35c3:b0:5dc:1f35:563 with SMTP id 4fb4d7f45d1cf-5e08950fc04mr7944322a12.7.1740061070649; Thu, 20 Feb 2025 06:17:50 -0800 (PST) Received: from demon-pc.localdomain ([188.27.130.21]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dece1b4f59sm12124224a12.6.2025.02.20.06.17.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 06:17:49 -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 2/6] media: v4l: fwnode: parse Virtual Channel IDs for CSI2 buses Date: Thu, 20 Feb 2025 16:17:24 +0200 Message-ID: <20250220141739.228714-3-demonsingur@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250220141739.228714-1-demonsingur@gmail.com> References: <20250220141739.228714-1-demonsingur@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250220_061752_686683_B16D3F8C X-CRM114-Status: GOOD ( 21.01 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org 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 14:17:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cosmin Tanislav X-Patchwork-Id: 13984068 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 0191CC021B1 for ; Thu, 20 Feb 2025 14:26:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=xrabmWDNnjDbFDGwlYLKTrhkDOrLGupRTNC+Vz/SZV8=; b=wlhsFDwNpWy49S7sv/E5kmEpbh VLa60DXrIE3ZCS8SPUfwm6yrv9DnUJjIWPd28nOfHJ7yujrZ30zqPmqbcUGmqVrgXx0tRRBibi4NA ABLSsosNJJN3Z2GXyenyLx6TX6zrkeXrJ+gWI1Tgrgi9Y77O398c2JIGzsylkfa1DKRhrcPTyYVHS 9OaXo3S2APngen0prCFok2CRkdbu4z3fAYr6Es6oEkzRpCSSQnw18ce1PndTZi2FvtyUB3cua/W/+ oHHRuC90cVYkAXawa+iOEDdKUhZEC9VtWmU4vu67R20s9VtTP4QpVcwOT2p5eo7pM1OYjx2vl85Jf W2XXkoqA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tl7V7-00000001IeM-2mK8; Thu, 20 Feb 2025 14:26:05 +0000 Received: from mail-ed1-x52e.google.com ([2a00:1450:4864:20::52e]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tl7NC-00000001GSp-11k9 for linux-arm-kernel@lists.infradead.org; Thu, 20 Feb 2025 14:17:55 +0000 Received: by mail-ed1-x52e.google.com with SMTP id 4fb4d7f45d1cf-5e058ca6806so1702954a12.3 for ; Thu, 20 Feb 2025 06:17:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740061073; x=1740665873; darn=lists.infradead.org; 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=Ukiz15mm1YC84k4JopZJgNSIoaZhIQkV9NXXbLo48Q6uICVCPqnNqrhuaMb9LwvJaI nI/l8GDuvh9teNbTkBFw+lpOeLybK8sG1WhVdfgc0L/6WxSBEg5mN/6y7cHvK3d59YnA GgTVlJOj4p+6e4KqxSSBvlDaKmUtBbSQTLXVFIWhxxh3QUReXIlxL3IQDbuv3n0KlXFc by+sNh0mIHPXkBIr4DJQlOzyKTIiSnKFblFyGnQ2N3c0Jhj4vW3jAuen5QXc+zOuuxoF pCvzGY3qYvDihbNr3iwE0K7vQRUmkyADmkW532Op3iHJsPKLHdkN2U/ZGmu8E5tUQ+PZ BQdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740061073; x=1740665873; 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=fo0sDqvT+hrvuKASJakYQwouCDfvcHR7r27My2mMSj0xyWsajRuU1DZWUp5Sg8BYNP M6Gk/hXbCW62T/Q8nRMIAbFWVBHAFfd4jK69TnLPUAEZM5u0RQuHPAvyQMstF3xkAizh igXGFs+N8MxI7GM/0L9msO4dvsKRMv39uzJqloCSV2g5sjgXNMFZEv0ps3sdmycnFiCs LbeLWQgHwp1BnaSe1LnlNl+3OzldDxzZ2pOkjQ8tUIMmvxjtkzuGY/hsooCtk3uCHSyH iPGFtsfE4gqEJDyEHze9GTqkcuFKSC0m6SWafOuIasJKQs02TM8frckFdlOQG+DN7ei3 4w/A== X-Forwarded-Encrypted: i=1; AJvYcCWyG5mIDmTbf429H1EMQ4w74tk6Z3/W8i7iTe5zolI7PIFntNDQkQVYXZ1bE+RUHd2YQB5QnO+wdku12M5tjG1g@lists.infradead.org X-Gm-Message-State: AOJu0Yw7r9fQmWgVcx/Bq9NIaWFIqUT8uwd0IAggGMXb7YB34G4TOvuL o0tajl4nmS1XXw79ztPU8vFSqgf32Npu6fN9N7ZyPoXxsx2qQl7l X-Gm-Gg: ASbGncsPttfAwcfNJsZX0PC5r8EFNRirs276xVzq2MxFaiMfIh6QXPkxTeuF5ZDetUr hNWMFdYoBIc1G+YH+MHk9/0zTQHcTtcCxHKRkgDiqYz1rWiTlK5qkRSMICgmSXb1oTEDetTEEOR ruJ+58MSR1bq3RHffY+Or/BI53zoCNDU39lzNHoTufBP32M//8WCC9kKkbO65+S2Tu4pGNMJgKW YyX5CBCaV2EWZ8KriP8Kb4XGS8bAB8qaoTvZf0H489wb0yRDGDJptm4UYPjEXmrjfQD3wKhZimX hjfbek3MxgJ7yUqH8tJe5PBSdE6t X-Google-Smtp-Source: AGHT+IFJTXX+DBbct/Jp9j7V17SgXIyxDY15+dtpRb6rLc//WW+3bSD4xvTcn19KGL1thCMxcgoDSw== X-Received: by 2002:a05:6402:268a:b0:5dc:7823:e7e4 with SMTP id 4fb4d7f45d1cf-5e0360b4cdcmr24048577a12.12.1740061072625; Thu, 20 Feb 2025 06:17:52 -0800 (PST) Received: from demon-pc.localdomain ([188.27.130.21]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dece1b4f59sm12124224a12.6.2025.02.20.06.17.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 06:17:52 -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 3/6] dt-bindings: media: imx219: add support for Virtual Channel IDs Date: Thu, 20 Feb 2025 16:17:25 +0200 Message-ID: <20250220141739.228714-4-demonsingur@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250220141739.228714-1-demonsingur@gmail.com> References: <20250220141739.228714-1-demonsingur@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250220_061754_282300_DA460138 X-CRM114-Status: GOOD ( 10.24 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org 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 14:17:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cosmin Tanislav X-Patchwork-Id: 13984069 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id CAD87C021B1 for ; Thu, 20 Feb 2025 14:27:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=1V5REDmi/qwmeZmzS61DPGBCJO64NPZWi8x4XF3HxB0=; b=a+2E/oS9fb3jS3E+1rwV80iLEo 7XrlYvfxo+aTVxfrRMj2iJVHujThVCCZ6wfpD0vVeiVRqKGhizY20zoudTGrGZrglmtD+9PZ4YtGt WHDktD3ijCG/OmTLPhPZk7TvxXNLWTxwicofaniCn1evaO4iiHrgO01v1Ev4j/ozb6H1gksPF1Mjd aIWKEkdeMEjgmGW4u/RGTxbK9owl7brQYuWGkXVhAqL4YWhP8pHMioofQAhsL8Yfx0DBinsbg96JQ ov7ivuxxKXVpsqgf8HzhvK/rzHn4LAdBPHLEPD10rcEDcKh+FFaWORAyWYMWD14dVq61GCQET1EIB nxjQdFuw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tl7Wa-00000001J42-1frF; Thu, 20 Feb 2025 14:27:36 +0000 Received: from mail-ed1-x532.google.com ([2a00:1450:4864:20::532]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tl7NE-00000001GTy-1fhe for linux-arm-kernel@lists.infradead.org; Thu, 20 Feb 2025 14:17:57 +0000 Received: by mail-ed1-x532.google.com with SMTP id 4fb4d7f45d1cf-5e02eba02e8so1319531a12.0 for ; Thu, 20 Feb 2025 06:17:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740061075; x=1740665875; darn=lists.infradead.org; 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=YTLOiRuMkPC/qBqjTtyFYAU1pAAknG2jsr0IvotExS2P5dJBFjkAZSovifeCj4OxcQ saIingPaXpAhkbu2lnJl9v3rYMKL+VdH+BubKZkTBqCSGQSgxSkAmbzKiedwk8zBgTxf mLG1nfJx3JBpYJKtyl7VyfzS19yXIsD6JicnInOY3VtqoSjpWlPtQSb8XVwiFHdMVnoO uLJ3ab0CUrPlSGej6u/yxcKSNPP1EJxA2ny+BgYW20tp3iBQnVJKTUsr5nIgzGXXFk3Q Cs04eUJLZZPheqT+Qyt2NY95rR+HLH6SQwila+cA3min2aWwNV1gAhqUi08hfu0RKTXc CEBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740061075; x=1740665875; 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=jeeiVFtGcBlAGLx60yOrWNPqcK7V5J6YJ1efRSerSYhhaOR+3VgSZ3ixxkOGy3ZLMz IoFgQ3s7ySR9Z4e3MRXIzQY9YIWjAH4OzP2ktj2vuBC8QvBMsQDxf4risvKbZGPdUeUg UIGuLW3eZcXOYWEGlU8n/mhwcmILDInmzKLYVDrdn4xwxIZeqviWthRz26CSOWRYouBS pXrtddACQM7uU4Da9mA+BgTi8At9C9YxHI86tvgSrS0nJ/5c9Vum1aAl1rJ81FRex4Ng 50bet0aV6NZ9r1dQiG6C9/VUZtDVD5u9G7t4mklaIKdff2ElWwFZvx0wRMTpInyZVl+J psnA== X-Forwarded-Encrypted: i=1; AJvYcCXcQ5j5LpB9Y29yWdimB+mn6PlYVyuVBQobUFb/2LrNr/+T9WWXcl61uDkkGf134eMu1rqvK1RCUCafgRLylxe4@lists.infradead.org X-Gm-Message-State: AOJu0YwgxC9dVum6cPAnE78Xfx6AHq0dG96udBRofvixjvmUN06zpDk4 zzgmhcWRA+AsyyX/vwKwW7mm98UvVI2Qk1o2PGIajLz59V52Dn2o X-Gm-Gg: ASbGncvd0tXltpXY0iVdceSR4/XrH5a9poREAMCMLlv9cES2UN3IJ8V5mBj6/MVJGT2 GFl9d4DSGHO5OVJ6eb5pJMWxewPM4lfW5QMs83vdCK7EfFJHYv+8m9xXGnUyNOsixe3YHIxiw3F ZYoFAse0727OtEz/3b+WAd91JOKnGOyRrv/I51mQ8MUKGX/fyzd7Wxnm1Ok7NCQNQLJNGzc4HTn N1vtX9+6i9I88tM80Tk82dplZSt5C+G+AZsN63qkD4ckmJWAXBEqqzyNCs4cVySqeePJc0Q1u23 YlSudGkmgBFj5f/RBRJ+fl/9Ga3q X-Google-Smtp-Source: AGHT+IFFJvKPRHucc1r4QGSkduMvmNCXiQ/0XGioq753EqOOggpo2+xqmAhfLNknWvVEGi+w56gFTw== X-Received: by 2002:a05:6402:a00e:b0:5dc:ebb8:fe64 with SMTP id 4fb4d7f45d1cf-5e089523080mr6461869a12.14.1740061074548; Thu, 20 Feb 2025 06:17:54 -0800 (PST) Received: from demon-pc.localdomain ([188.27.130.21]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dece1b4f59sm12124224a12.6.2025.02.20.06.17.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 06:17:54 -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 4/6] media: i2c: imx219: pass format's code to imx219_get_format_bpp() Date: Thu, 20 Feb 2025 16:17:26 +0200 Message-ID: <20250220141739.228714-5-demonsingur@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250220141739.228714-1-demonsingur@gmail.com> References: <20250220141739.228714-1-demonsingur@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250220_061756_436847_CCEC1B2D X-CRM114-Status: GOOD ( 12.92 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org 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 --- 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 14:17:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cosmin Tanislav X-Patchwork-Id: 13984070 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id CA4DEC021B1 for ; Thu, 20 Feb 2025 14:29:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=th+517ZC0V4fbqH9CgBsf81RO0nRc/LViRgQwQPk9dM=; b=Tw3RWMj6niyivofY+eIbTVYQKi MrrFX7Kdtkl/UEXfc/Opzn28i5MY7xln1D/9TRUfPfrYuc5MmVa85IK5hE9gU0Igxzdq5r9K0I26k Li0SNcMqVYfrE1iXGOW3kMRbouqHRmN3ZkFgWsMIZjLgGuHp6jNFLZFNi5RdjKG15THCZW1CIcI9u kVnSq+n3PIdWHpemVID7eO2wZaqQOQCB2pnmK5cMEQm2bVmCGWpv1QySjSczQT/sswnp3yydI7rqf CowGWq7XspaZ3B27ErAXTx+Z7jRJ0+PgyNe2yBaR9zYIhdANkG4nL+SHTaDhpjmkw+AREzPXhJ18O At7IHZgw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tl7Y3-00000001JZl-0I80; Thu, 20 Feb 2025 14:29:07 +0000 Received: from mail-ed1-x531.google.com ([2a00:1450:4864:20::531]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tl7NH-00000001GWA-3Xmf for linux-arm-kernel@lists.infradead.org; Thu, 20 Feb 2025 14:18:00 +0000 Received: by mail-ed1-x531.google.com with SMTP id 4fb4d7f45d1cf-5e0573a84fcso1358423a12.2 for ; Thu, 20 Feb 2025 06:17:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740061078; x=1740665878; darn=lists.infradead.org; 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=D0gCQAVmXVuWWL/M3WfkD1sfHZcScpUwseF/FSiEm0az3T79ABd3iDWyP+uw9OIBDr 8wha6zi7zu7eDuhZDa6uM7C0Jiinj01DyMaMEQPOzp63RDlmRCcqbt3fOzp3lCGCXr1z BuPQP8tc7ldYVFVeGBGAxXyUkvq3GfVKaf75KSRVbjedqcHkgH2sap1pO/CXFYcXsXud lanYbcVUEn5P2Hn0nsGWGktdlKKZqnoo9oRU3ZFVi5CoUU6OEO7OW04gPVpUEU6FhdN+ hmY3W7tANcPGkvajbNKrZPgjal14qyzUMZE3ICgzT+snSG7cYsjZ1Efl9b2+wiTH6q7w 1L7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740061078; x=1740665878; 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=gNbPRuwk8w0he09F0H+gPKook5bA/BRRgydI+QEwGeKVoqi7Eb5jTr3qZPu/SDhBao NoXj6MOfppb1FtPr7pTCYWl3oTtmG2jCRGT1GE2TPjzlNNY3tC2Hdc5EA/9/uFCN142Z 2XCOv4JJj8x5QrKkqlHZY1ZSNXRnjWqXNLLY7vGbXdIPOPRulbJBI9bM0YYM70b9kOe9 PGn/XNn76Qiyh0yNnsHuZ1yjlqcA/E9P+qyJa0VI5vQ9APq6ga97p63fMDvFm5dxYezm WQntHOiOT+38DNQQ6ItECJ4WY8KivBA+dBhOQnc26UOJwJm5hMkxQY6JbeZyFQcz6t+u prbg== X-Forwarded-Encrypted: i=1; AJvYcCX2+6dtgU+XjnoNIJXRCNWG1tTaoAIg/sgYbBP4yOh0waviKsxsuIFOxGGtpuJVhgaWyPMWlB84+Ah35u3uOc3p@lists.infradead.org X-Gm-Message-State: AOJu0YwjrDcm1xf3Vvc9J8wXpeC5aUJ2Wc/YmoPy89oNd0yCwLbUBedF BvM4d/MkDjq09TG56etFAUSogbpiLRf41WKPhyCjseG/ldJX02Fw+K7QrA== X-Gm-Gg: ASbGnctrkSQgDnWDhEoN7hyf1g/0+Xs7uEXdl5cBf+6+4YXbCazHxGYDbMXTdLUSRwQ aIV1xKi7vCAaX4l8FKT46o3LwmwJQibdYbQLKp6lqNch5H9zh43uR1FDPXW5lZE5Au2N2h06jrh f8/EwuasFNiVyFqa4BE2tBrvNCGxD0uvODeHgWY5m+hXg3V3b9XYMh9eC0yBsfIjYua21+ZcU97 IHKTb1h2Kh+yf4bax3A7hHZziqybygycBENFJtqOaCHCMGzpGwtTSQRssO2K27W6wxm5sB8cEO7 NmapXbDXZkMZjUPmN4YA7hfINgj4 X-Google-Smtp-Source: AGHT+IG+yJuG5x65qDSW6wpTU4i8GdeI5QaF0F4bU7rg7alr8iRr1hZM5jP7CSW2D5EyG71m2P93dg== X-Received: by 2002:a05:6402:2084:b0:5e0:8c55:52b with SMTP id 4fb4d7f45d1cf-5e08c5515cemr6215804a12.15.1740061077904; Thu, 20 Feb 2025 06:17:57 -0800 (PST) Received: from demon-pc.localdomain ([188.27.130.21]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dece1b4f59sm12124224a12.6.2025.02.20.06.17.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 06:17:56 -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 5/6] media: i2c: imx219: Report streams using frame descriptors Date: Thu, 20 Feb 2025 16:17:27 +0200 Message-ID: <20250220141739.228714-6-demonsingur@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250220141739.228714-1-demonsingur@gmail.com> References: <20250220141739.228714-1-demonsingur@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250220_061759_889644_4F6D0805 X-CRM114-Status: GOOD ( 13.46 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org 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 14:17:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cosmin Tanislav X-Patchwork-Id: 13984071 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id DD51DC021B1 for ; Thu, 20 Feb 2025 14:30:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=YrD6Cu+ma2ey5dVvO2q4VCmeyk9hPbaJ87jyuD084/E=; b=UEEOLNjkf3yubANB6WlU9rtJ6l C0YDMeLGcoNKptwqc1VuoUsSakM5p5hVyVtXRORbXA0argNuNdt8ePRwhfBpgQlTpZcnCQfg4Edcm VOB8jeB2wgtwn9eiQCW/OKFZbtgq4NJ9aCFVvXkVyNtdig2+9HEMCQ/9XNQJj7RGuTRKsfypoBKjC 6/TFnVpuQaM1eTCR6T9JM8GL3XWDZKVXA9ZK8Asla8Fy/9ntuN38tyr+8OeEkZgWZYZSW1inmZKGa yqRMcj+Jy5m/ntTw2cLk7MFTbVlPhxo94TRx72D2N6r9RV0kbLyhPeXgVuz7jbc6XyjEjpNXpe9RW JAOdPG0g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tl7ZW-00000001K1f-31j9; Thu, 20 Feb 2025 14:30:38 +0000 Received: from mail-ed1-x52d.google.com ([2a00:1450:4864:20::52d]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tl7NL-00000001GX3-0jeO for linux-arm-kernel@lists.infradead.org; Thu, 20 Feb 2025 14:18:04 +0000 Received: by mail-ed1-x52d.google.com with SMTP id 4fb4d7f45d1cf-5e04cb346eeso1551100a12.2 for ; Thu, 20 Feb 2025 06:18:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740061081; x=1740665881; darn=lists.infradead.org; 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=YrD6Cu+ma2ey5dVvO2q4VCmeyk9hPbaJ87jyuD084/E=; b=OlGsxHX/lB6gjPNwqb67/RJdmyoWHF2bcNWGCVcWbbZgdHwAqdEYGL+NzYpBi39gUo t4Fl4z1Ntg2t3pEFqN4ttuJptBIygwumEBWPYwe1/OWtR1s+UxSArBToavtX/7T1SfJc 0rEMLpY32yWu74I0SYvnmvnrlqmhkFlq24eWXsqZg8bpHhG5+8nrNBeBX6gNuMsbMISQ 4xHjKvrfYROJkB6KhfJh2cq4zTJJwWSxHhhwCjYE27TmvjGSBuNvGotI9d4e0Nd/9paC wJP3DKNNI4VdbIzJi5yA4Vj0gKAqAeY3hc3uuZzwDQsmjlrFWKnXXo1Fr2+E6O/p+Hux DISg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740061081; x=1740665881; 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=YrD6Cu+ma2ey5dVvO2q4VCmeyk9hPbaJ87jyuD084/E=; b=Eq0I4Nk2pac3viJzEhRI6WHjfr01lveuagKeFyaE+IF2NBq0WzbC9ypZ9aUtCVQjEX Ep7WXeJJ7iDs5dENFYpedbz/Ev0uWbSRmY/q93GIxzPl4+K/RZR++UZsJsoSCrocjv3d CcuxYeqONuYt+pAT3r/RdVka3V+UmDqLiq3HnECSkLnpmo22y0tWPtgkLWLTwIVNPm4r SY/bQi+OUa2cg+yq+Gcss0NNp+i06IkF6CqLmoh3LMz9Kh6hwi0zBLxWPv11vonOdXSe lcG6d0HqYtqOfAyGppRKG2gc+dmhd1WK+/p5BsS4WOsFH7YjjNKAjBrmnwaIsfuCUIEJ 7Vaw== X-Forwarded-Encrypted: i=1; AJvYcCXr/CXf85GxlmDDQMOvvStk6rdWS2vLcQaden+5koCespUtmxrTZSzpNbkE2okNdlLzBK1Lt4M04C5xxocOg1cm@lists.infradead.org X-Gm-Message-State: AOJu0YxGFNK1UiKxhfIs9BBHU2T1R7ibGW0lIAX/0ktE1JBvg84iyYej T2ZInM8QikgLqgwx7PXK5h/TzOe34T7LtlrzFvEL231+znBfL5pxOYgS0w== X-Gm-Gg: ASbGncs+yjCW93y2YPHUWc4vrr+PSdXkp7HtTwTihcdjdw91wUb+HbaFZ6mY0xmwZjt zPvllqdqB6lDjbWTtvidm/efDzYShnJwmv7FoVChkoDURi5BnUZQ9si2LTCjh8Rmtt6fgQHSVu7 ZVrrtWDJdSOReSCgOUdcP8rTD+bcGRM57m5Unlv/zqrrPJ2JAwCaSwlvoys2D2Rq2UstZT6liFR 0FN8sa8M4INPazgqZOaJiOvGC//3XknEiGeiqguU6xnfx2daU/F8HpX2Y29r1ZbY5mSbdQbcB6Q ulDgezfQZaiwwtTKtX7uYg3wfkFQ X-Google-Smtp-Source: AGHT+IEI5BjiSueHGowWB7V0AX0jphOzOkC+hVJDCuWo2okxV45XHcKYucaW0FwCHe0/kc3RlhAM1g== X-Received: by 2002:a05:6402:35c1:b0:5e0:3f83:92ab with SMTP id 4fb4d7f45d1cf-5e0a4bcbb50mr2539326a12.30.1740061081463; Thu, 20 Feb 2025 06:18:01 -0800 (PST) Received: from demon-pc.localdomain ([188.27.130.21]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dece1b4f59sm12124224a12.6.2025.02.20.06.17.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 06:18:00 -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 6/6] media: i2c: imx219: implement configurable VC ID Date: Thu, 20 Feb 2025 16:17:28 +0200 Message-ID: <20250220141739.228714-7-demonsingur@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250220141739.228714-1-demonsingur@gmail.com> References: <20250220141739.228714-1-demonsingur@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250220_061803_211204_7A702405 X-CRM114-Status: GOOD ( 16.20 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org IMX219 supports configuring the Virtual Channel ID used for image and embedded data streams. Signed-off-by: Cosmin Tanislav --- drivers/media/i2c/imx219.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/drivers/media/i2c/imx219.c b/drivers/media/i2c/imx219.c index 4c4ebe54f191b..5790106b35936 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,11 @@ static int imx219_start_streaming(struct imx219 *imx219, goto err_rpm_put; } + /* Configure Virtual Channel ID */ + ret = imx219_configure_vc(imx219); + if (ret) + return ret; + /* Apply format and crop settings. */ ret = imx219_set_framefmt(imx219, state); if (ret) { @@ -994,6 +1010,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 +1023,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 +1166,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: