From nobody Sun Feb 8 13:39:54 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EA90826C399; Sun, 9 Nov 2025 09:40:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762681205; cv=none; b=oDxwDr1TgO83TwFv/d8FqLhRQfP93Gfh1lrU2P/IjatyRRDJc9044vRPXLGy8xfyyD+WtxiEmN+aU69CoJ5TBCzhKIbLYcd1vshYbudS9Ic9FYDqXQvF0onM+4PIut8TN/jBAOOx8acIqDVgbsDe/Mk/wTPf5FY6+eIP5stPvUE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762681205; c=relaxed/simple; bh=VURxhsrja0d1mbf83rp6CbYeiedDgrQAvgKCqq1ekF0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=iSEHuk/Wo00g8Ku1s8BfDrMA6XJmN4TuDnJA2CYOeFXHrUO3ijOnuX2k8AGkbAcjn03zmM8jF4GwGnKDNMkt9UfwpnHmVR2YF3LsiqUE/2p0lxFAqdsiMYWdbFWxzqJg17D64s5GjS6ZgNcEZ/GEdsW2mAWtSZ2JyMIB24gOfp4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BZ/ijM87; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BZ/ijM87" Received: by smtp.kernel.org (Postfix) with ESMTPS id C461DC2BC86; Sun, 9 Nov 2025 09:40:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1762681204; bh=VURxhsrja0d1mbf83rp6CbYeiedDgrQAvgKCqq1ekF0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=BZ/ijM87uSBCFwUXQwAYnTfypRVKx8fRYV+q0h9yjp+6OFgaPgCSJo9BBKVsttO3q rLLmeQNadwsPs5pE6wKsTft014yYVo7rhY9syOC1g1123VrMtD9QwmNVuBz3sfN8Xi rjwNrVxOC57XBql4HuVqLWgniqW8FT6M8nD82GTszYlcN6TbtoyDoVglV7sTgwc667 raBQ5AcZD/gafWkcxqpb4hv5nzQxkwGthnYUyklQHhQJQ5khoYBaAgB/TRjRYYyNa+ dl0cr5FgHkZqeBjDN3gJfOXG0V+K+o0UGuUblqPYH+CB4z5QVqNEgd5L/22ffAYkX9 YDCbZGL+BhXZg== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id B9FA6CCFA13; Sun, 9 Nov 2025 09:40:04 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Sun, 09 Nov 2025 10:39:44 +0100 Subject: [PATCH RFC 1/8] media: qcom: camss: csiphy-3ph: Add Gen2 v1.1 MIPI CSI-2 CPHY init Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251109-qcom-cphy-v1-1-165f7e79b0e1@ixit.cz> References: <20251109-qcom-cphy-v1-0-165f7e79b0e1@ixit.cz> In-Reply-To: <20251109-qcom-cphy-v1-0-165f7e79b0e1@ixit.cz> To: Robert Foss , Todor Tomov , Bryan O'Donoghue , Vladimir Zapolskiy , Mauro Carvalho Chehab , Luca Weiss , Petr Hodina , Casey Connolly , "Dr. Git" Cc: Joel Selvaraj , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, phone-devel@vger.kernel.org, David Heidelberg X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=4140; i=david@ixit.cz; h=from:subject:message-id; bh=pWsEEMfrqwWPA3Vwo7teUg13fNUs6yNCOr6Nd/+BhR0=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBpEGFyHWEZW7qXgbF0CK4H+doJ++mLYWtI2uEcV /MCjdkFHFyJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCaRBhcgAKCRBgAj/E00kg cuywD/9X99MIxdvKioSz1yJlZgESQudwPpuTXBefCggreBsm1PT1vsrlmVHFPb/46sS5rxtoABc sDugMaKjQZhHAO1Quf7YZJkefYjfEYbokSJ7CMuDON8n+l156zOoHa1dv1b5aaocZGuAJFWHYRn djAodsM+hAYfRAbx15JPffSy0SwFlgABZzS711fcdZ8/I03LeFeUnLjLr0YVhXD+R93YGD2Qn2N 3Fu6QTdeQDftyrNn6XlERS92xr6/rpQogQxTo3lTbBBJPWh+M0OUkCtQEX9RzxDesFG7IcC3rLu 20tMObp0ZNjsk5kI3Eg+CgevCL4/0nhLrmk4up0rTqhemXZGqfAnODbu2h6fif/hxt3wE6YCk9k y1wo0Sg0V6b4HgAf5t2oDqCGXbCrSI+TLC47B9V1b/t9gSSynkmY5Nvv+mgsbVPOIGrrXGxc4xi F1T9xiAP/ac2B1dawx/kKK2XGa/rz5K9xchqiZ3blZfBInTiC7/JgZnamS6a3k8kJBGrzOD4oPC w0lk9BZaw9VMzDN09/R2nRBnLNcJL2+wZ0qRMmtfj6bVBRT4R4idZlhOBV1n/8sWVoyr2NG92rf eMygq5g4TMMeHr4BgOraR3/7+x3T4ZvJDfb3lixPjqJAkB0J71NAPAM1ZI3XLQed2Vfp2lX6KKL /tWLlXJFLCpoAaQ== X-Developer-Key: i=david@ixit.cz; a=openpgp; fpr=D77A09CFEEDC2BBD53A7047460023FC4D3492072 X-Endpoint-Received: by B4 Relay for david@ixit.cz/default with auth_id=355 X-Original-From: David Heidelberg Reply-To: david@ixit.cz From: Casey Connolly Add a PHY configuration sequence for the sdm845 which uses a Qualcomm Gen 2 version 1.1 CSI-2 PHY. The PHY can be configured as two phase or three phase in C-PHY or D-PHY mode. This configuration supports three-phase C-PHY mode. Signed-off-by: Casey Connolly Signed-off-by: David Heidelberg Reviewed-by: Vladimir Zapolskiy --- .../platform/qcom/camss/camss-csiphy-3ph-1-0.c | 64 ++++++++++++++++++= ++++ 1 file changed, 64 insertions(+) diff --git a/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c b/dri= vers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c index 619abbf607813..f28c32d1a4ec5 100644 --- a/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c +++ b/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c @@ -144,6 +144,7 @@ csiphy_lane_regs lane_regs_sa8775p[] =3D { }; =20 /* GEN2 1.0 2PH */ +/* 5 entries: clock + 4 lanes */ static const struct csiphy_lane_regs lane_regs_sdm845[] =3D { {0x0004, 0x0C, 0x00, CSIPHY_DEFAULT_PARAMS}, @@ -218,6 +219,69 @@ csiphy_lane_regs lane_regs_sdm845[] =3D { {0x0664, 0x7F, 0x00, CSIPHY_DEFAULT_PARAMS}, }; =20 +/* GEN2 1.0 3PH */ +/* 3 entries: 3 lanes (C-PHY) */ +static const struct +csiphy_lane_regs lane_regs_sdm845_3ph[] =3D { + {0x015C, 0x43, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0168, 0xA0, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x016C, 0x25, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0104, 0x06, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x010C, 0x12, 0x00, CSIPHY_SETTLE_CNT_LOWER_BYTE}, + {0x0108, 0x00, 0x00, CSIPHY_SETTLE_CNT_HIGHER_BYTE}, + {0x0114, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0150, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0118, 0x3e, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x011C, 0x41, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0120, 0x41, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0124, 0x7F, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0128, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x012C, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0144, 0x12, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0160, 0x02, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x01CC, 0x41, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0164, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x01DC, 0x51, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x035C, 0x43, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0368, 0xA0, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x036C, 0x25, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0304, 0x06, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x030C, 0x12, 0x00, CSIPHY_SETTLE_CNT_LOWER_BYTE}, + {0x0308, 0x00, 0x00, CSIPHY_SETTLE_CNT_HIGHER_BYTE}, + {0x0314, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0350, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0318, 0x3e, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x031C, 0x41, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0320, 0x41, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0324, 0x7F, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0328, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x032C, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0344, 0x12, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0360, 0x02, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x03CC, 0x41, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0364, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x03DC, 0x51, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x055C, 0x43, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0568, 0xA0, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x056C, 0x25, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0504, 0x06, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x050C, 0x12, 0x00, CSIPHY_SETTLE_CNT_LOWER_BYTE}, + {0x0508, 0x00, 0x00, CSIPHY_SETTLE_CNT_HIGHER_BYTE}, + {0x0514, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0550, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0518, 0x3e, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x051C, 0x41, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0520, 0x41, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0524, 0x7F, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0528, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x052C, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0544, 0x12, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0560, 0x02, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x05CC, 0x41, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0564, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x05DC, 0x51, 0x00, CSIPHY_DEFAULT_PARAMS}, +}; + /* GEN2 1.1 2PH */ static const struct csiphy_lane_regs lane_regs_sc8280xp[] =3D { --=20 2.51.0 From nobody Sun Feb 8 13:39:54 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6BDA12D63FF; Sun, 9 Nov 2025 09:40:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762681205; cv=none; b=KfZ0bRVZDshoLqxhxBCCwHCGAXOVv6P9Fhdkl5LZdHcRemBb184Dw74Sd1G4ZLW6CeNdTTh1yvVtawGXP9kUWm3VgfSPFS5yfXl7MLa8DWmZw9jMDBOF6g6yYHMX0R0GLAHgUWPwE3kXiNFYsNeEFFLAQk3BMuDr5vyApQi00Do= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762681205; c=relaxed/simple; bh=LRg0aHew+4RwOCBBRDWw4ekxDqagsrEB1nKb2dgHPt8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LmyLpx+zgbZLOb2lhU3LKdxXzMh2zV2Xmtfs+ngmxvherr+PEgbXn4c7cHCE3wlY9pCd1dtyKQ206dUdTge9OERY7+ti4C30vVPSjfI9jDhidwnT77JZ9hiHrD4tyYlqKKBOPHqn8uFtFFa2kEK1IIE0KGKGNm/GgohKNE7FviU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IZDBrK7O; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="IZDBrK7O" Received: by smtp.kernel.org (Postfix) with ESMTPS id D67B8C2BCAF; Sun, 9 Nov 2025 09:40:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1762681204; bh=LRg0aHew+4RwOCBBRDWw4ekxDqagsrEB1nKb2dgHPt8=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=IZDBrK7OyeqoyE7jZ07CNWciDV1rigfrlRS3LbVYnuq1PSNSzB8nXCwm8jGNouuO5 BFguP1H1+CrvqL21j/+38dXucLpC36JQXd0PhSold+QiMPJLCL+diNQDnKYWbAnPzZ A4wr1UFFHPc9hYy3A0VobwcAvipEl98NxfiGavYzeS66BXU1mlRz4XpVOl7djIPh+i jSWV8XlFimLAd+1HKtNnBxQzFrZgc+LaqG2i5QGdCf7NCfSOeSUGt8AQkjw/GNLJX5 pP00jNL3u0PEZ3OwgIDY8yEzNfh1R2VcgAdOv/TXhL4v8Od7jpFEXfD2ILv6Xcr082 Q5Q4xrRCi20xA== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id C8F61CCF9F8; Sun, 9 Nov 2025 09:40:04 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Sun, 09 Nov 2025 10:39:45 +0100 Subject: [PATCH RFC 2/8] media: qcom: camss: csiphy: Introduce C-PHY Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251109-qcom-cphy-v1-2-165f7e79b0e1@ixit.cz> References: <20251109-qcom-cphy-v1-0-165f7e79b0e1@ixit.cz> In-Reply-To: <20251109-qcom-cphy-v1-0-165f7e79b0e1@ixit.cz> To: Robert Foss , Todor Tomov , Bryan O'Donoghue , Vladimir Zapolskiy , Mauro Carvalho Chehab , Luca Weiss , Petr Hodina , Casey Connolly , "Dr. Git" Cc: Joel Selvaraj , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, phone-devel@vger.kernel.org, David Heidelberg X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1919; i=david@ixit.cz; h=from:subject:message-id; bh=DQNIoS5WDVbc+Rdtl7ERIUO61m5Taapf/tMUESkjBiI=; b=kA0DAAgBYAI/xNNJIHIByyZiAGkQYXLIQEqxyicaFn15He6QmuX0Uic72wA5dR89dda5iOJO6 YkCMwQAAQgAHRYhBNd6Cc/u3Cu9U6cEdGACP8TTSSByBQJpEGFyAAoJEGACP8TTSSByjpEQAIrZ 5rQV5VatFQt+7Mhw14RYr9tDIaB5rP7Eq9GBwsA6r8ERp7zXk0IQpoYrkeLgtAbvIw18/6xbSp3 uU7kTiriPGQ/hRVTh3nRXI75keiHkIiO7ewXIVwZjSu2gjtfqAZ71bEDZlQ+uNI4NkOVRmplAjw t/6CRNqmbqtSZKHFQQZsv+PAC7wTOQD9Qxft196BVhJayc83ON6RlfDT4eAkXjONUKMU7DtYX0P WrRXZC+2sZo3GgUpXCPI5mvooJltajt1bPQkM5vO3aZv7f38bA/RE37WE4ZyjtDV7PREGwqe5iD D/mgPce0JE4XoEiqhWeju1AuinhAKnTRyObF5l9DGhiXt+tQpR1CUgGBFmwKssgybgjE5wIbO2s pMzYqiBC6VBLlGRJz7CUcX/fCvR7IeIhHRasiIz1G858XxWoWXhsQ84RY4rhB0eymlG+RU3zqMo ko2BwzC1O/phb1r8xcd0HTwsG7oZ44+PdRQOYb6pAUFRKnjeLWnpbsuN7kANPVV3Uwtk1pqoaTz uFCznw79+0CbAbLkspEIgsALVJCPTX25vu3jTGQU6RrE5XJ6apkPT96t2KCP4f49Qy31DQb1vkO S27ldwzHOOCVfOq/SNYUN62NLV6IG1K1ZZfQ3ZqeM+1sSv2q9JVi9UojAtIFVlziCxaHYAM3Flc PXQgE X-Developer-Key: i=david@ixit.cz; a=openpgp; fpr=D77A09CFEEDC2BBD53A7047460023FC4D3492072 X-Endpoint-Received: by B4 Relay for david@ixit.cz/default with auth_id=355 X-Original-From: David Heidelberg Reply-To: david@ixit.cz From: David Heidelberg Read C-PHY from the device-tree bus-type and save it into the csiphy structure for later use. For C-PHY, skip clock line configuration, as there is none. Signed-off-by: David Heidelberg --- drivers/media/platform/qcom/camss/camss-csiphy.h | 2 ++ drivers/media/platform/qcom/camss/camss.c | 8 ++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/qcom/camss/camss-csiphy.h b/drivers/med= ia/platform/qcom/camss/camss-csiphy.h index 895f80003c441..8f7d0e4c73075 100644 --- a/drivers/media/platform/qcom/camss/camss-csiphy.h +++ b/drivers/media/platform/qcom/camss/camss-csiphy.h @@ -28,11 +28,13 @@ struct csiphy_lane { =20 /** * struct csiphy_lanes_cfg - CSIPHY lanes configuration + * @cphy: true if C-PHY is used, false if D-PHY is used * @num_data: number of data lanes * @data: data lanes configuration * @clk: clock lane configuration (only for D-PHY) */ struct csiphy_lanes_cfg { + bool cphy; int num_data; struct csiphy_lane *data; struct csiphy_lane clk; diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/plat= form/qcom/camss/camss.c index fcc2b2c3cba07..549780f3f948b 100644 --- a/drivers/media/platform/qcom/camss/camss.c +++ b/drivers/media/platform/qcom/camss/camss.c @@ -4055,9 +4055,13 @@ static int camss_of_parse_endpoint_node(struct devic= e *dev, csd->interface.csiphy_id =3D vep.base.port; =20 mipi_csi2 =3D &vep.bus.mipi_csi2; - lncfg->clk.pos =3D mipi_csi2->clock_lane; - lncfg->clk.pol =3D mipi_csi2->lane_polarities[0]; lncfg->num_data =3D mipi_csi2->num_data_lanes; + lncfg->cphy =3D vep.bus_type =3D=3D V4L2_MBUS_CSI2_CPHY; + + if (!lncfg->cphy) { + lncfg->clk.pos =3D mipi_csi2->clock_lane; + lncfg->clk.pol =3D mipi_csi2->lane_polarities[0]; + } =20 lncfg->data =3D devm_kcalloc(dev, lncfg->num_data, sizeof(*lncfg->data), --=20 2.51.0 From nobody Sun Feb 8 13:39:54 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6BCDD2D63EF; Sun, 9 Nov 2025 09:40:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762681205; cv=none; b=Z//2zD5kcNxlSbkb2dUiaMDVMPZ9WhvpMVSrFn5iHQCiZgukvvG+L7fc/PPgPrj660gzo3UXnYYiTTeBSPYtN3eyyEafgiqvLe2iN3X+DS53utuERHTTWM7NyjGdd7kG+qJ7oy2aAnt16Roil8W8tY8wDYZWjn1C3sHA/cYLNAA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762681205; c=relaxed/simple; bh=0/bvCd//Rdh55ktZ9lHqX7RcmvEuyVlkxWAYh+Y5F34=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fMur4WSqPU1y4FgHREDV3DTG5A7/c0RLmm1fPJ5RzerhSU/AuFrv72+I8aqe7PDwArsoZAgQ/2lNF6UJE4B/u+vuG6jEV1XGq9mqQEwJzX31DglLilXaoJWG5eHHfu6kOaWFB6MjQK3G107eOxfBzt2vV1o1/VNJuw86KsDVi1I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Hurjvo+o; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Hurjvo+o" Received: by smtp.kernel.org (Postfix) with ESMTPS id E3E67C2BCB0; Sun, 9 Nov 2025 09:40:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1762681205; bh=0/bvCd//Rdh55ktZ9lHqX7RcmvEuyVlkxWAYh+Y5F34=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=Hurjvo+oHOQPLbbGqCibhJPbTwlC/6yQg8jNAWOZ+9H/wUArW38CrNSDLiDTIhRw6 sPesiJ3tRj4+vc7ZYVn0vw2LJkC5dDR4f7D7MTWY3zCmLhwJ4SSl9sO/WlesV2Vd85 FR2ORp2wNqQAlzAHcoiwaZ9S9DVXcK5+vn4q1FjFIaInH0AY6I13dcnJEb+WrbN4WI 0V42lJWcz68saBJw1SPpIkVYwk5P3PvSrGJI9tvV+qCbGzK6hOmR25CPrHNexWhdkt C6LCrI7whqm6p9fIt9h0OtHMTZ/gtvWAeT2YqNN9cnZbVR1DMMKxr0iUwykhLQPBmA AHw7eD6Jrju3A== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id D8A9ECD1297; Sun, 9 Nov 2025 09:40:04 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Sun, 09 Nov 2025 10:39:46 +0100 Subject: [PATCH RFC 3/8] media: qcom: camss: csiphy-3ph: Use odd bits for configuring C-PHY lanes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251109-qcom-cphy-v1-3-165f7e79b0e1@ixit.cz> References: <20251109-qcom-cphy-v1-0-165f7e79b0e1@ixit.cz> In-Reply-To: <20251109-qcom-cphy-v1-0-165f7e79b0e1@ixit.cz> To: Robert Foss , Todor Tomov , Bryan O'Donoghue , Vladimir Zapolskiy , Mauro Carvalho Chehab , Luca Weiss , Petr Hodina , Casey Connolly , "Dr. Git" Cc: Joel Selvaraj , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, phone-devel@vger.kernel.org, David Heidelberg X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1933; i=david@ixit.cz; h=from:subject:message-id; bh=rik/RHpeTR+s30xb3Tj4nu8A19TzZ21cIKR0hmDRMHM=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBpEGFye+wbhg1bmncgyV4ERElXREXgeRp9B0QlL yWaPof/AxuJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCaRBhcgAKCRBgAj/E00kg cg2lD/9JCjrf/49SXbWR/92Qg7/0NQJrKd1aAnJDHGr9QSoxJcO97CPoA/X55gmUGDPKgxx4F+E as+xkB73hQZetG888ca6bLKxyENOb1jSOYRINzFaQzQB4qnHnMdMN5fpgSeheUAmOm4l6gwRiK7 h/hG5ArEaS5NhlZAh6eVmW6IaZspxoYXh2fvu9KNvy08hxikEg99VhN6EmorrFz6a4rExMwLMs7 JSscqKZtMjxF0C7J+0J/4h8upV8aAy69MnbE74x+lYGpz/f3r+dVWbe9GOidsQKEuPYsmYzTGFq vJCIr3acoDJwV38CXoPCAPTRNBpKYOxKHCWVXztRyCnqCL/Sh6VyE26IuoSiqMltclT2EmyXlYd QlqduMwIWfKa0uI95bkStDktM7SbRKJpORq25qj8QZ728STp57vvoW1WISUEzHCG4MFcKax01lL SPAp6PT2y8Os1kurC5rznzETEAFgdqmNcc1dbgWR7sBCV3GE99lOo7aFS4NI/BjzvDMOy+/9z6M XPfY171BRmBD4GFJbCRxiEmSrUj6sz0dG12kO3imcxAIPSBKqX7nFHzqvh09HKsi/j4wIyVE1J/ 60WX4JNDsgtdthFJI//vKc4iAOZMnYHNPREkFP/Tq6wC0bfW/Tiuh+paDFa8U/Lh8k6+r2VC0oc Qj51DBYsZLa9YXA== X-Developer-Key: i=david@ixit.cz; a=openpgp; fpr=D77A09CFEEDC2BBD53A7047460023FC4D3492072 X-Endpoint-Received: by B4 Relay for david@ixit.cz/default with auth_id=355 X-Original-From: David Heidelberg Reply-To: david@ixit.cz From: David Heidelberg So far, only D-PHY mode was supported, which uses even bits when enabling or masking lanes. For C-PHY configuration, the hardware instead requires using the odd bits. Signed-off-by: David Heidelberg --- .../platform/qcom/camss/camss-csiphy-3ph-1-0.c | 25 ++++++++++++++++--= ---- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c b/dri= vers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c index f28c32d1a4ec5..348b8cd18327e 100644 --- a/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c +++ b/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c @@ -1054,10 +1054,17 @@ static u8 csiphy_get_lane_mask(struct csiphy_lanes_= cfg *lane_cfg) u8 lane_mask; int i; =20 - lane_mask =3D CSIPHY_3PH_CMN_CSI_COMMON_CTRL5_CLK_ENABLE; + if (lane_cfg->cphy) { + lane_mask =3D 0; =20 - for (i =3D 0; i < lane_cfg->num_data; i++) - lane_mask |=3D 1 << lane_cfg->data[i].pos; + for (i =3D 0; i < lane_cfg->num_data; i++) + lane_mask |=3D (1 << lane_cfg->data[i].pos) + 1; + } else { + lane_mask =3D CSIPHY_3PH_CMN_CSI_COMMON_CTRL5_CLK_ENABLE; + + for (i =3D 0; i < lane_cfg->num_data; i++) + lane_mask |=3D 1 << lane_cfg->data[i].pos; + } =20 return lane_mask; } @@ -1096,10 +1103,14 @@ static void csiphy_lanes_enable(struct csiphy_devic= e *csiphy, =20 settle_cnt =3D csiphy_settle_cnt_calc(link_freq, csiphy->timer_clk_rate); =20 - val =3D CSIPHY_3PH_CMN_CSI_COMMON_CTRL5_CLK_ENABLE; - for (i =3D 0; i < c->num_data; i++) - val |=3D BIT(c->data[i].pos * 2); - + if (c->cphy) { + for (i =3D 0; i < c->num_data; i++) + val |=3D BIT((c->data[i].pos * 2) + 1); + } else { + val =3D CSIPHY_3PH_CMN_CSI_COMMON_CTRL5_CLK_ENABLE; + for (i =3D 0; i < c->num_data; i++) + val |=3D BIT(c->data[i].pos * 2); + } writel_relaxed(val, csiphy->base + CSIPHY_3PH_CMN_CSI_COMMON_CTRLn(regs->offset, 5)); =20 --=20 2.51.0 From nobody Sun Feb 8 13:39:54 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6BC692D63E8; Sun, 9 Nov 2025 09:40:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762681205; cv=none; b=O6guTLnrt5BwgnQQHvb50z1N2vpGkFcsEBX3Gq2JfYfKz6KfMrAU1hydtmMylpHnRmOj+6gTKhrmEZ8xOdPJ/iJ+AwNUmdB+WBoHp+icjr7xEyiJd0/FlnoHQHw8yrO/tKhhtffU4o1t36Wrf8uUpWmJ2kLt33GFIwTUUeqbdTM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762681205; c=relaxed/simple; bh=Wmf076hxS/+CAwqbNUrfj0PlYofvsiTBvx2C1+aN0iI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pGRfvgvWitAYeyPboh356I5xsqW2tRGb2w05c6OawvSScUKowMXvOPuTq4EyBejKnXAjwy2mlyyjeeZjT9CCU/RvkkMq/bYrNp0d34QofcjHYwEra6p5ORhKYhYtB2HyTSk4PYe7LOA/y4c8mMbpYMFn2rnC1ydNThTOKj6SCkk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=L4jCW/VX; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="L4jCW/VX" Received: by smtp.kernel.org (Postfix) with ESMTPS id ED547C4CEFB; Sun, 9 Nov 2025 09:40:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1762681205; bh=Wmf076hxS/+CAwqbNUrfj0PlYofvsiTBvx2C1+aN0iI=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=L4jCW/VXGgWNl1eowHTTVm6SZvotAL8aba1h0Tj+qhLkb8E7xXckvkjuXf9drvxms 4mt12MdJEoSInrexl4D1A3Eovp3m6kfz83mVL4sPmzXWciP1H1Du+nUWmqO5kr9kIe 7o+BB2/gchtkGXnLgEEku99WpAAtQEToMoAhXHASLU6gNd8yNRTEXcaIrJjQ0e1vXT 6HDs6kJnsqBqqHse2gR0w8OZlopzY7TAw6fJX5YnVXF1hmYjhRnh/w+LpizG87h5xU YqkuawE55lfK/rt1fVUKz8zm1Yg24gilC07Gbgn82Y/H+dT3OKvbBYTkDiviKhu+qn EQWfudebsc71A== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id E798BCD13CF; Sun, 9 Nov 2025 09:40:04 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Sun, 09 Nov 2025 10:39:47 +0100 Subject: [PATCH RFC 4/8] media: qcom: camss: Prepare CSID for C-PHY support Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251109-qcom-cphy-v1-4-165f7e79b0e1@ixit.cz> References: <20251109-qcom-cphy-v1-0-165f7e79b0e1@ixit.cz> In-Reply-To: <20251109-qcom-cphy-v1-0-165f7e79b0e1@ixit.cz> To: Robert Foss , Todor Tomov , Bryan O'Donoghue , Vladimir Zapolskiy , Mauro Carvalho Chehab , Luca Weiss , Petr Hodina , Casey Connolly , "Dr. Git" Cc: Joel Selvaraj , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, phone-devel@vger.kernel.org, David Heidelberg X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2110; i=david@ixit.cz; h=from:subject:message-id; bh=67QPHtM7I6s6uFEWjy+7P8alMIyko6ww9PvBrgKxm7s=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBpEGFyHQdwgNa69TcTXUJ7+0HiDqgW6zw++IncQ ewgH+t9VWyJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCaRBhcgAKCRBgAj/E00kg crY+D/wPfC3CCHkyHKDhzQhl7Ydcyh+dDiR/RwwUrrK0RZ+CRoKnn9BELlgYOzt46nfs1R8+L4M DjMFrGT2vp+ILDsRLLD6sgYSbcRVZG1wy9y9JUMB1HSrXlciljZtGNGjiH4pxl/uYlmE1aNXo45 M2uRIpjfVQOZvoJ0tOepwPjUKSqom26ixbQTA5PUHIiRBxCnxuZ2940pqLXT/mmqixOvXsEmWod ViKqD+jWLN70a+tmj3fXzTKd5rlcx8VS0C7oxtkmiebSPxMm2Gs2uM+B/IlSzDqlNSmoxnSXJfN 89GFDCPWeVQGwBSWDEiAn0sx8V5KjXyQ8+RS87p13g5JiPsuVOSlyRV0hGuZG2TFmgh+H1SVrA9 y3Pydza5wHAoWc1rf2uZGABJFDBulo/1VvstJiss80yJ5BLDJLCWVh5WgQl3QuWO3YVvbki7IG7 x3H3VbGUrlS8SghJ8SjBZbgvueGPZMFfiSOEIc0yQU2zqRhmMbapjejhIFj/p+c6HvVEBl95NdW wZB0gC3EZEWJSe5d6dShv5NrfNGAZMSIghD/2QglRREKKrE+7DxIWDDvuQPJIKIiD5/MG7sTXF1 wUCF6Q2pG6fQwHV3uI19j11nuLlTXnjwN23uZAWaJQxFMTlT8LktsO1r6VsTOohRK7JYXmiUqKx mpbEAcz/YnFcyIw== X-Developer-Key: i=david@ixit.cz; a=openpgp; fpr=D77A09CFEEDC2BBD53A7047460023FC4D3492072 X-Endpoint-Received: by B4 Relay for david@ixit.cz/default with auth_id=355 X-Original-From: David Heidelberg Reply-To: david@ixit.cz From: David Heidelberg Inherit C-PHY information from CSIPHY, so we can configure CSID properly. CSI2_RX_CFG0_PHY_TYPE_SEL must be set to 1, when C-PHY mode is used. Signed-off-by: David Heidelberg --- drivers/media/platform/qcom/camss/camss-csid-gen2.c | 1 + drivers/media/platform/qcom/camss/camss-csid.c | 1 + drivers/media/platform/qcom/camss/camss-csid.h | 1 + 3 files changed, 3 insertions(+) diff --git a/drivers/media/platform/qcom/camss/camss-csid-gen2.c b/drivers/= media/platform/qcom/camss/camss-csid-gen2.c index 2a1746dcc1c5b..033036ae28a4f 100644 --- a/drivers/media/platform/qcom/camss/camss-csid-gen2.c +++ b/drivers/media/platform/qcom/camss/camss-csid-gen2.c @@ -183,6 +183,7 @@ static void __csid_configure_rx(struct csid_device *csi= d, val =3D (lane_cnt - 1) << CSI2_RX_CFG0_NUM_ACTIVE_LANES; val |=3D phy->lane_assign << CSI2_RX_CFG0_DL0_INPUT_SEL; val |=3D phy->csiphy_id << CSI2_RX_CFG0_PHY_NUM_SEL; + val |=3D csid->phy.cphy << CSI2_RX_CFG0_PHY_TYPE_SEL; writel_relaxed(val, csid->base + CSID_CSI2_RX_CFG0); =20 val =3D 1 << CSI2_RX_CFG1_PACKET_ECC_CORRECTION_EN; diff --git a/drivers/media/platform/qcom/camss/camss-csid.c b/drivers/media= /platform/qcom/camss/camss-csid.c index 5284b5857368c..68adea33cc719 100644 --- a/drivers/media/platform/qcom/camss/camss-csid.c +++ b/drivers/media/platform/qcom/camss/camss-csid.c @@ -1287,6 +1287,7 @@ static int csid_link_setup(struct media_entity *entit= y, csid->phy.csiphy_id =3D csiphy->id; =20 lane_cfg =3D &csiphy->cfg.csi2->lane_cfg; + csid->phy.cphy =3D lane_cfg->cphy; csid->phy.lane_cnt =3D lane_cfg->num_data; csid->phy.lane_assign =3D csid_get_lane_assign(lane_cfg); } diff --git a/drivers/media/platform/qcom/camss/camss-csid.h b/drivers/media= /platform/qcom/camss/camss-csid.h index aedc96ed84b2f..a82db31bd2335 100644 --- a/drivers/media/platform/qcom/camss/camss-csid.h +++ b/drivers/media/platform/qcom/camss/camss-csid.h @@ -70,6 +70,7 @@ struct csid_phy_config { u32 lane_assign; u32 en_vc; u8 need_vc_update; + bool cphy; }; =20 struct csid_device; --=20 2.51.0 From nobody Sun Feb 8 13:39:54 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 83C7D2DC783; Sun, 9 Nov 2025 09:40:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762681206; cv=none; b=d2QUJJ+KcEwGORaISCRMewZr5PiyOw6gkGqPTY6qPrnOtPohHA0BPjlJFqkOIGshmHrm8DaS5lUFRQLmSTpLjcmBawd3eX2zS3LOitA/yaoZJx3/burRW9cWv6BPhLVOTEAkujyZIgPti1B46UgwqHwahzvM8UD2QncV16BGmqA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762681206; c=relaxed/simple; bh=RZlBEAJOrXSu39VwxTx84OVlwMIvmfTRQ/plArGhkYk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DqFFfywKKrzJqvxI/GjP92tjWhQ/N6Ffk0Fhq6GFWvsb1tsithvTXE3bmL3ON8/TvDMCv6XGVNwIcOCVSvKy9UII+n8hl3OL/+rXbe5v2JGXnz69cFmx2ATpC9PyNOT5wGoW8lpjoR7W0Ox2FhQJlVNOq6pTPm96x49MghjfH/Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=CfCPH/OF; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="CfCPH/OF" Received: by smtp.kernel.org (Postfix) with ESMTPS id 0F41EC19423; Sun, 9 Nov 2025 09:40:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1762681205; bh=RZlBEAJOrXSu39VwxTx84OVlwMIvmfTRQ/plArGhkYk=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=CfCPH/OFa4yLhWObwpmzTVsHT2vPpxiCgKK3yoCSWEwjF9kJNMVwSgsgbKbmEukbS /hAvt8eIft2xwclWkuvRDByNgFpwaGbxrtUPW81/dIYrwE5dXeFVWT/8CmMh1fle7D S4HhaZ/lY323maxSl5CBEeV5rWb/3PJiRVajjtphz1/JbyZsc1s2TRWWGdACpX93Iy EjmPmBmzbgTregf/VED8h/v9F1za5siEqmB05QPFy2FYNvQ+WnJz/WV6osloJEACNw KpfXRoTNDukwlR0y73p0Xua1+fnpibQurIfzk+iUQDiXbX0z4nf4RBXQ2YVRQMStlm UwHLxTtqmyQfQ== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 02DF4CCF9F8; Sun, 9 Nov 2025 09:40:05 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Sun, 09 Nov 2025 10:39:48 +0100 Subject: [PATCH RFC 5/8] media: qcom: camss: Initialize lanes after lane configuration is available Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251109-qcom-cphy-v1-5-165f7e79b0e1@ixit.cz> References: <20251109-qcom-cphy-v1-0-165f7e79b0e1@ixit.cz> In-Reply-To: <20251109-qcom-cphy-v1-0-165f7e79b0e1@ixit.cz> To: Robert Foss , Todor Tomov , Bryan O'Donoghue , Vladimir Zapolskiy , Mauro Carvalho Chehab , Luca Weiss , Petr Hodina , Casey Connolly , "Dr. Git" Cc: Joel Selvaraj , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, phone-devel@vger.kernel.org, David Heidelberg X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3497; i=david@ixit.cz; h=from:subject:message-id; bh=wdtdhXUgjML5HyV1zbulZC0Uuqj+CHFjLctnxCE8hW4=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBpEGFyxqoCOIhTFI+UNGoVoFwPZtJ0IM5RkZElM 1EMsNK3SZmJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCaRBhcgAKCRBgAj/E00kg chyjD/4mX0dWFKEq4rpOFQ0utphrSV08we2r8jzmN6ZGMCBKO4S80K1XYGvD+Y4w7MBpdhMrNNV +u4Lank20TdQvvWR/KPaYl5xeZxFGsPPCacFodP1hYJlnx8fG9f0F854c884SafbYZtw84puwlZ QKGnlq7twr8p+pcwJpOrcz62LuiU1HhCx11SWkXglzx35xx7dRPPyk5Wzol2Y/jQm5rMVjJN06d dkY70DVbDVFyH/U8JtciuVYuhFc2iZYmo3MYQ983MMJDFxHYi16JLPFv0+gE4jkAts47cKQerkW lWXH+k2VL6nbTDpXm84o254PbVWn3bJ1PNU2hduKY13zjj+4eAQw8kAGlVDGDz8y0HH3f5T3SxY V2ViUxYjWVtKPatvfrU85dGcjpL1EvJ2ugAHAVpVqPO8pqSqi92+NlUMXO9CW4jibml8r0OmwIC fWzMYf4msbYV9X9wFANa20t8DVMJ9hOBJaBZFOC2UrSA7JXQ5/OVvzimOwVRnTwero3VF2T/I2j /imzhx7oR1NMMZ6y2SSxLgajo+TtWL1U2/mpMZD8VDwO4JisbGjCD56fQOOk3K+JMGnpYn56B7+ UcHM54J1YUjgVYOgonqUnnt/S7siEtlvr4Zx3E/KCX62BjQiRumfdraP1yJ4KSrDgGkmz+AlN5j T84vRB28i6dHn/A== X-Developer-Key: i=david@ixit.cz; a=openpgp; fpr=D77A09CFEEDC2BBD53A7047460023FC4D3492072 X-Endpoint-Received: by B4 Relay for david@ixit.cz/default with auth_id=355 X-Original-From: David Heidelberg Reply-To: david@ixit.cz From: Petr Hodina The lanes must not be initialized before the driver has access to the lane configuration, as it depends on whether D-PHY or C-PHY mode is in use. Move the lane initialization to a later stage where the configuration structures are available. Signed-off-by: Petr Hodina Signed-off-by: David Heidelberg Reviewed-by: Bryan O'Donoghue --- .../platform/qcom/camss/camss-csiphy-3ph-1-0.c | 70 ++++++++++++------= ---- 1 file changed, 37 insertions(+), 33 deletions(-) diff --git a/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c b/dri= vers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c index 348b8cd18327e..c2adbde6b4e0d 100644 --- a/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c +++ b/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c @@ -1101,6 +1101,42 @@ static void csiphy_lanes_enable(struct csiphy_device= *csiphy, u8 val; int i; =20 + switch (csiphy->camss->res->version) { + case CAMSS_845: + regs->lane_regs =3D &lane_regs_sdm845[0]; + regs->lane_array_size =3D ARRAY_SIZE(lane_regs_sdm845); + break; + case CAMSS_2290: + regs->lane_regs =3D &lane_regs_qcm2290[0]; + regs->lane_array_size =3D ARRAY_SIZE(lane_regs_qcm2290); + break; + case CAMSS_7280: + case CAMSS_8250: + regs->lane_regs =3D &lane_regs_sm8250[0]; + regs->lane_array_size =3D ARRAY_SIZE(lane_regs_sm8250); + break; + case CAMSS_8280XP: + regs->lane_regs =3D &lane_regs_sc8280xp[0]; + regs->lane_array_size =3D ARRAY_SIZE(lane_regs_sc8280xp); + break; + case CAMSS_X1E80100: + case CAMSS_8550: + regs->offset =3D 0x1000; + break; + case CAMSS_8650: + regs->lane_regs =3D &lane_regs_sm8650[0]; + regs->lane_array_size =3D ARRAY_SIZE(lane_regs_sm8650); + regs->offset =3D 0x1000; + break; + case CAMSS_8300: + case CAMSS_8775P: + regs->lane_regs =3D &lane_regs_sa8775p[0]; + regs->lane_array_size =3D ARRAY_SIZE(lane_regs_sa8775p); + break; + default: + break; + } + settle_cnt =3D csiphy_settle_cnt_calc(link_freq, csiphy->timer_clk_rate); =20 if (c->cphy) { @@ -1160,47 +1196,15 @@ static int csiphy_init(struct csiphy_device *csiphy) return -ENOMEM; =20 csiphy->regs =3D regs; - regs->offset =3D 0x800; =20 switch (csiphy->camss->res->version) { - case CAMSS_845: - regs->lane_regs =3D &lane_regs_sdm845[0]; - regs->lane_array_size =3D ARRAY_SIZE(lane_regs_sdm845); - break; - case CAMSS_2290: - regs->lane_regs =3D &lane_regs_qcm2290[0]; - regs->lane_array_size =3D ARRAY_SIZE(lane_regs_qcm2290); - break; - case CAMSS_7280: - case CAMSS_8250: - regs->lane_regs =3D &lane_regs_sm8250[0]; - regs->lane_array_size =3D ARRAY_SIZE(lane_regs_sm8250); - break; - case CAMSS_8280XP: - regs->lane_regs =3D &lane_regs_sc8280xp[0]; - regs->lane_array_size =3D ARRAY_SIZE(lane_regs_sc8280xp); - break; case CAMSS_X1E80100: - regs->lane_regs =3D &lane_regs_x1e80100[0]; - regs->lane_array_size =3D ARRAY_SIZE(lane_regs_x1e80100); - regs->offset =3D 0x1000; - break; case CAMSS_8550: - regs->lane_regs =3D &lane_regs_sm8550[0]; - regs->lane_array_size =3D ARRAY_SIZE(lane_regs_sm8550); - regs->offset =3D 0x1000; - break; case CAMSS_8650: - regs->lane_regs =3D &lane_regs_sm8650[0]; - regs->lane_array_size =3D ARRAY_SIZE(lane_regs_sm8650); regs->offset =3D 0x1000; break; - case CAMSS_8300: - case CAMSS_8775P: - regs->lane_regs =3D &lane_regs_sa8775p[0]; - regs->lane_array_size =3D ARRAY_SIZE(lane_regs_sa8775p); - break; default: + regs->offset =3D 0x800; break; } =20 --=20 2.51.0 From nobody Sun Feb 8 13:39:54 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 82EEF2DC782; Sun, 9 Nov 2025 09:40:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762681206; cv=none; b=Rz91havA3haK+dXwQv3k60WGpHFoBVf50dCkZaBGiQfYktHMhNj+rWvZAY+bVVbuGTkdGnyvpoJoJfiwNYW1/mX0vmjpSzrguniHSvJZ+LCO5Huqh7KbkfCK7Vc7NWJsLlS2KvLVPOY7PYYfZTlJZZognJFaouwMEo7zk3byy1M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762681206; c=relaxed/simple; bh=v9s3btskZ2Rth9gu+uq5qbWHiBXoJGFfPepBVDla8cs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GnJ59n/whl9FbEx92vQKmK38kkRGDuNkRGjTj334qnT9TXgdOSlouKoIfVPwDdlf1oYPHFxp2DDJPYX49X92ECQ71Bbs6Jdc9K6/MHsVgjS/UfOMNKBztyE6AEBJNUsIeeqjeB85X77eiNcLFv71U/25SYGQwQRSTvuhE7pT8Vs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BMvthkoo; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BMvthkoo" Received: by smtp.kernel.org (Postfix) with ESMTPS id 2D33AC116B1; Sun, 9 Nov 2025 09:40:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1762681205; bh=v9s3btskZ2Rth9gu+uq5qbWHiBXoJGFfPepBVDla8cs=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=BMvthkoogb6dq7u4Nn1p9FCE3i3y5+E6imoU69qf9TmBGHna7izsm3YWSM/v4nQb1 GJjDujj6mfFifd0d/ETRgrNAUhSvE8/dRyQOsM/gEHgva9OJNjzSVKhwsC8DZmXrIQ N7OKCnoJnOL0yUrnenEv9DnFY3fwKdtm+qcimAhsIBPzfgrFnSrLb6kDPyd+xobR5z 8F8XJrAczTONO2qLo7S06qwFxgwD7R0mspEMOSVK4gJ0GUWhB0wdNy4JE3fm4z6rVE SC8ZxgT7pLQrq51maNkrivQfsS390gZX6FahdfAEDoucMS7kldvxHMP0+yjJ2a+JOU OnJmRvMA+kqow== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1CBE0CCFA13; Sun, 9 Nov 2025 09:40:05 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Sun, 09 Nov 2025 10:39:49 +0100 Subject: [PATCH RFC 6/8] media: qcom: camss: csiphy-3ph: Use sdm845 C-PHY configuration sequence Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251109-qcom-cphy-v1-6-165f7e79b0e1@ixit.cz> References: <20251109-qcom-cphy-v1-0-165f7e79b0e1@ixit.cz> In-Reply-To: <20251109-qcom-cphy-v1-0-165f7e79b0e1@ixit.cz> To: Robert Foss , Todor Tomov , Bryan O'Donoghue , Vladimir Zapolskiy , Mauro Carvalho Chehab , Luca Weiss , Petr Hodina , Casey Connolly , "Dr. Git" Cc: Joel Selvaraj , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, phone-devel@vger.kernel.org, David Heidelberg X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1280; i=david@ixit.cz; h=from:subject:message-id; bh=nfr/qGGID06B5OD83q38f0PZZSjfhMYGec9zEfG35dA=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBpEGFyyePuixhaOiyf8A2P/GEclcOykEU12C2eU u4BeBtWC2mJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCaRBhcgAKCRBgAj/E00kg cnYjD/9KCEaAnRuojFAoWEehaCNM56MLeAxGe5I7ssqSeoX4YcvJJ+ehdA5HRpcVSPcnuF5lCMV rqcwuDCpuncMXRurj4eDav04LUENS1UReMOU/z/y2GsoMgbmIPh6HOIKJdHOn9W1tCph8KTsCpw ZFzH+GMxX5Hdm69cFY2JWwFTj3S1nsiw8GNmM6SQt8rDbTc7r1dCnFn8+pqO6iu27YlpJxtpZjA NaASxpO4IEYBONOxgpGL/h1UzTNScS7tEnthar8lA12HAkF/Zi/BVlfzeu314tw8dgAJBlpSm7v DkiPT3morRrnpgybbM9YPyrxselJWuCmZ1TOJDfXIUTG+Hmsj3sONHZdX6UZDvXT8qHpKqRv1nT QWVbqdh3DFB/kbiqIdIFNTIIFoUWu8CmPdcf4uF6btOODeS9Mopq5vmlrD4lqVb3hQqGJd4oIUw 0r6KIj+BCziGNMqY3bVTMBuPa9XiF/+GSaTx22czR+sSVDFp+tKd0N4TsgF6PzuHp1NbM867sl+ J9Pe7dBieez4fLs9t43/NgRPTqfQRAn5yt95+L4LUhUQsgzIEvREzF5Nk9kuZAHv2C6XpGNDDc0 o0ml18iNg5HybKwQRPLp9o1N9Kv9T6xoi1PXnufADen0RrWpAYC/B0ovj4T1msOlfDGbSOdqjdQ UAqux/51YhlDDPA== X-Developer-Key: i=david@ixit.cz; a=openpgp; fpr=D77A09CFEEDC2BBD53A7047460023FC4D3492072 X-Endpoint-Received: by B4 Relay for david@ixit.cz/default with auth_id=355 X-Original-From: David Heidelberg Reply-To: david@ixit.cz From: David Heidelberg Enable the 3-phase (3PH) lane configuration introduced earlier when C-PHY mode is requested on the SDM845 platform. This ensures the proper initialization sequence is used for C-PHY operation. Signed-off-by: David Heidelberg Reviewed-by: Bryan O'Donoghue --- drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c b/dri= vers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c index c2adbde6b4e0d..03f5c4676e89a 100644 --- a/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c +++ b/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c @@ -1103,8 +1103,14 @@ static void csiphy_lanes_enable(struct csiphy_device= *csiphy, =20 switch (csiphy->camss->res->version) { case CAMSS_845: - regs->lane_regs =3D &lane_regs_sdm845[0]; - regs->lane_array_size =3D ARRAY_SIZE(lane_regs_sdm845); + if (c->cphy) { + regs->lane_regs =3D &lane_regs_sdm845_3ph[0]; + regs->lane_array_size =3D ARRAY_SIZE(lane_regs_sdm845_3ph); + + } else { + regs->lane_regs =3D &lane_regs_sdm845[0]; + regs->lane_array_size =3D ARRAY_SIZE(lane_regs_sdm845); + } break; case CAMSS_2290: regs->lane_regs =3D &lane_regs_qcm2290[0]; --=20 2.51.0 From nobody Sun Feb 8 13:39:54 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9EBA02D663B; Sun, 9 Nov 2025 09:40:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762681205; cv=none; b=rRx8GTYixXKGg3w8E2RgYJoUbqERjPHSqqnA27LOeJ3uV7H1FMeHpQWGqfTY7hPpOXULrlz2e7Mct7fS1u9+3zXcFeIJiL/yaH5uEiuFY11TeDCwrzrgq/iiZ0U9jifVVHWm2wk9yFbWjZ1kOERLmWS+FzTV+xYgCB9XdUkNQK4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762681205; c=relaxed/simple; bh=u+4yBiAI4T4NZwmO+4c7YKye9yt8TDbvKEhXxOIQago=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=I19po7XUExlX/iHvVO8r5OULYP6BnUIsb7+HKV17o9Kd06oYlDLMlGFNNyI0Ltb9jd8fpSAFVtBLM+elKfRpCD13K+oqi+cQHA10YUBpCebMOh8GJgKt9qgItVLbFhwma0IClEp80/eHOPvvr3y4u+kCidDVIXoD2r4XGGFLf6o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=lqD2AQso; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="lqD2AQso" Received: by smtp.kernel.org (Postfix) with ESMTPS id 39C03C2BC86; Sun, 9 Nov 2025 09:40:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1762681205; bh=u+4yBiAI4T4NZwmO+4c7YKye9yt8TDbvKEhXxOIQago=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=lqD2AQsovj4FNVN583cHmobaO8hOGCrsiu8XnidB53uTav2oxBtGO8R8OrufsZ4wq ApnmcePPu9yQYeQGAefGWjfcwOwDHKNlH4CxtMoWfGIaPwszEcLjpL04zhcnJaaj3D 8w1snVL68udSFD1kqqL6aIUIrP5l3R/7IAzMI+Hcr2mFNi5JXHg/PZFaSKwsHKS0Xo DOgwRt9Z5jEyXLeARy5cFupbAlCEg7GbxY3EzAFQ2peY8fA3lSJTQ1xrQdiYOJvVyS ylJQpOVzwW+blnqfqWzu/HRBxD+KT0wBa8priJgQ5ooz5j6K80I8Ss+r164BIuAYzc sEOZgzQSEJFaQ== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 323D3CD13CF; Sun, 9 Nov 2025 09:40:05 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Sun, 09 Nov 2025 10:39:50 +0100 Subject: [PATCH RFC 7/8] media: qcom: camss: Account for C-PHY when calculating link frequency Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251109-qcom-cphy-v1-7-165f7e79b0e1@ixit.cz> References: <20251109-qcom-cphy-v1-0-165f7e79b0e1@ixit.cz> In-Reply-To: <20251109-qcom-cphy-v1-0-165f7e79b0e1@ixit.cz> To: Robert Foss , Todor Tomov , Bryan O'Donoghue , Vladimir Zapolskiy , Mauro Carvalho Chehab , Luca Weiss , Petr Hodina , Casey Connolly , "Dr. Git" Cc: Joel Selvaraj , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, phone-devel@vger.kernel.org, David Heidelberg , Sakari Ailus X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=4640; i=david@ixit.cz; h=from:subject:message-id; bh=2c/mk79UmozICACUyCQCOXzS/+KdKKC6afXmEjBst5I=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBpEGFydykdNLSZ1zcmGM1tlnV1yz50pHPr9HPp0 FL6AaUnrECJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCaRBhcgAKCRBgAj/E00kg cl6dEACMnIxbepTBnH2iTUFCMplyaAtqFF2yT93rmSF+h/chy4ebayjzpJ2pc24AsyDbtICkFRr 6lIT3QDfz6Zrf9i399Cm7BKledVObuifjlLdbOcPdpk4oEqIRUBXeydfzRW44vndK/g/e9Z/MzX XIIkIHTAhLMFpilG+p7O+gL+fmV4o0SNLB/W+0S4w149JFgaX0JPFms+NlgZR00t+GmjXlfkBY0 8Q9JrzUwMkm0UzEnBJxQ2MEjcI41LpO/1X/3q05xbKpHSa0yNfU1/wGunTUPzZPp8n8YJJGgu3q pxTz/eZUOE+lDg7sOLT1F+uVyLvW6puZMU9OxB2Swrl6GTAGZbpYqlX8Vh/ImhKN+IcdasbvPA/ Hb/oyvv8PpxKQy0xgwSdUaJjbKZgKfXWk3X73C7v4i/XHQiU2OupF7R5M7oQPDk/WrD3EuRQeE9 f7w71IyArk8Mdx7TeawzHS0h+B3ZLhSBPEp2plrXjYJVh+QZ2tXtRFWGPtwtoVRHIqVYWEKCP/h d9PpuOLD5t1t4RT01NRgZX/Xieho8/IiM3qiwBlaf2UHVO5LmDy/g5QPFpHG5xcUQaU7Jd//g6A bZkHFPECYIex0ZVtwGEx2XWqCj0WKb3yWrtO7ZWZK3SZ5h3llPa+WXvyTO+0qim63GtzW5XRHj2 sgqgdoMMGCRsKgA== X-Developer-Key: i=david@ixit.cz; a=openpgp; fpr=D77A09CFEEDC2BBD53A7047460023FC4D3492072 X-Endpoint-Received: by B4 Relay for david@ixit.cz/default with auth_id=355 X-Original-From: David Heidelberg Reply-To: david@ixit.cz From: David Heidelberg Ensure that the link frequency divider correctly accounts for C-PHY operation. The divider differs between D-PHY and C-PHY, as described in the MIPI CSI-2 specification. For more details, see: https://docs.kernel.org/driver-api/media/tx-rx.html#pixel-rate Suggested-by: Sakari Ailus Signed-off-by: David Heidelberg --- drivers/media/platform/qcom/camss/camss-csid.c | 2 +- drivers/media/platform/qcom/camss/camss-csiphy.c | 6 ++++-- drivers/media/platform/qcom/camss/camss.c | 7 ++++--- drivers/media/platform/qcom/camss/camss.h | 2 +- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/drivers/media/platform/qcom/camss/camss-csid.c b/drivers/media= /platform/qcom/camss/camss-csid.c index 68adea33cc719..9fb5834b28e2b 100644 --- a/drivers/media/platform/qcom/camss/camss-csid.c +++ b/drivers/media/platform/qcom/camss/camss-csid.c @@ -545,7 +545,7 @@ static int csid_set_clock_rates(struct csid_device *csi= d) fmt =3D csid_get_fmt_entry(csid->res->formats->formats, csid->res->format= s->nformats, csid->fmt[MSM_CSIPHY_PAD_SINK].code); link_freq =3D camss_get_link_freq(&csid->subdev.entity, fmt->bpp, - csid->phy.lane_cnt); + csid->phy.lane_cnt, csid->phy.cphy); if (link_freq < 0) link_freq =3D 0; =20 diff --git a/drivers/media/platform/qcom/camss/camss-csiphy.c b/drivers/med= ia/platform/qcom/camss/camss-csiphy.c index a734fb7dde0a4..61f2b2ac3f159 100644 --- a/drivers/media/platform/qcom/camss/camss-csiphy.c +++ b/drivers/media/platform/qcom/camss/camss-csiphy.c @@ -144,8 +144,9 @@ static int csiphy_set_clock_rates(struct csiphy_device = *csiphy) u8 bpp =3D csiphy_get_bpp(csiphy->res->formats->formats, csiphy->res->for= mats->nformats, csiphy->fmt[MSM_CSIPHY_PAD_SINK].code); u8 num_lanes =3D csiphy->cfg.csi2->lane_cfg.num_data; + bool cphy =3D csiphy->cfg.csi2->lane_cfg.cphy; =20 - link_freq =3D camss_get_link_freq(&csiphy->subdev.entity, bpp, num_lanes); + link_freq =3D camss_get_link_freq(&csiphy->subdev.entity, bpp, num_lanes,= cphy); if (link_freq < 0) link_freq =3D 0; =20 @@ -270,9 +271,10 @@ static int csiphy_stream_on(struct csiphy_device *csip= hy) u8 bpp =3D csiphy_get_bpp(csiphy->res->formats->formats, csiphy->res->for= mats->nformats, csiphy->fmt[MSM_CSIPHY_PAD_SINK].code); u8 num_lanes =3D csiphy->cfg.csi2->lane_cfg.num_data; + bool cphy =3D csiphy->cfg.csi2->lane_cfg.cphy; u8 val; =20 - link_freq =3D camss_get_link_freq(&csiphy->subdev.entity, bpp, num_lanes); + link_freq =3D camss_get_link_freq(&csiphy->subdev.entity, bpp, num_lanes,= cphy); =20 if (link_freq < 0) { dev_err(csiphy->camss->dev, diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/plat= form/qcom/camss/camss.c index 549780f3f948b..248aa6b21b5ad 100644 --- a/drivers/media/platform/qcom/camss/camss.c +++ b/drivers/media/platform/qcom/camss/camss.c @@ -3912,20 +3912,21 @@ struct media_pad *camss_find_sensor_pad(struct medi= a_entity *entity) * camss_get_link_freq - Get link frequency from sensor * @entity: Media entity in the current pipeline * @bpp: Number of bits per pixel for the current format - * @lanes: Number of lanes in the link to the sensor + * @nr_of_lanes: Number of lanes in the link to the sensor * * Return link frequency on success or a negative error code otherwise */ s64 camss_get_link_freq(struct media_entity *entity, unsigned int bpp, - unsigned int lanes) + unsigned int nr_of_lanes, bool cphy) { struct media_pad *sensor_pad; + unsigned int div =3D nr_of_lanes * 2 * (cphy ? 7 : 16); =20 sensor_pad =3D camss_find_sensor_pad(entity); if (!sensor_pad) return -ENODEV; =20 - return v4l2_get_link_freq(sensor_pad, bpp, 2 * lanes); + return v4l2_get_link_freq(sensor_pad, 16 * bpp, div); } =20 /* diff --git a/drivers/media/platform/qcom/camss/camss.h b/drivers/media/plat= form/qcom/camss/camss.h index 9d9a62640e25d..0ab908b0c037f 100644 --- a/drivers/media/platform/qcom/camss/camss.h +++ b/drivers/media/platform/qcom/camss/camss.h @@ -162,7 +162,7 @@ int camss_enable_clocks(int nclocks, struct camss_clock= *clock, void camss_disable_clocks(int nclocks, struct camss_clock *clock); struct media_pad *camss_find_sensor_pad(struct media_entity *entity); s64 camss_get_link_freq(struct media_entity *entity, unsigned int bpp, - unsigned int lanes); + unsigned int lanes, bool cphy); int camss_get_pixel_clock(struct media_entity *entity, u64 *pixel_clock); int camss_pm_domain_on(struct camss *camss, int id); void camss_pm_domain_off(struct camss *camss, int id); --=20 2.51.0 From nobody Sun Feb 8 13:39:54 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9EAD12D6630; Sun, 9 Nov 2025 09:40:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762681205; cv=none; b=RoJYv4RYBjWcmgcJBB5davulvBKaYi6xicvX1zDpq5zR3AAh7toagx382J7L6/yndz6hrVWJeux9QP2nZlHLqGxw2bsp/bR35VTJbfD5Yiec3Kaat8OXz4Ms/0UZiRWennrRjySbS0oTwvYISsaSytYLRQUgvN79opW7VMfepkg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762681205; c=relaxed/simple; bh=dqMMUSeQ+jdd/9lo3As8qjx3qL8HhQ6Z6MvK10c0nc4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KJ6NaLshBejC+ihjDtfuQKlTCFxMuEN8hddmknncanVKHtND3LjzEbl5BiSqUonqnGys/GZkXLxjbUgDCkR8tMPGX7FVvO2gMmEky479M8rLuj0pZd5oj62A/kdoQ9+aq7Hyby4PH/WmveqyFHNhYQnimKZFDdKxb2GEaU1rcG0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MEER7+0d; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="MEER7+0d" Received: by smtp.kernel.org (Postfix) with ESMTPS id 50B7BC2BC87; Sun, 9 Nov 2025 09:40:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1762681205; bh=dqMMUSeQ+jdd/9lo3As8qjx3qL8HhQ6Z6MvK10c0nc4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=MEER7+0d0Rt/3WDwJi27yct5Gll/TNY2Ir8P6yjR4l9H605/9M82TGWFsDUU4qFUs Vwfs9qfHrKm8o55/2adNwCiEJJZlpuWJLXVer1QxSJ8EwycQvEqiSjCmEi8mfzyiC+ oIssUYyZGcdGaV17R2dDMRkrELihyKmqFYDIJ7qXT8JLQ8JWVypIUfgl6TywwKyQ4D 2bZl58k3If+j7vz6KQWXRc9o2Aec4tUOgwv5Z1sF68x8mGV1ftcswT80LrW26OWr9f KSw9s4+hVwCL9zl0BQdXs6DRe9MJBpZPD4dkOTtC7era90H13qSXwM1MeCB7r0ZZu6 C1O2mnPf83qSw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 43FC7CD1297; Sun, 9 Nov 2025 09:40:05 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Sun, 09 Nov 2025 10:39:51 +0100 Subject: [PATCH RFC 8/8] media: qcom: camss: Remove D-PHY-only endpoint restriction Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251109-qcom-cphy-v1-8-165f7e79b0e1@ixit.cz> References: <20251109-qcom-cphy-v1-0-165f7e79b0e1@ixit.cz> In-Reply-To: <20251109-qcom-cphy-v1-0-165f7e79b0e1@ixit.cz> To: Robert Foss , Todor Tomov , Bryan O'Donoghue , Vladimir Zapolskiy , Mauro Carvalho Chehab , Luca Weiss , Petr Hodina , Casey Connolly , "Dr. Git" Cc: Joel Selvaraj , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, phone-devel@vger.kernel.org, David Heidelberg X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=959; i=david@ixit.cz; h=from:subject:message-id; bh=zDsFzpKtJmk7KEk5h22OnNp/nXx6STTnT1WeAcZBwYA=; b=owEBbAKT/ZANAwAIAWACP8TTSSByAcsmYgBpEGFzR5ywwp3YOPFsLYzk5y09hMnyI69rHKk2T p7r1//BEMmJAjIEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCaRBhcwAKCRBgAj/E00kg cu0MD/dBQ5LH7bVr49IyfhX1vXrMkQzuBHMIUfDpVDGWKWzVVznV9CcopTkNZbdz6lfcbfl/D3p dF2G68aYGuo79pBTTsX5LycIJZqqrYLl3CmMM/CA2YqpDydDlw0/O2zwCx67lb6Ir6JZ/knCX08 IGInYTQD9FsrfdRhxjYJ+rkoJLefYTgA1MBY42O2KzyFVymbdf5bR5VnfY78E3vHCb4PGvny6+q tD+luO9u8EWKmKjY9lHE5Ybs5eINa+q+I7gGue99qaWb7MFtoK0NevIZ9ZObMMiKLSxxvp2T138 c4n13yoIPaQ2tDX26Gb16hp+Vv2pP1pbXZnlv65xgRb0v99atQdoeOQX4UT/h+sYP52ldYfy2va CBQnxizONrKdhpNS1j0d34qhOLXu0fzipXASRvJdutGPITHfUG6NQTK1BVHAr+H5KuDxXGRmOyu TdIknVTiCm0MKYvM7Z/4InX0aV1g2uSmlmyJMG9BjCfFlEjurO7SQBI+69BOEzVMhujZa8LEIVj 9NDVrOjJjagF1UEdFUhBW1Y2C9Eb7s7n3oSLFmv+tE6z7I7vlF04HH6U4Z/I1M9VDedMe2fzYh1 uc3FIkug3CIzlP/CpYGDuPr241go4qkqSs5Sg0vT2aaNtSX80LqDUAbmAvz6KauHOsFHK/jy3ry 7Qjq8E6v5qi1B X-Developer-Key: i=david@ixit.cz; a=openpgp; fpr=D77A09CFEEDC2BBD53A7047460023FC4D3492072 X-Endpoint-Received: by B4 Relay for david@ixit.cz/default with auth_id=355 X-Original-From: David Heidelberg Reply-To: david@ixit.cz From: David Heidelberg C-PHY mode is now supported, so the endpoint bus-type restriction to D-PHY can be removed. Signed-off-by: David Heidelberg --- drivers/media/platform/qcom/camss/camss.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/plat= form/qcom/camss/camss.c index 248aa6b21b5ad..1408e8a03f0bd 100644 --- a/drivers/media/platform/qcom/camss/camss.c +++ b/drivers/media/platform/qcom/camss/camss.c @@ -4044,15 +4044,6 @@ static int camss_of_parse_endpoint_node(struct devic= e *dev, if (ret) return ret; =20 - /* - * Most SoCs support both D-PHY and C-PHY standards, but currently only - * D-PHY is supported in the driver. - */ - if (vep.bus_type !=3D V4L2_MBUS_CSI2_DPHY) { - dev_err(dev, "Unsupported bus type %d\n", vep.bus_type); - return -EINVAL; - } - csd->interface.csiphy_id =3D vep.base.port; =20 mipi_csi2 =3D &vep.bus.mipi_csi2; --=20 2.51.0