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: 13984598 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 C5FECC021B2 for ; Thu, 20 Feb 2025 23:11:41 +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=q6sF7D0aMnoGJzIEIsNwHCGDd3 WVDQCxwYU29W0xvbN0ng8IlGvhsqMiD3IRNwY+YDm/1GJt0oVbhRHL+RJlcjkkfN4KA90mjMnyL00 hhPEHuk3wfP9P6jPeExyRO5aJ6l0g5u4dp1eGY02P3dZmoKOv754XuApLQkLofI1qvETEPxmnZTQs 5Yh66q7UONfpeuxEy+zCTqs8ahV1ALf+GJUyws7ky1d3AYh5vLRSxZ/r7BymdnlRZKq4KOAwKC82S 0CBEGVkS3uSwDDrjF1dvrFXwB81sYvIwtcni1xNbQIzX1x+Su8Wpw6IyyFhAT7iw+8U11XfvncE0h i85gQnWA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tlFhZ-00000003G1p-33Rc; Thu, 20 Feb 2025 23:11:29 +0000 Received: from mail-ed1-x534.google.com ([2a00:1450:4864:20::534]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tlFeu-00000003FGw-00Uu for linux-arm-kernel@lists.infradead.org; Thu, 20 Feb 2025 23:08:45 +0000 Received: by mail-ed1-x534.google.com with SMTP id 4fb4d7f45d1cf-5e04f87584dso2338648a12.3 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.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=EDv18zb5pFdYVXwwBphyglYWkxStdwSLwpe4sDVF4/aqcZH7ddVH43NNdIwgKHboZE yN4zCTefzUJOr4JzeYd0qk5q45eTF3+tVm2aMegTCV/HtzI95VbmJR0sC14ch3F7S0gv IWDtAbLmKQ8ioSc6owcq/r0nln+kV/QdYbXAflm81vJ54cF4FplBub9BGZlnLrmA02C6 OcePpLN38EPVZZakVvW1Y1oOjhr3zLDD3ayUcwx053NtNBtJgkcFGrE9Dw7Boz/xtjRw /7RhacM21ukAS9Laco3jbl/SJOhmHv/JH2vKkHir4NUVvvNZYIXG3SnxYbrmPAc+LoHC mpyA== 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=evz9IhFxfvxvk2eYWXnUPf+ncFzTsEezEowlVdN1tkIWUgtI/AsQ0o0qiJKBQfABvT 6TCUdpg3G3XrQLUWhkrZjlr1avit2NlcdoBImExLjOfnTENI/1dfV7f5j2Lb4QIJSoSS nEq+KjtQDJQAxsB+V+RGE8L8kSqM5OH5jZGaVlNTHgiiih4hzssg0fMh8fMxaAMrrWq0 NnQbi7mk7Yx8dSTBot+iNQbA3gVvRi6lwS41L7wuOcMVvGuBJ0LIUMAE/6k86RAsHOv4 E2oDQgQK4MCFk7YSOy1VEaCi20uhQGSCqDCPBUY6v7YvYNVn71sA63sqSlykBHUBzBMu EOFA== X-Forwarded-Encrypted: i=1; AJvYcCXKRRcod2eBirla5zlCjN1dqoY5gNXdTHSEtgtFGQCfqEPRxUW8q5ZpBC6a0QYtO3sekgFdJzr8SaO/x4QbJ27I@lists.infradead.org X-Gm-Message-State: AOJu0YzRpCS6Px7vc2m2lZgDMdoTQmNhzX6xPFfbeX86WkeAEtd4mWYx drhDUifnM5dJU2fEp0QJU6n9npi0TK5IJTSNq04ch7PTI7H+71xd X-Gm-Gg: ASbGncsiuHkU2PtmN7BuExMeYRyCdHhLQatPE3WWGiQUv806uUXU4yefjYN02bVkANa mXnoxFUvnvzbySfwzlJMEH7wHcacPnpucg2E86rG1Fjv6mW21mZXC2vy5bxPV8agsXDK0CjG6ta We7Z90w9U9WZJGtdM8JKu+60c7EAOUgoqq+A6R3sxeh6YnMdN4shZNiLqXbVo4y9AHyCN4RPVM7 wJos7qT59Ql+4Dmfmiwh8lVFelZcKYPpvxEEamrmEG6QBefpIkBAmXE21rUze+m7T9xb1/tVJu4 6NHfsXec4W1EAw1D72rorXoeQd3/ 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> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250220_150844_032566_A49F1000 X-CRM114-Status: GOOD ( 15.23 ) 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 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: 13984599 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 8512EC021B2 for ; Thu, 20 Feb 2025 23:13:11 +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=mpcOBj4ID1oYIjla2sFU1NULpW uVx/TJZidYoWVedqt5pk1YfAt6J7yHcoXc46ae5hErvBel2/Ami7rPpb0gzQ0XCxPdNF0zojwqk3Q xZjDc+sDwjbMIkMHhb0mslFUiwgaxZtyxsBTwRRR7WK8UQFIfAcC44cI4TEHOhukxsvTklWa6Qqxm HhHTst4mHA1sqAi57XoDNW+lgeJaQuqr7FN2zSXqNIFc3PdTAkL9cbFWDHPj7NcaxZNv03iUhJQxT Ri4bGljQEwUVi9ePi/0GMd782bmOkzt6TGsC2PW9+aT8/EPGBoh035UsameTnC2Ot4wljM8XV2WTR UOGzDrMQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tlFj3-00000003GMY-1VXG; Thu, 20 Feb 2025 23:13:01 +0000 Received: from mail-ej1-x62c.google.com ([2a00:1450:4864:20::62c]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tlFew-00000003FI9-0GMQ for linux-arm-kernel@lists.infradead.org; Thu, 20 Feb 2025 23:08:47 +0000 Received: by mail-ej1-x62c.google.com with SMTP id a640c23a62f3a-abbae92be71so176012166b.2 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.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=VFCj7PbPz6QBsND8OI0mKAKkezM1suzxlQZCwTkgEi0FUH+ta0+a1oQa9fCRzFhF9j DEJgrmnoUb6cF6xnBZIcVXZtQqSkRWSYje2amp+kQZbC8DstA748RkTf8nUvqRH1EhUj IPe2BrU/XRyvbLqOEocML3Tav+C0cq+6pLcIyqs42hvzuWlgSdAIBa6gi5JA4IhfQ5wg NPDF3XWA59otSlltvPOaxwGlmdBaykHN+U81ASZMN2Ih+ihKtSMXUkHCSQmT8UJaPOWR yytr1zJUpa50VcKOZkTqzRQm+Q4zVAHWfZj4ERcEIT/udWOcH1tivqosMXlRYknALI0l WvGg== 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=E8Phdk5prqjcSScA9hQTPZcLqMtK7894NBs2sg0VGFKT13Y7EUWmYX7IGztwUDM67b om9pxRbFa3HhXLGskwsjoWX6O3GRu+fTVYnLdmWqmlS0rW8ihyp0vdvufTkwT6ztq92F iWnhXFEC2JQ7O5OVzHgERCkw/UYXjo3N1zkmg51mhqcXK8Qvd3Tnf4MTznBK1ZApMdrR aeBzYKvcxE8WG/9LkQWykpxU80P4ZMvU9VxGAeMrT5Owo7CsSrvqjq0c8coiBMxT12rP K+GpfdtSQYYGNCpogxnFpp+UY0d+ZMdcLbv0Fs712udK+Av7tIWcvH4I24C0AJTlXrp7 PdUw== X-Forwarded-Encrypted: i=1; AJvYcCUVNDwWyLvxXQeOj7YujP2GLOkQK3GQecrWJ6EwloaqBA6ljrKEh8wJC/Q+mYd5185+XWlqf7SvK1E4h3LzDAuJ@lists.infradead.org X-Gm-Message-State: AOJu0Ywd23JMii8BdYCbLh6JaKTtAyi0kVNNNSVi4RajVC9iaetM5HTl zQbAaXHpaTmkY703tQcK82t/xMj//tmX0nSoBR6lIS3iqF93mVSw X-Gm-Gg: ASbGncu4VPCH8mxEKbc78mrVnLjpfBIVawxk8A+GsbKXyR0erCHW7l5JDynaFGKc1gm CYX0JIUUo2Wg+jMCpY1iH1VLnoUtqLkuJBCU+2ocRuBy8aVH6bROQjBcotb5fLaHQj8CB4P10/G GO663SAPVXId4CiUBdHigaNoXx5GWK1XQMtGe4zkGvAkJq1jWGZIzDowTyp7KIVpBwTRnm4TR10 tXGJfqw9tbkmoEFaRtvPiYX7zrPMPE9wJIZi2fvjNsOBR4qSbFMMPe2/fCxf2QMwEPecpBbQRIY lzLppmMq4tWWRUws4F5fclsGxaNm 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> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250220_150846_095099_FB1D768D X-CRM114-Status: GOOD ( 21.12 ) 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 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: 13984600 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 AF3CFC021B3 for ; Thu, 20 Feb 2025 23:14:45 +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=YigDtq0HvHVyovIA4InpeqDnj+ VbAlyae3BO/13fC94L2mw4Tf7lB+l5JtlnjNbyfxLJEw2cq4J/TaHIVr9gbV6xPVkgP6FBm+Prd9B Jh/whJC9+JqX6iCEJECQgAMf2yhY0md3kc01qnjvzXlB0I52hL1a7EqO8nkNxnGgWt+zoeYr9hIuI os4JjWtOpXUdb/OlWlka5FrQl7DWwaSLRcPXR5ZxKxx+Z01TTLZmFpGpy2J23lbp7oGivwcX4HBi+ 2tOhFaJRS2epYOt2k7ydt5vyU5Y86Jh4/rO0HDkH/Qjx8uZDucJkvnYYop4N4Yv2Lnu26LntwcPGJ vUtbkvvg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tlFkV-00000003GdE-493r; Thu, 20 Feb 2025 23:14:31 +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 1tlFey-00000003FJH-3GSw for linux-arm-kernel@lists.infradead.org; Thu, 20 Feb 2025 23:08:49 +0000 Received: by mail-ej1-x62b.google.com with SMTP id a640c23a62f3a-ab744d5e567so265226766b.1 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.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=Py9ZLPh32oslJ/yAwH+E6nOWyAQdy7+aoJG8tv2Tu3EgIh4/kmeGbPocSyl5+V+9sK BrzjTY3rQZpddGTtvkTEBWXOZ+kjcTqdtjubGOWksQYfOA1qmbcoG2HihLWq5Uj1LpJP QlKYuWZ9hwE49nYqtJlt7TmLz4PnZUYWMolu4Pu66ylh+WrQWjwRVGX9rfK4GVdsYMKh mLiWOveQBEoEV68IPob3D15ZiWatrgsjbs5UmqLMzcFcYG9nRrIS6x6AhGHKqCJgnE2l C1FbB22rjoQyyqwgDlUWw/UkurOp5Hnjlca/bZgjsOwaeRX3Zl0pn8VIBKYn1XlL2FO9 MP4w== 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=aN2p6DSbVUg+p/3EupUEaD5+nrkfMFagbNtqXcnmnonPu4DW52TkghcalTWhL/YcHW mG7g2dO7nrA2v0Lr/5Hm41gsILrzZIV66tk/Xe1cm4U2sE/K1wL5OVC2gsehuIJ/GaUT hp6ir8iQ+00CixQLLP7UQXHGXWyzzQxYjPmsRqhyuH1VqEroS40NRB9DRRcTvNbCo0nl KTQO2O1dJu7lbQhIUw6KJLQm0FaHFlkLSdwPZq6x1UvHhNLUsGlo3/l5a2WU/roiiBZr /vfWx31qKL0ie9mZSVr6Oe78WJ5uH7Tom1Blr+22bWY0hymReQeD5gj+HBAXP8dHJEzb RmUw== X-Forwarded-Encrypted: i=1; AJvYcCXgTDR14Fd3FMgDMGtit//GXE3uicilOiZOyVOVkjpduetNPkwdn0qIbm2YZVyKqNaMOO/g6cWBpDZUc0upVrS6@lists.infradead.org X-Gm-Message-State: AOJu0YyYVQrODQh7nc+dR31bQpp3wR1X655YKRHIRvwdn6gr0ggbq8Ai fM6HerTM0bSFlBlHv01uB5NYB1yv/lLk0RepGqistVpoKQtMnVu4 X-Gm-Gg: ASbGncsWIf7oCBko0X3UHbsud+oNJVseOrfEkAV8OkqjU3V14888Tvgx1vMRiNPlOQD ufgBvGhsUiqunlcA4cgW6zz8fgCdYKqKkqf2aig3/OpwF/BONLaZOQEMwfygKW39l80sD9A/e29 F+zq76LDQWVNyMubtDJx+moOkc3Z3NK/J4u6jg+X6TOU7EVplV1isj1Fpru0I7FqWByeMExK3In EjnvcGcNhp9pINIc9mH1rsWs6MWe6QSusOW1bIe+mdksBMRE4KDXb0axReS+rrSM1pioL7q2vOl 6Bb8rC77lQUMCJlvdAV5GEfXr//x 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> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250220_150848_809581_4F498110 X-CRM114-Status: GOOD ( 10.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 --- 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: 13984602 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 62B2CC021B2 for ; Thu, 20 Feb 2025 23:16:12 +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=TQJ6OcgwM5QR3te7mcORKEoKEB NCzwkX3bBLLS6b57OlSCefRc8qJYFinaJsMx0WK1tiYWP4vj56It2lnjDH8p5q3K1YwJH7gkvDTLY UXR8mA0puBbZM4e4iTqxPB33wq7dFP9aOvWUFdJQLe6BSG+UVKJF+prC/Jos3LUcbwxWHbRvmuTEC fJFql9IZxL4bbgVkfkqyeKe/PmQhqXeXOzIrMQKCf2UBqZTayXkVAjTlJuC4y0qa47JJmwcvU1VkL 3f1oZSnac7bkIvXH7jMG+F+OlOhx1vcM77ayjpZ73hainFwaKADk3VHJZne8Uo/5Bh1aOW4muwfFD gWcALJ3w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tlFly-00000003Gvq-2uos; Thu, 20 Feb 2025 23:16:02 +0000 Received: from mail-ej1-x631.google.com ([2a00:1450:4864:20::631]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tlFf0-00000003FJh-2j3c for linux-arm-kernel@lists.infradead.org; Thu, 20 Feb 2025 23:08:51 +0000 Received: by mail-ej1-x631.google.com with SMTP id a640c23a62f3a-ab771575040so464176366b.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.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=Rt3Chlq++uM51vR3rdo9zbAe8Gi/jDw3NVEOSMpluZY4fywKjcHEsPcPHFWAVTWi0v vIso7V7vV7Ik4wK7pdxMccpQ3dFkxCoJEmD7RgdbusISEltYemS69imACskFZz7HR6zh egyetU9wRR8LlarAfOUO0rc9cTvfz1ypz7IOx2SCcufZbqFqQevRZnBrahCLOrt3mMeE dgL+akKsuvr+9VqBBO4fScct4wlF0XXvDKN79jGwYNf1xgTa1r0t4HT4b/ntW0fVX3Sk KISi7oWc6JIxWFHrJwTNPTkUAthav/ANxRGskjNmBapbrwvL+VrLDi1zXMw4a/DvfD9U A5WA== 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=HycOVVAeQWscLve+qQagXRe4PFEj4RxON5ctS3GFa7uIfKlpYMu7u3kKd0cN49035d No7xXXCFcXsaRKWSKlgZgcW3dxRAuuXGhP1Mvbqxv+UPrKUHwNJHdDu7I9XcgzSFRRQp tkQK8Od9VEdWHNxhj6AP/juBg3y6tFzcXalyPhTmFDGfFKy8kJYxpaVh1XH8feCkslDz Cg5OQeMxrxs1FucqjIuvGQMWXg+Vej13BYQGB7SCAea5tL1d4Q7udtzVsNOlOPo2fmXC AVM/SE049D4wGsfjo0O0PdSZHF6SsyhXaj4CpYHidrBAs51ZahsBgdZdVc6v3TgTPtJi lmog== X-Forwarded-Encrypted: i=1; AJvYcCWnGLo+nTsLMabsZ5KUHS89joL8O0U4b82frLEkmuOTz4J9V95bsIfM0s308VE70hwUagatWs+pXcx81KmEZQMj@lists.infradead.org X-Gm-Message-State: AOJu0YzTfbBbqgTekNlcoJwfvdtVR+QhCsn7Sptl9pBx2pYFfHk4uwZd uwgtHxipaYw1+cO6TnevzT34zhb68/+haxphnjdetwoXYb+9zaSP X-Gm-Gg: ASbGnctN5wPq1KuMmoJuEybCIBHIESi0XLKRzLFqYmKLnNjm4+gUiTHz90uddezjEkA sZguDitfCbNIizGz8Ejug+0/27GqQzzhgPnQfI421B7T69+1qt2iLlHnoE0+Vmq243tO7T3f4sp pYyq4hVnTRy6dFT2k0YwWuWHF8qX20zuffuY6+s1vp+zUYuOIdYrYhqlV6vMMd3X39phY2gp33H S4vESkOCFnluCUdDMLPLBTWJjVW6XYawtac02q9HQ3J3V7WEciA/IksU6e7ZL6dUcygpUGDbzeH E3r0KSc2Qm9H0Zw2WzISIoWCnVbL 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> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250220_150850_682595_1D4BB6B2 X-CRM114-Status: GOOD ( 13.18 ) 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 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: 13984603 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 EEE98C021B2 for ; Thu, 20 Feb 2025 23:17:45 +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=sBiYE9w5qoKH94Om4iMa0TrvKh 1qcvS59UuRCEU9RUaiAImSjPMouentttaaVj5bqHFYUV4llei5ImEzWZSR70chakRGKG+tVyn4erU lz1LLPxSjSK76fzyJ149oOFZor7B4lD0uBscAkCoTOUL107qS6I32VmNJqmV4HfGTE6BOqxskZanI pCoyHQBIMkkSwfCRMmvzf9zKyTy70bCiWm2gH7kZSR6k+JEAc3wFHCIfhDmhrN8KqCP8LUDK2sfn0 fkGHFrYEbTFy21zgw+HD/ISb76pkoIkyktl4vSq1R3q06LNBasThJg4ZglFkRbkhHIunCoYkZGtyH 6pQ09Rgw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tlFnR-00000003HE9-1NkB; Thu, 20 Feb 2025 23:17:33 +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 1tlFf3-00000003FLq-2u3x for linux-arm-kernel@lists.infradead.org; Thu, 20 Feb 2025 23:08:54 +0000 Received: by mail-ej1-x62b.google.com with SMTP id a640c23a62f3a-ab7430e27b2so262089166b.3 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.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=UOojrSzgWddoHkNK9IWtevCaZEU0rMCqyg/v1jInuosAf7J5/Pt/xDNH2bOq4fpj1d yKlMoThpG9zbFQhUB036KfCXzDgbxV+jejGkm+3GYXMiKFJpXQxpSiriKvVCLUqEm2f1 AfH23tdF5UZvgeGkjkk4+p+rguUS6OkSwMYTGKTnAzK0Muu5yVzK5h/Es8KtP3rc3HzO 0iuhNE06WB/JlhXaCHE3V3cVaAfopALZ5qKpLYuKthpNExHU1Hw0kyTJ8D9QiYHY89ZZ qhfDTkrKOKXoO/KyRY8MhsRC51mIm1N9gTm3eu9U8G8BXq2ujWNvXgRXCYiWfliLu1de 7p3g== 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=fBvgzjYf3vlII+hpO3fevidvk4j8gY/rfCz40a/5vkyQQVoe1FmWPJC8+JsfLLmiM+ tyW4PFi6BXz98loK6f0HWMhju6ca4TWD0mZW9jN0+LWuf9xR5rw0o8rALrZvShfPtL9l svfabn+DUjksBlIgRy8AtC4wSX5IJYw57jvVKAg1mx2MdTI1uOsW9ijZLycpL633jBnE /IUKTW7rrnp2IcbdfxuPltf323eEGngSALMfir36fV/H6kg5DW5opEwtkHpfri8/BzoE pMT82F+qMVOYbkEBc21G4E7YWgcDSfJAMIoJpVUAKsDcvy7XZ76jFazGYRgU7n1kgK4S yIUw== X-Forwarded-Encrypted: i=1; AJvYcCU1IEsw0Pefamq1IGq7+uCc99fwBY+OHJldaej+ypgWTONyJsX168sz94II8GQpiBDDoYAX1svV0qSNpPZ8/Spj@lists.infradead.org X-Gm-Message-State: AOJu0Yzawjn3cAC6UfCCgXqUT8J9WkSTwz0/l0jNdHZvg/HqY2kHvwLI BPmyPLPiTpNXXIQjDi62ayrSn0XGEXUbhxiA1TTGQ4DwHS4yC6k4 X-Gm-Gg: ASbGnctVgwhu/dE51J1FWvW33lzfkHDlDv4UgzFX0OXohrgEluveaHwpzc7YHzKBc8R kRosQJwagajrj6XfKVwYdlsNN4lRR7U3U6RY8FXsIMjsGoJuldwK+toLJzBXOQvbzV83B+opclU tInAQ7pblwCBXEssb7WwBrZU7pTnom1xpthGWFyhTsF46Y90pHs9CrTGQRm8n5+5gFceLXUdLKZ ISWZobD6BcKZ+mw5KIf1SVK332bUow2GXIj61B0QhwuWpNT0XaZ+6kb3jlcmx9HJumbEdrSKeMn IVt5KM2+qGnAacOqfkZzVEWbRIiD 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> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250220_150853_725629_4075CE63 X-CRM114-Status: GOOD ( 13.62 ) 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 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: 13984604 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 CBE02C021B3 for ; Thu, 20 Feb 2025 23:19:13 +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=NhX43RkJeHOzyL9QEiVx31rF6Y6JmPRuPUbmR6ly4C4=; b=yCUFnYLWudqHucoI1Zc6c2fNOu CBnS8R9xFVMb2KFl+rvTZtT9y0D2WTtIuGwBTxWyqFsRwtOFikE9bej3Iq5SAvYxXhKDHVAJHnaG/ jR/EZjUN5wDUzKg+j4S7Q7PvavwaJbGbu2BU+8aoC7BmFueE4rxCje1UGPnjqKID2o5qaAFgiqCmw UY3xhFShE4/pSUFnjNO42TIcQchmIPvZHzmZFSNptWGBW77xuKoTruxHHvQVU+wXKmSz7wCFaHs+m BPkAmpEXlZ+fMkvYkNz5OriX60K5MFV6gilyYknGnAcB/zCv4TcagZNkl7BTWeMNmC6Z/0Ntd6L7T hCfNfEGA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tlFot-00000003HbC-48f4; Thu, 20 Feb 2025 23:19:03 +0000 Received: from mail-ej1-x62d.google.com ([2a00:1450:4864:20::62d]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tlFf6-00000003FMP-0QMr for linux-arm-kernel@lists.infradead.org; Thu, 20 Feb 2025 23:08:57 +0000 Received: by mail-ej1-x62d.google.com with SMTP id a640c23a62f3a-aaec111762bso342568966b.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.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=NhX43RkJeHOzyL9QEiVx31rF6Y6JmPRuPUbmR6ly4C4=; b=FlatxObk6gGKdZ2uanXGiRZFNjvQ5ZTQVWSRed3Y5kZQC7JzGUj9X2SVpdgYINpyQ7 bT5iDLkFBfmRYFqUq/zg8xPneLYkZfQML6jpinYC2jg2urRCTAsgFAEgBxHwFNkxPEeM 2QeEibpaSfxC4FSKPIP8vvTFGsWJzNVgjrrqbssFpo8hYyrFcZ5+O+w8PW/GjSZdfoQ7 0juCxbTst9BucgGg0SS4P5smZce4E/TJR2S56EcqcMwTEmaYp5sIfYLgzS33L6fscvN1 927jvz0vMUprHvxAWWUocW9E8vbwCoGW9DcnXS/CWqVxVN0nkO1dcfbZLY56lTAOqyEj tPiQ== 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=r3AZfuW6Ql28zMML3AormsGA4KZbVg4Ql22Dw3woid8+4o/ykQZj195W7HN+GtNJUg kSF8AI+YCUYDTrC3d9G9BaVhiTgHn1SBgl+3TohwqSi8kz3k3aCXY8ZYN44tp2YenG4I krW9KuVC4MfhI8s049wd8ysWwAzBXo6Gz2HL1wCcxLbu5IQA7U2884k26b+O5n5Guwg+ Frwq/J4BJ8boDYcwnlIAFEA/GqjOEdI5ZGYVEDppXKBRXZRAM1ZXRIc8A7jS27q3tFp4 OezqiLfRVJ+AA4cy+WaX2X1oEGfYDAyCIQ+z4U8XLPa5bFbW/FiyeO0OuI/zu2OPnLDw ngJQ== X-Forwarded-Encrypted: i=1; AJvYcCWQ1KWd/tA5nDz3PNsp9shrieTHiSOaGeWh/Lt+RSSIu13zl0UVZ7uLiH6AvMKnzoQAIATWkXSqQ4q25n4SV3Of@lists.infradead.org X-Gm-Message-State: AOJu0Yz/M1JxyDLcsQvHZMgPqpE73R1VBGiOrSyvuH7NLYAkDZ85sihh bOLa4VSOfjCpIs4vF4ew/KsWJsvRqdfuoWLOVDBlKFY0PIQsfTWs X-Gm-Gg: ASbGncsSrovE3Z7oz8bfgVuUTP2hrH1BOLlEPz9VR1hZyGrt031BJGepeXaJlSxkPT3 irrUhG4oeH2GtfxL/OsWoyTf9ujUf45wPZuTaWrXeai0qcBEev5RdhDT82o9RLsgrSnHacV2QZv /tb36HLj9tTpmmh+EHEzyk0UXPBOBlAcxDwYCtKfSP/gwCqBEsSDs18hQeyCjmf8PVEbyFecMa3 9az4g+W2A8m8ZczqPFeIFVeFGKkS0wtwCeEaxv4RcQXHAtR3+zirVVpbMJ/Gh1Fu3KIv0SE7FKr oRydqkU8UuzlJzOrwJqB/Iav3MPA 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> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250220_150856_139282_BE5C5B63 X-CRM114-Status: GOOD ( 16.76 ) 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 | 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: