Linux-PHY Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Hangxiang Ma" <hangxiang.ma@oss.qualcomm.com>
Cc: linux-phy@lists.infradead.org, devicetree@vger.kernel.org,
	robh@kernel.org, conor+dt@kernel.org, media-ci@linuxtv.org,
	vkoul@kernel.org, neil.armstrong@linaro.org, olteanv@gmail.com
Subject: Re: [PATCH v22 11/14] arm64: dts: qcom: kaanapali: Add CAMSS and CSIPHY block definitions
Date: Sun, 25 Oct 2026 03:43:56 +0000	[thread overview]
Message-ID: <sashiko-outbox-184024@kernel.org> (raw)
In-Reply-To: <20261024-kaanapali-camss-v22-11-7da3ea49c8a1@oss.qualcomm.com>

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] arm64: dts: qcom: kaanapali: CSIPHY opp-300000000 mismatches 266.67 MHz RCG
- [Low] arm64: dts: qcom: kaanapali: unused dt-bindings/phy/phy.h include
--

commit 42e005ff9edc4076b7d2be241a23c845a3953115
Author: Hangxiang Ma <hangxiang.ma@oss.qualcomm.com>

arm64: dts: qcom: kaanapali: Add CAMSS and CSIPHY block definitions

This commit adds the CAMSS and six CSIPHY device tree nodes along with the
CSIPHY OPP table to the Kaanapali SoC device tree.

> diff --git a/arch/arm64/boot/dts/qcom/kaanapali.dtsi b/arch/arm64/boot/dts/qcom/kaanapali.dtsi
> index e48a179d07220..11df1c7c6e31d 100644
> --- a/arch/arm64/boot/dts/qcom/kaanapali.dtsi
> +++ b/arch/arm64/boot/dts/qcom/kaanapali.dtsi
> @@ -20,6 +20,7 @@
>  #include <dt-bindings/interconnect/qcom,kaanapali-rpmh.h>
>  #include <dt-bindings/interrupt-controller/arm-gic.h>
>  #include <dt-bindings/mailbox/qcom-ipcc.h>
> +#include <dt-bindings/phy/phy.h>

[Severity: Low]
This isn't a bug, but is the dt-bindings/phy/phy.h include needed here? None
of the PHY_NONE, PHY_TYPE_*, or PHY_POL_* constants from this header appear
to be used in kaanapali.dtsi or its board overlays.

[ ... ]

