On 6/5/2026 9:14 PM, David Heidelberg via B4 Relay wrote:
From: David Heidelberg <[email protected]>

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 <[email protected]>
Acked-by: Cory Keitz <[email protected]>
Tested-by: Cory Keitz <[email protected]>
Reviewed-by: Bryan O'Donoghue <[email protected]>
Link: https://docs.kernel.org/driver-api/media/tx-rx.html#pixel-rate
Signed-off-by: David Heidelberg <[email protected]>
---
  drivers/media/platform/qcom/camss/camss-csid.c   |  7 +++++--
  drivers/media/platform/qcom/camss/camss-csiphy.c |  6 ++----
  drivers/media/platform/qcom/camss/camss.c        | 18 +++++++++++++++---
  drivers/media/platform/qcom/camss/camss.h        |  2 +-
  4 files changed, 23 insertions(+), 10 deletions(-)

diff --git a/drivers/media/platform/qcom/camss/camss-csid.c 
b/drivers/media/platform/qcom/camss/camss-csid.c
index bcc34ac9dd212..7415e811082da 100644
--- a/drivers/media/platform/qcom/camss/camss-csid.c
+++ b/drivers/media/platform/qcom/camss/camss-csid.c
@@ -534,25 +534,28 @@ const struct csid_format_info *csid_get_fmt_entry(const 
struct csid_format_info
/*
   * csid_set_clock_rates - Calculate and set clock rates on CSID module
   * @csiphy: CSID device
   */
  static int csid_set_clock_rates(struct csid_device *csid)
  {
        struct device *dev = csid->camss->dev;
+       struct csiphy_device *csiphy = 
&csid->camss->csiphy[csid->phy.csiphy_id];

The PHY indices are not necessarily contiguous on some platforms, such as Hamoa or Purwa.

For example, on Hamoa, we have csiphy0, csiphy1, csiphy2, and csiphy4. Using csiphy->id directly would lead to an array out-of-bounds access.

Thanks,
Wenmeng
+       struct csiphy_lanes_cfg *lane_cfg = &csiphy->cfg.csi2->lane_cfg;
        const struct csid_format_info *fmt;
+
        s64 link_freq;
        int i, j;
        int ret;


Reply via email to