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: 13984048 Received: from mail-ej1-f43.google.com (mail-ej1-f43.google.com [209.85.218.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 189741FDE26 for ; Thu, 20 Feb 2025 14:17:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740061071; cv=none; b=kSb71Y5XT6CbCnyLA81bo2bgixredtffk1EmCRkNLVccNUQLttbGqMV22rOFtMPkuwb4H927bCWgWGFAPAToBBTDC2mcAlNBC/K9074Ma1mCk4dBG1P9Re00PfrjRxsZD5h9pNCM3jucE2O/75o5Q58apUyUDgetzKGfaR4Eb3o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740061071; c=relaxed/simple; bh=PZ1DnjTFl18o7jkWFg8lWtATbzYcZDhG5/KGRCkkiUU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oxCB4RphJvYDD2lvr9IVakzfeDg6bi3MPM5HPE22CZJfbClFy4TM8L11uSpBA7FdkJ+uQ7qfWs6CdyelMXBbz4npHdz3wsCEmyUGBB+lNZApwiXaMYec3aGa6+UND33KNgFIkheTOpiBvuJK9AJ2Y0CQqhS4DCsO2Eaf+1SauKQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=iqeSOP/l; arc=none smtp.client-ip=209.85.218.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="iqeSOP/l" Received: by mail-ej1-f43.google.com with SMTP id a640c23a62f3a-ab7483b9bf7so158641066b.3 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.linux.dev; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=NFOJHCDRxWmWioNC6N/UlZoweJhdV9qdoQg8e0aFcrs=; b=iqeSOP/lTx8N5ncshFjbhLwWI1LDhts+SV05Y2lrPyZCmO9lDVFA2ymr6Aduk7jW3m nfaPGbaXakIlkbIc2qw9If7N4DgbRyTGzQ1qg72952CU5Fj3wGPJ9R1BXXQ8juLHirau e49ckA3iJQXh6mXVBzAt2BrxFiD6+K6eZfoCEeE5s5siK7o3nHDsFFGuglMLUOIwMDRA 9yBl3VomRXGBqjatcKSkFn2/YFvUpQTW5B2vcIzq4ZGZKtjvk6ETiT6j6cxV/EUocWk6 e9FDzJ0i3WYCma/OT0Al9UcoG2FnaT4/Dje+81yUMVipIJaACnqYDTQ7+3xEJQkwQovB a8bw== 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=ih8iQyccKBouOxTl17FAAmmJgRb+WC6uSf0zvX9V3hwj8PIigUYuHe2fRwEKPm5Ch9 wK5StqulVcGP0qjpeg5Bkd/JeSzcLT3rUlgyv6k9rlbuBX2ePez94KJy0YIxuWOlQSxc roaQKwtpm/oZPTpiSyOAo+a4W9T8pAf65uJPfdK6zW4NR8NOtVyEazeaH0QIKgy+ptqH Ukd12QEoxjQls63YMoBS6r0q1fwWZTs4jWeJiDeeQFBm7wdwUDXiBZwL39R+N8ljrejh QwPZWXn/YF+zMXuhpBFIARs1AnlV8Dv6pNHf2m+NYPgHk4427blZSSNyjpjHta+mnm7b tcAA== X-Forwarded-Encrypted: i=1; AJvYcCVfYrPKl6IOCz9CL1WI4VSOXh9e2nRVXJqJMEOaeykoZrYElbV+yLw3UyGWLIsqoSxhixE=@lists.linux.dev X-Gm-Message-State: AOJu0YyFOLAkYVBWZ+mfrg1tclzYdLfpthIDc6peDy/N11dc2bqBAynP dA2ijcgmk9QbCDh/dNS37Wih/gCY3lyBGwa0FpdCVwvb7HLyJIsMx6nJww== X-Gm-Gg: ASbGnctNnb6JgdnMmi3cgTRxFqcmsh+oDhQEXL/ldBlpb2b/bJhrSJkqVrqlPbXThIC J/IV83GCCg93HAtmwm72FQUS3QjGcuFZNctvwGMLSrUv/Pdip7vlnJz8wVkucH+Rib7vs4rfS/1 QP4t7+rUKQbSSLdIuRPWkMZf/S6GnaX6ybwQ2G+SZ+swVRcGYsvbID/Rtk9rznG1ooYv5ViXD3F /VuOo1trK+t8T0PPicTjXs/qssh/D8QLRintQTupPDozTujTdcL/5XXwqOVqrTjenv0iGDq1kd8 HRc2yagORTtKuWEK2CjFYszeUJ8G 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> Precedence: bulk X-Mailing-List: imx@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Multi-camera systems often have issues with receiving video streams from multiple cameras at the same time because the cameras use the same Virtual Channel IDs. CSI bridges might not support remapping the Virtual Channel IDs, making it impossible to receive the separate video streams at the same time, while the CSI receiver is able to de-mux streams based on VC IDs. Cameras sometimes have support for changing the VC IDs they output themselves. For a practical example, GMSL2 deserializer chips do not support VC ID remapping in tunnel mode, and neither do the serializers. Allowing the cameras to have their VC IDs configured would allow multi-camera setups to use tunnel mode. Add support for specifying these Virtual Channel IDs in Video Interface Endpoints. The supported values are 0 to 3, with a maximum of 4 values. Although the CSI-2 specification allows for up to 32 virtual channels, most hardware doesn't support more than 4. This can be extended later if need be. Signed-off-by: Cosmin Tanislav --- .../devicetree/bindings/media/video-interfaces.yaml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Documentation/devicetree/bindings/media/video-interfaces.yaml b/Documentation/devicetree/bindings/media/video-interfaces.yaml index 038e85b45befa..414b5fa8f3472 100644 --- a/Documentation/devicetree/bindings/media/video-interfaces.yaml +++ b/Documentation/devicetree/bindings/media/video-interfaces.yaml @@ -231,6 +231,17 @@ properties: shall be interpreted as 0 (ABC). This property is valid for CSI-2 C-PHY busses only. + vc-ids: + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 1 + maxItems: 4 + items: + maximum: 3 + description: + An array of Virtual Channel IDs. These are unsigned integers that specify + the VC IDs used by the device for its data streams. This property is valid + for MIPI CSI-2 only. + strobe: $ref: /schemas/types.yaml#/definitions/uint32 enum: [ 0, 1 ] From patchwork Thu Feb 20 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: 13984049 Received: from mail-ed1-f49.google.com (mail-ed1-f49.google.com [209.85.208.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A8D50204875 for ; Thu, 20 Feb 2025 14:17:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740061074; cv=none; b=kgD8YqKdiEbWjxwoPjd2vAD7XCVqzS+ItCllNejA+W3t+ioLsTVFYwm83+DlJHwO94bioTtKCBNUUHbdKh+41td4usjRlHU4q8ELDjrttHhmqj/CbakrfKVVfxxZ/76VFQC+9Y3skLDmqBlM2yKtCWvr0M3GAQXYRONdcpAhPC4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740061074; c=relaxed/simple; bh=CWodvW4NCBIlUv6/PqgOLyTNVvQ6Z0Bh5b4w0MpQRQY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cmEbJO6ELEj+5ZtJQrKxF9uenuYuD7DUGHVHHKfxNf8i1goGeCzRHlSRBZkTuKM+n2h4OrTE0doH+UShmtVZVpJ2sE7ymGx8jW1rXkMUg7ovFy+rhoO5kF09bd0+Hd1s9yX/Q8ffz+HlLUdR/xrhgcTZJPnL4N0EdQPAjWzHdG0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=LzXI4o5L; arc=none smtp.client-ip=209.85.208.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="LzXI4o5L" Received: by mail-ed1-f49.google.com with SMTP id 4fb4d7f45d1cf-5e0452f859cso1521109a12.2 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.linux.dev; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ku1J4a4L44q8po1KQAtOYx7Ff0tpcPyGvZxYWms+JUM=; b=LzXI4o5LtrUAN6VAwnxXL9nodVCzD5qHDY/y/TNmgJ29TziuLwkFkR2VSgnYd8NeOc ZLmkf6pQ0Z1xE8FF3O+MQd6jvFaDLpyC2HLXTGu41DC7PVcZH0nvdvbtsCAfxBIePKa8 MIrbRkeheS9yXJV1MR7h/seq7LY8Y7v+Til0ZE/wE+pVDwEXf4OqSHv2JrjFrTL8CFm1 DkQ65K7KCAjvL0orMJ0pT+cmD5OLzt18d+QRr+Z2XnGM173IBbNKJF8HOlR+uA0uMKiB PZAK4Uzgk1PQw0B6SJlXsC0fWFGcZgTv9Xms+I22e0pJ186dnN+G9xYeEFiARIItmms6 sDuQ== 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=SzItemUJWGYe+sccq/paJ9U393l2Um6v3uZdoS7kvKkrDBLstxNqLzlEOVyrtJovip RPLWthYSUpzS2MyjlxxkniCI7x0QmW1fP2SqOw1ufOjXRidUdwPlFSg2dcC6i3enBpX2 Rh96Oxo8dlUbjZjNawvuGDkvYZ42vzvLRcCNE0C0NZ9elpoowVQWGJ9zZp8rmTShb4JV dPtWTHa+QD2wiwkW+S+UHvU6WVkIKsiKKPuwy+e12dNFlouqR33wK0mRiINBRJ/Sst+y VYuuKsL4YcX09/gD8wIeq/rDE4zyoLWJJxay2xZiMEDMFPWPBjSf97XIcTc5wkb5NxHe ldnw== X-Forwarded-Encrypted: i=1; AJvYcCUtucytDuDUEltr3899adLN+wNu1huRkqXgqh/V2dGqRPcdw+Abnka5Owrx4yOtoC+u77o=@lists.linux.dev X-Gm-Message-State: AOJu0YxwYlE1GEFi/9j9GwuDEUYS7CEJhU7+0i2htHHh9vKa05vqwrga 7ChmuzeGmtS0d9KmI/jssLEEM//amKnWROsmlgomMyrH+bwTD/XH X-Gm-Gg: ASbGncuezg9kIhmH8Cp9BTKbUR+kmBC3VEAN79vUFFvegfnsXmP6UHn6WUm1z0fGlyt ftJ5SH1FE9L1BMFxFybkhldVsgDE01Af9xSzDWWSrU9zv03ic2QSC+qu9o+FPyKlteTRg9X9H0H LWZF6MiifzBCuptIjFock5ALQSiNHdscOC5pDyqK2/VGt/WG4XT9xNmzRlrIAx/l3HRfPWazvrA sARBnS9nLJgX1YXYK6AFDEsovqpJXDgjTjPyzZoHNjuN5pD0sdDfzHoHdWrstInabqjE3abISQQ bM6v9MTimLOOvzQ6R650fkxJHMwB 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> Precedence: bulk X-Mailing-List: imx@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Multi-camera systems often have issues with receiving video streams from multiple cameras at the same time because the cameras use the same Virtual Channel IDs. CSI bridges might not support remapping the Virtual Channel IDs, making it impossible to receive the separate video streams at the same time, while the CSI receiver is able to de-mux streams based on VC IDs. Cameras sometimes have support for changing the VC IDs they output themselves. For a practical example, GMSL2 deserializer chips do not support VC ID remapping in tunnel mode, and neither do the serializers. Allowing the cameras to have their VC IDs configured would allow multi-camera setups to use tunnel mode. Add support for parsing VC IDs in v4l2_fwnode_endpoint_parse(). This allows us to retrieve the specified VC IDs in camera drivers and configure the hardware to use them. The supported values are 0 to 3, with a maximum of 4 values. Although the CSI-2 specification allows for up to 32 virtual channels, most hardware doesn't support more than 4. This can be extended later if need be. The driver must validate the number of VC IDs and the VC IDs themselves. Signed-off-by: Cosmin Tanislav --- drivers/media/v4l2-core/v4l2-fwnode.c | 15 +++++++++++++++ include/media/v4l2-mediabus.h | 5 +++++ 2 files changed, 20 insertions(+) diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c index cb153ce42c45d..97ecc01e1e39e 100644 --- a/drivers/media/v4l2-core/v4l2-fwnode.c +++ b/drivers/media/v4l2-core/v4l2-fwnode.c @@ -129,8 +129,10 @@ static int v4l2_fwnode_endpoint_parse_csi2_bus(struct fwnode_handle *fwnode, bool have_clk_lane = false, have_data_lanes = false, have_lane_polarities = false, have_line_orders = false; unsigned int flags = 0, lanes_used = 0; + u32 vc_ids_array[V4L2_MBUS_CSI2_MAX_VC_IDS]; u32 array[1 + V4L2_MBUS_CSI2_MAX_DATA_LANES]; u32 clock_lane = 0; + unsigned int num_vc_ids = 0; unsigned int num_data_lanes = 0; bool use_default_lane_mapping = false; unsigned int i; @@ -208,6 +210,15 @@ static int v4l2_fwnode_endpoint_parse_csi2_bus(struct fwnode_handle *fwnode, have_line_orders = true; } + rval = fwnode_property_count_u32(fwnode, "vc-ids"); + if (rval > 0) { + num_vc_ids = + min_t(unsigned int, V4L2_MBUS_CSI2_MAX_VC_IDS, rval); + + fwnode_property_read_u32_array(fwnode, "vc-ids", vc_ids_array, + num_vc_ids); + } + if (!fwnode_property_read_u32(fwnode, "clock-lanes", &v)) { clock_lane = v; pr_debug("clock lane position %u\n", v); @@ -248,6 +259,10 @@ static int v4l2_fwnode_endpoint_parse_csi2_bus(struct fwnode_handle *fwnode, bus->data_lanes[i] = array[i]; } + bus->num_vc_ids = num_vc_ids; + for (i = 0; i < num_vc_ids; i++) + bus->vc_ids[i] = vc_ids_array[i]; + if (have_lane_polarities) { fwnode_property_read_u32_array(fwnode, "lane-polarities", array, diff --git a/include/media/v4l2-mediabus.h b/include/media/v4l2-mediabus.h index 24c738cd78940..291b680d2a845 100644 --- a/include/media/v4l2-mediabus.h +++ b/include/media/v4l2-mediabus.h @@ -72,6 +72,7 @@ #define V4L2_MBUS_CSI2_NONCONTINUOUS_CLOCK BIT(0) #define V4L2_MBUS_CSI2_MAX_DATA_LANES 8 +#define V4L2_MBUS_CSI2_MAX_VC_IDS 4 /** * enum v4l2_mbus_csi2_cphy_line_orders_type - CSI-2 C-PHY line order @@ -94,8 +95,10 @@ enum v4l2_mbus_csi2_cphy_line_orders_type { /** * struct v4l2_mbus_config_mipi_csi2 - MIPI CSI-2 data bus configuration * @flags: media bus (V4L2_MBUS_*) flags + * @vc_ids: an array of Virtual Channel IDs * @data_lanes: an array of physical data lane indexes * @clock_lane: physical lane index of the clock lane + * @num_vc_ids: number of Virtual Channel IDs * @num_data_lanes: number of data lanes * @lane_polarities: polarity of the lanes. The order is the same of * the physical lanes. @@ -104,8 +107,10 @@ enum v4l2_mbus_csi2_cphy_line_orders_type { */ struct v4l2_mbus_config_mipi_csi2 { unsigned int flags; + unsigned char vc_ids[V4L2_MBUS_CSI2_MAX_VC_IDS]; unsigned char data_lanes[V4L2_MBUS_CSI2_MAX_DATA_LANES]; unsigned char clock_lane; + unsigned char num_vc_ids; unsigned char num_data_lanes; bool lane_polarities[1 + V4L2_MBUS_CSI2_MAX_DATA_LANES]; enum v4l2_mbus_csi2_cphy_line_orders_type line_orders[V4L2_MBUS_CSI2_MAX_DATA_LANES]; From patchwork Thu Feb 20 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: 13984050 Received: from mail-ed1-f52.google.com (mail-ed1-f52.google.com [209.85.208.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 75027204878 for ; Thu, 20 Feb 2025 14:17:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740061076; cv=none; b=l8MNasEewUeF9Ge91WlF3nCA17fb09rYVRg3VZqOjBn3QH5PhoSXXcZ4CDxUqrsVbXZCG8o5GS8fJqx71vGG58Gs6Y+5cRhLbRdSjEWeCgRXl1Sz4wbdLyLQAexDL+jJ1o4ZKfMXgTrpXf3krldVKcz7QjjkSB6lWWdP8RUnSd8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740061076; c=relaxed/simple; bh=lg2S49Y/PXrPABJ4Pn2C18lsbCiXukENnnTBnuXF1lc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rl1p2WxP6NC4UNNBIz+/fwJyDRn0kIustLmQnPgEo440ZkJHOEoV+N/5kthuPjJiTbZ9o/Qubxochv4N9BW225QLx9X1GP5nU3XXTYA9utUSll7UJSe+GkPHC+lvepFbDh3wpHOQk2F5pvWUDwLH4IvMafl/iiFZGBO237gNbqw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=CKq7e+ev; arc=none smtp.client-ip=209.85.208.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="CKq7e+ev" Received: by mail-ed1-f52.google.com with SMTP id 4fb4d7f45d1cf-5e058ca6806so1702955a12.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.linux.dev; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=xrabmWDNnjDbFDGwlYLKTrhkDOrLGupRTNC+Vz/SZV8=; b=CKq7e+ev37/uf8EzehJV8YVDFIhCwwU+VOzGfETVB62SOPTqBgLG6VZ8R16jU31StA YBCkFYuhyjiQY6ZdA/8PlqV+PYWgXSouPEpVnNitFozS8HFEIS2t4ZX4r06MtCQY4zZt xCz5YlhSCEL1Tw8PLjQ9yx5dmNro6Gsiez89YtOZZMYpVBAVljyTqaKXeilRv8BLW8js QGSNWJT4YWXanwmltj8XoqgpU6xc+MAeM/Oyp1wE9pzNnZJLyoc3cr+EHnFDS3+yHzUA HRG0qbEKvrKBwolcQes7yrQc73zqHLelefhrt4WcIvFXcy5rek7SjFnT8itEeapIjXvl 5Xgw== 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=wj1qhNVzU1ZyZ8lYSPyPXUFQHUJy6ISHYCPnef+8lx7WZL3ZPK6ybgQohSet7QyBoU pE+ZoO07DWfbJp1JVcy8d6XQQaQKxYboltcT7XfG0WJXBDrjGDayxC5l1qB4WxZx+s9O 1QtTkftXoLOUuWqU8d9EvrFPObnauLcv/lsgazfqs0B1OAwmvO30C7X7ffDjbGHOFHIA I0ILfm0+Hka8S3VIOWsSODuhEYfol0K1+WwCR5F/n6DQ1SfE9NueHsImt3n4qSCG/56C mIhB5y8lQSO+X3DljyCNaeb+kzqZWrxfthN4BZ6Jy1bvbwc2uUn7ePgXCBFpQ9kw1vma TiuA== X-Forwarded-Encrypted: i=1; AJvYcCX2pZvMi+GnP5SgkkEMKf0RPjR02dF+xJQBjKXpMiUEfbBCNst5FTuACC0jWhkef2I29nU=@lists.linux.dev X-Gm-Message-State: AOJu0Yx3RObMADNNcV6RvYBEXy+d7QUKeKfoieOEEDUENfXyVK87u38J y9XT19XhBJcsAsNoNwxLEJBkNkFgNqeNgbYUDgUpJ3vXNVFr3m2PVh5z5g== X-Gm-Gg: ASbGncsO3njg3r7MN4xA0AKISg48DS+kkHF0/fKcxU0VKnLnieEkwYOivJlJ7zIRANk 4r6mpNCnsWFMdXyaYvFC49MKs4Wb5pVMvfZMHpWTnIez5SNmw0ahmy+OdYVL4NgZ/S3SNw/EusV oslTAKIiuPWjcMxdkc6KyKSRCJ2zcAxc1qiD02Qpbx99dsooVKLKrVmiC+WiCJ0NGqo7b8JdaXW i0YVgq9VCKuxMgQ26ifbfMCLehINjRlC3Jnd8FtIT73YYamLikrtGtl/vXH+4xphtaZ/RR3Z1Xb BarXneRZVyiR+8akDwFcBQYivnvo 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> Precedence: bulk X-Mailing-List: imx@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 IMX219 supports configuring the Virtual Channel ID used for image and embedded data streams. Signed-off-by: Cosmin Tanislav --- Documentation/devicetree/bindings/media/i2c/imx219.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/media/i2c/imx219.yaml b/Documentation/devicetree/bindings/media/i2c/imx219.yaml index 07d088cf66e0b..766b0e5fedb05 100644 --- a/Documentation/devicetree/bindings/media/i2c/imx219.yaml +++ b/Documentation/devicetree/bindings/media/i2c/imx219.yaml @@ -66,6 +66,8 @@ properties: clock-noncontinuous: true link-frequencies: true + vc-ids: + maxItems: 1 required: - link-frequencies From patchwork Thu Feb 20 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: 13984051 Received: from mail-ed1-f53.google.com (mail-ed1-f53.google.com [209.85.208.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7CC931FCFDF for ; Thu, 20 Feb 2025 14:17:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740061078; cv=none; b=RLDKscZI6LaYyDm7s6mDinPzed5fLOyfG9rHyRJSUxetoxXo3aJ7OUiZJx/NUy6BCdTabqg/bKUATf9+tkM1o76Oz/9MhkrB75pXNw+4dD80P89EzYIqvMT2rKxOqFTks8CZ1ax38j9rhKr/s4hyByXsT1plNdM7AuswOKyyT74= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740061078; c=relaxed/simple; bh=zAx5h3CW9uhScVCOaEZGPbZKRppELpmuFuRjU0AzcDE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FraIscZ27YSi/7+AE/oyz5cqqvn8sfVmiQJwQN5oV+n156tp0JoBYBrkfUbfUsw5Or5V7OJKfnvDiCyBeI+YnOYOfYc+ohfWHGXQw0WHDW1Y/Rb09SE5NPQQWFXh2Odnz+Hid/VYewXy/DI7jVOJGyTq7SVFvwid9rXc1F58cEY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=XS1nXqGY; arc=none smtp.client-ip=209.85.208.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="XS1nXqGY" Received: by mail-ed1-f53.google.com with SMTP id 4fb4d7f45d1cf-5e04f87584dso1546416a12.3 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.linux.dev; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1V5REDmi/qwmeZmzS61DPGBCJO64NPZWi8x4XF3HxB0=; b=XS1nXqGYb+T4RjsuvpR/ogVbM9Js3phbHw/CJFikj209Vw/OfoC9J8qmAxDQo0lznz Iov/+i2q2KiSi+ys1pkzvudkZIg8nmLAnxfbal6h6IfeqW8WFtJrs/tRXKJKG04VS0O3 aNdr8Dc7sqpVNLkWv7QgxSs3qb1SRrh46jHzNjLyS9SOh5GuJxZED5SQSqZVkiCNg3y2 uLYt5031CAHYuBVMHDU9DwcClEDrBXO4xU0Hz7oGcMV098c1SsByYU1SzLRnOq3mZYyH 2We6w8YD3uOJ+w3jsX83SwjOyz4GlSN1DNlpWytSaxxK5RoO1GPZernStg7MQ0kgT/p+ mONQ== 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=jW/BGplykpBDooGOSQHezTY2DXTSh1idNyU+OTN/F/wLefmCy7iI4ua7ddZLNVOD+c eUiDDpL3BOy++hg8SYC2pCoLbAFdjwKd01GC2Ke9+TsdXuRjb+4IVvKXhQdNt3GuE+5N JlHIxER6pTWgfuTYiw1+27IG8R88Qh4q2mp4sBphxV0OnVhQZkSAecgQGfoP2+SjuTC7 nR9jpDF8b7Ah/TKKcY/mOCjS9rVpfSgE+3B6PF+yoO5Jbq3Kdf0Nrl/50xMJb/qejXFN 07v1KkT0kg6yiAnNzPP+9AhzeRJPGgfrm1elGz42nLFBRfntj+AITZhrlNNj4iPcp25q 1HgA== X-Forwarded-Encrypted: i=1; AJvYcCUmfFwM4KBDKR5XwxiCNY11nPlzF6hW9EIJlGoHMgPlFR06REK+ETB9XqwO806dKT/1fxo=@lists.linux.dev X-Gm-Message-State: AOJu0YzBSSHkGw9qIE6Wy3OsvNRuWdi+hGmXpaXKCygzwNHNg0rxTrqZ E1QjF7BJSU4mix+rgvTqXFtoE9ECS6aUenr1IGqvmGmi5JeKLa5R X-Gm-Gg: ASbGncsQV/iUonM+kYz/JEW9zF1JJvsgq1GwgTwWr2MJxk4cyhYtQcWxxX4DSSsXmba bZqKQxLBAPXM0mFb9JNfLJisuF4YWuvAk1yyrHcXv781yB2ps/SHip+Vv7KYLzJIXD5TOaQg3zi 4MMnCsKXZZqWU41WcxTLn7CzzrQ2ydFyiETY7GTKZmz62zja6xp25ZkrxtuqfOxImb3PP7tvR6D VB00oBzuVDicHlyFrY7rEp0xyzPlJHEkAkiJO/FuuRPAt/2INVp5cmonsMKEkx3Qh69yJ2aaEds oYGjFXfQ3ge3wIJP+TCM8aJjECb1 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> Precedence: bulk X-Mailing-List: imx@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 imx219_get_format_bpp() only uses the code of the format, pass it instead of the whole format to allow usage when the whole format is not available. Signed-off-by: Cosmin Tanislav --- 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: 13984052 Received: from mail-ed1-f54.google.com (mail-ed1-f54.google.com [209.85.208.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E612D20D4E2 for ; Thu, 20 Feb 2025 14:17:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740061081; cv=none; b=aI3J/9ivApnCsPF8n2jyEaqB6zwn9T1EbmhLzENuqhIcH759k55UXokbhGvEfpTKBLpS+NbnF7Ljh4t7pTBNtAFGAikF8c+l/Nhf09ayMf37u7TiUVMK2kW1W7GcdOTd8JB79/fMlCaAJ/cqV7B9xX2x+HDhwHoafDv0yrT4FTk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740061081; c=relaxed/simple; bh=c2oJdhEAPkgZHieAm+Hz9dCi2VAJ3Im9nKjJmOfI5T4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=edV0qIDmzxB9MfLfoQJkIsL5cnd78Lw7iYCagxg9BRnf4YUazn4vvMnZz96dBfGPwoMuDatLr0Zo3wkyao/sL00SEO/n716KH4xe6MjK9+v6tObjO812kLfW3yzs1TpA0jQu5Yn/hjE2yRP9rCNfMlmL8TU48YifH2R4pbdDq5c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=m4rVo0Fi; arc=none smtp.client-ip=209.85.208.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="m4rVo0Fi" Received: by mail-ed1-f54.google.com with SMTP id 4fb4d7f45d1cf-5df07041c24so1435912a12.0 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.linux.dev; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=th+517ZC0V4fbqH9CgBsf81RO0nRc/LViRgQwQPk9dM=; b=m4rVo0Fiybd1wPFe5XR0cXLNtMSOJSkjpwlCSEw82VaOavz7lNbOIJaV3npNlSnIVI DzP0usLPZcBsVX8iQhjU8wsBbz8SFRzAoXYWr5YDSV7a+hg0VVSqLfA9EhDFOAjYBGPe sGMDH2T3aEAGLC2GjBrZCK1nw4OAxtRmAvAkCfUlX30sIBjpiO1t5enjmuJ4yZ/8QTMd X8Asendgj2C/Sr3rc5mOs3x5xtdfKlkXYs5N/4ZL2KxDMFVP5WzEc4nV5i5vzxOA8oD9 sKuNWBy/o2gkCZZpSwBiHy7hwv1egw42RNckjq7U9awclIHZ0nbzgqQyeuts4CBv8u/S vOlQ== 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=Ie1wlWHxN8vWAwgOhMbHxOMT4858iWuhPg2XLsTQ/zx80HQzpgcbgpRq0z7xG819sq ajKg69zEMJ1Qq3aBnGSAVV9RjyFqd4Kbca3QwRUhCMwcg3+YnekqJzFwfosKTCuV0r8o SFqNkpOt8QeSc+/Om+cFPhnkn0x/GSRaGTbHv93HPYdoIXj/p/W7SkU3QmWNgMCizldG QSjajGxdrxd8tMd/PHkvaBbeSD61Iow+EnpkNSBkStw24d9q0tZJ0BL7x/d5fUYkzZTt 1lZiA+vXNHh3QZE0ZbEkTYVgJ5HjeJm2EnYsfT0cF7084eFG1HqjquS1siCti9gOJd+N H53w== X-Forwarded-Encrypted: i=1; AJvYcCWLsy9L8hlYwkFnwrrAwJQ7o33BbmZ9BJE370/LMQJgA+kCI/NO38mUjjM4oR5HmSgE1fU=@lists.linux.dev X-Gm-Message-State: AOJu0YyoOZJCWF99/nnEjEiQEZdjzVLGM8UFNM6ZNTEv3ArfEv7QGJeH bF1OBOi8rM2zO+pTCKQeTjchRcSXD3RBSiUhrW6GdXjLfpnOtjkc X-Gm-Gg: ASbGnctqXKdrPSu+ZlJqQVglI9n8EVEdHKJziaLaBLNuvwUaiuc5mw/RREaW8jCrAY2 skJX0KJtjqvvc789O53FF+8LwF2KYjAVt55tXs7R6lbPOZ1DsO0Qccr8Xjtehl4v6r4G4m+dk2m Yq6I5RkXN2Uy529CsXrfSBgv/cnp6WcOoNYFhPcX1bKKmtNUwCxBwnLyPfFSjT2CyI1sqrnp9dO Hvx2iD/KP7+AN2MECVLuN7QW/MEsatHRM3U1brbHYmbfbtEThmdxLhQujU4cLS6lXqS4QoyH/Ho nmLMz1GfVCf4UYNJ7dlxHXetcoV2 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> Precedence: bulk X-Mailing-List: imx@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Laurent Pinchart Implement the .get_frame_desc() subdev operation to report information about streams to the connected CSI-2 receiver. This is required to let the CSI-2 receiver driver know about virtual channels and data types for each stream. Signed-off-by: Laurent Pinchart --- drivers/media/i2c/imx219.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/drivers/media/i2c/imx219.c b/drivers/media/i2c/imx219.c index ad1965a91ae3c..4c4ebe54f191b 100644 --- a/drivers/media/i2c/imx219.c +++ b/drivers/media/i2c/imx219.c @@ -23,6 +23,7 @@ #include #include +#include #include #include #include @@ -990,6 +991,28 @@ static int imx219_init_state(struct v4l2_subdev *sd, return 0; } +static int imx219_get_frame_desc(struct v4l2_subdev *sd, unsigned int pad, + struct v4l2_mbus_frame_desc *fd) +{ + struct v4l2_subdev_state *state; + u32 code; + + state = v4l2_subdev_lock_and_get_active_state(sd); + code = v4l2_subdev_state_get_format(state, 0)->code; + v4l2_subdev_unlock_state(state); + + fd->type = V4L2_MBUS_FRAME_DESC_TYPE_CSI2; + fd->num_entries = 1; + + fd->entry[0].pixelcode = code; + fd->entry[0].stream = 0; + fd->entry[0].bus.csi2.vc = 0; + fd->entry[0].bus.csi2.dt = imx219_get_format_bpp(code) == 8 + ? MIPI_CSI2_DT_RAW8 : MIPI_CSI2_DT_RAW10; + + return 0; +} + static const struct v4l2_subdev_video_ops imx219_video_ops = { .s_stream = imx219_set_stream, }; @@ -1000,6 +1023,7 @@ static const struct v4l2_subdev_pad_ops imx219_pad_ops = { .set_fmt = imx219_set_pad_format, .get_selection = imx219_get_selection, .enum_frame_size = imx219_enum_frame_size, + .get_frame_desc = imx219_get_frame_desc, }; static const struct v4l2_subdev_ops imx219_subdev_ops = { From patchwork Thu Feb 20 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: 13984053 Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com [209.85.208.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 41A11211A38 for ; Thu, 20 Feb 2025 14:18:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740061085; cv=none; b=efeVkom0062YiK9/cwIfki1ggTw4GhrHw8Ng06n3kf0roTWNeNFHWZEM3+P2wlmr+FE23XU4/GpfUSf7/siDT864vcnE6Ftt5+HOc4jHt0ps6VGXLjHL4qpk8WGxbEWuimxngmAph9i0ITAYoONzlRFu6AAKhraZQtD++zfEY2E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740061085; c=relaxed/simple; bh=02meRziosCIj5XMgGS3fhZ0M79JRqzLS+o9FESCTLZ4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Gy9JUnPjlFFCBoCxeThkxpGuHTk4oxd+gNI+jhsXguyItjdFlMhFRKfm0KRmtzG9nbTJE4clUVVZtO8ZEnJw3JCYl+lDt6857p+mcBpnVoP8OgZQa4P1b0O9OEHTlLLAH5g6eGC38xC1RygCmxm0co2/y0fzaEfxFV7oeaSJPw4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=kuUiFqBv; arc=none smtp.client-ip=209.85.208.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="kuUiFqBv" Received: by mail-ed1-f42.google.com with SMTP id 4fb4d7f45d1cf-5dee07e51aaso1797366a12.3 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.linux.dev; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=YrD6Cu+ma2ey5dVvO2q4VCmeyk9hPbaJ87jyuD084/E=; b=kuUiFqBv0Akm6kLVzFALTPrXKHWKL5nzfcoVntdewJxh/nlQcPDbqASCdnOIxnl48C xo3yNfpaDSxkBTBhR6v3e9c2cwWt5p3YZ2cAfIIHqmdRDfw3J+Ic6RdHdLxTsmMJRXbs 47XnVg/7jxkZ9U4gyRH27cmsBwSgNh5SUltI9X7lmz0gb3iHoSdw9W2v+9j1k6EzP44w 3bjSbyx8Lm0xX3WEl/YLC+aUw1hKCPqTPsy+TsF71JkyjxqdavvUrC9mzm+Aa0CJ+jN/ zvOEMDmJM42ASsnGXrC0pU1Q/fbyI/Q1qkXNZSqloyaRauVMVZXIJIL/SG/I93db8gTC c5ng== 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=QsdOE3ZRXYA7eUlOFJayiKzIM9SZZScjsnKPQXrn5d1KR9OlYzIjyX+42sgBJsANWy uyr+gOz0h8ik1L/GF+xlFxAxWzoB0UqCDpNvJdDzVHQEAaTTrYLZLG+45xUPgqUFUOpR QAIjj4EKhltgUQ4YJ6nXnC0pb0EE4Nu8ZtZ55OEBXQT3q8hu+abkIjJx0Mx2PJG4ZINJ acs5vf/MR73WzPk5mCc+XY8IytH5edTfQvQ73Yo+Q/TWcLy1kzhVNPxrgjztKQlqe4Oy pmTCHmkiPcbfmsAXgDXLWQtX6LsHn2K2XNSu3Vx2n9CnzjjtjpWtwP/9WsddAyuxRnos TzPQ== X-Forwarded-Encrypted: i=1; AJvYcCViCS2NKCQHguUfFC5tFO8msRBaXaWYkw7oaAaMYDtg6aBp+yYGFo+93aUSrPZXazEvpXA=@lists.linux.dev X-Gm-Message-State: AOJu0Yzt0YhEILkqMnpbwdAljR5QzEjCaLBl4qQ69jl7mdtTmub0FoDz ij3KmKT9uFtusmOTDUNRCtbcklzqzBy4oiiJKSveNqFSzVX/8EkB X-Gm-Gg: ASbGncv1k0iGnpCao/+taC8qS1rdIj0enjufh3EGc3ijKRZp/EkmaLnLveugqMKKjA7 +NAFDdH0JkkF+tjeltQ93T9/BDLcTh541BC4fWmRWvDf+d9AImulFKC6rioYv9hTrc5kT75mcT1 T7RbZJgVD+/YmuCW4RE4MM86XFhSLgW+h+e6jyAyLLIVmgv3wWxIzfeBspi8nSgUaya30evvf3t /Z5sUiODyni6B3DGSLl5N5DFlKlN0XEYFvarvtNl5QvplEmxGmIsvL4zQX8x8gEtiQ480p2Ap3i 4/elrwACDIqEBr0XfRLQA68BCKfQ 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> Precedence: bulk X-Mailing-List: imx@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 IMX219 supports configuring the Virtual Channel ID used for image and embedded data streams. Signed-off-by: Cosmin Tanislav --- drivers/media/i2c/imx219.c | 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: