Re: [PATCH v7 7/8] media: qcom: camss: Account for C-PHY when calculating link frequency
David Heidelberg <[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 10/06/2026 10:23, Wenmeng Liu wrote: > > > 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. > Nice catch, thanks. I thought I'll make it cleaner, but I guess this chance could be pain point. Reverted to passing (number of) `lanes` and just added cphy bool instead of passing whole struct. David > 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; > -- David Heidelberg