Re: [PATCH v7 7/8] media: qcom: camss: Account for C-PHY when calculating link frequency
Wenmeng Liu <[email protected]>
| Newsgroups | org.kernel.vger.phone-devel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-kernel,org.kernel.vger.linux-media |
|---|---|
| Message-ID | <[email protected]> |
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; >