> @@ -6548,6 +6925,28 @@ pdp_tx: scp-sram-section@100 {
>  		};
>  	};
>  
> +	csiphy_mxc_opp_table: opp-table-mxc {
> +		compatible = "operating-points-v2";
> +
> +		opp-300000000 {
> +			opp-hz = /bits/ 64 <300000000>;
> +			required-opps = <&rpmhpd_opp_low_svs_d1>,
> +					<&rpmhpd_opp_low_svs_d1>;
> +		};

[Severity: High]
Should this lowest OPP in csiphy_mxc_opp_table be 266666667 Hz instead of
300000000 Hz?

Each csiphy0..csiphy5 node uses CAM_CC_CSIPHYn_CLK as its core clock, which is
parented to cam_cc_cphy_rx_clk_src with CLK_SET_RATE_PARENT. In
drivers/clk/qcom/camcc-kaanapali.c, ftbl_cam_cc_cphy_rx_clk_src only supports
266.67 MHz, 400 MHz, and 480 MHz:

static const struct freq_tbl ftbl_cam_cc_cphy_rx_clk_src[] = {
	F(266666667, P_CAM_CC_PLL0_OUT_MAIN, 4.5, 0, 0),
	F(400000000, P_CAM_CC_PLL0_OUT_MAIN, 3, 0, 0),
	F(480000000, P_CAM_CC_PLL0_OUT_MAIN, 2.5, 0, 0),
	{ }
};

When phy_qcom_mipi_csi2_power_on() -> phy_qcom_mipi_csi2_set_clock_rates() in
drivers/phy/qualcomm/phy-qcom-mipi-csi2-core.c runs for a CSI-2 link
frequency where link_freq / 4 <= 300000000 Hz:

	opp = dev_pm_opp_find_freq_ceil(dev, &opp_rate);
	...
		perf = dev_pm_opp_get_required_pstate(opp, pstate);
		pstate += 1;

		ret = dev_pm_genpd_set_performance_state(csi2phy->pd_list->pd_devs[i], perf);
	...
	ret = dev_pm_opp_set_rate(dev, opp_rate);

dev_pm_opp_find_freq_ceil() selects opp-300000000 and votes RPMHPD_MMCX and
RPMHPD_MXC to rpmhpd_opp_low_svs_d1. However, because cam_cc_cphy_rx_clk_src
uses clk_rcg2_shared_ops (ceiling lookup), dev_pm_opp_set_rate(dev, 300000000)
rounds the clock rate up to 400000000 Hz.

Doesn't this leave the CSIPHY core clock running at 400 MHz while MMCX and
MXC are only voted to rpmhpd_opp_low_svs_d1 instead of rpmhpd_opp_low_svs,
and make the 266666667 Hz clock rate unreachable?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261024-kaanapali-camss-v22-0-7da3ea49c8a1@oss.qualcomm.com?part=11

-- 
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy

  reply	other threads:[~2026-10-25  3:43 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-25  3:17 [PATCH v22 00/14] media: qcom: camss: Add Kaanapali support Hangxiang Ma
2026-10-25  3:17 ` [PATCH v22 01/14] dt-bindings: phy: qcom,x1e80100-csi2-phy: Add Kaanapali CSI2 PHY Hangxiang Ma
2026-10-25  3:17 ` [PATCH v22 02/14] phy: qcom-mipi-csi2: Parametrise the common status register offset Hangxiang Ma
2026-10-25  3:17 ` [PATCH v22 03/14] phy: qcom-mipi-csi2: Add Kaanapali support Hangxiang Ma
2026-10-25  3:17 ` [PATCH v22 04/14] media: qcom: camss: Add addr_update hooks and guard CSID reg_update Hangxiang Ma
2026-10-25  3:17 ` [PATCH v22 05/14] media: dt-bindings: Add CAMSS device for Kaanapali Hangxiang Ma
2026-10-25  3:17 ` [PATCH v22 06/14] media: qcom: camss: Add Kaanapali compatible Hangxiang Ma
2026-10-25  3:17 ` [PATCH v22 07/14] media: qcom: camss: csiphy: Add support for v2.4.0 two-phase CSIPHY Hangxiang Ma
2026-10-25  3:44   ` sashiko-bot
2026-10-25  3:17 ` [PATCH v22 08/14] media: qcom: camss: csid: Add support for CSID 1080 Hangxiang Ma
2026-10-25  3:44   ` sashiko-bot
2026-10-25 11:15   ` Bryan O'Donoghue
2026-10-26  9:50     ` Hangxiang Ma
2026-10-26 10:49   ` Loic Poulain
2026-10-26 12:44     ` Hangxiang Ma
2026-10-25  3:17 ` [PATCH v22 09/14] media: qcom: camss: vfe: Add support for VFE 1080 Hangxiang Ma
2026-10-26 10:00   ` Loic Poulain
2026-10-26 10:22     ` Hangxiang Ma
2026-10-25  3:17 ` [PATCH v22 10/14] media: qcom: camss: tpg: Add support for v2.4.0 TPG Hangxiang Ma
2026-10-25  3:37   ` sashiko-bot
2026-10-25  3:17 ` [PATCH v22 11/14] arm64: dts: qcom: kaanapali: Add CAMSS and CSIPHY block definitions Hangxiang Ma
2026-10-25  3:43   ` sashiko-bot [this message]
2026-10-26 16:29   ` Loic Poulain
2026-10-27  4:26     ` Hangxiang Ma
2026-10-25  3:17 ` [PATCH v22 12/14] arm64: dts: qcom: kaanapali: Add CCI controller nodes Hangxiang Ma
2026-10-26 15:55   ` Loic Poulain
2026-10-27  4:07     ` Hangxiang Ma
2026-10-27  4:09     ` Hangxiang Ma
2026-10-25  3:17 ` [PATCH v22 13/14] arm64: dts: qcom: kaanapali: Add camera MCLK pinctrl Hangxiang Ma
2026-10-25  3:17 ` [PATCH v22 14/14] arm64: dts: qcom: kaanapali-mtp-camera-s5kjn5: Add DT overlay Hangxiang Ma

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=sashiko-outbox-184024@kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=hangxiang.ma@oss.qualcomm.com \
    --cc=linux-phy@lists.infradead.org \
    --cc=media-ci@linuxtv.org \
    --cc=neil.armstrong@linaro.org \
    --cc=olteanv@gmail.com \
    --cc=robh@kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=vkoul@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox