Skip to content

Commit

Permalink
media: rcar-csi2: Optimize the selection PHTW register
Browse files Browse the repository at this point in the history
PHTW register is selected based on default bit rate from Table[1].
for the bit rates less than or equal to 250. Currently first
value of default bit rate which is greater than or equal to
the caculated mbps is selected. This selection can be further
improved by selecting the default bit rate which is nearest to
the calculated value.

[1] specs r19uh0105ej0200-r-car-3rd-generation.pdf [Table 25.12]

Fixes: 769afd2 ("media: rcar-csi2: add Renesas R-Car MIPI CSI-2 receiver driver")
Signed-off-by: Suresh Udipi <sudipi@jp.adit-jv.com>
Signed-off-by: Michael Rodin <mrodin@de.adit-jv.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  • Loading branch information
Suresh Udipi authored and Mauro Carvalho Chehab committed Nov 30, 2021
1 parent ebeefe2 commit 549cc89
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion drivers/media/platform/rcar-vin/rcar-csi2.c
Original file line number Diff line number Diff line change
Expand Up @@ -1108,10 +1108,17 @@ static int rcsi2_phtw_write_mbps(struct rcar_csi2 *priv, unsigned int mbps,
const struct rcsi2_mbps_reg *values, u16 code)
{
const struct rcsi2_mbps_reg *value;
const struct rcsi2_mbps_reg *prev_value = NULL;

for (value = values; value->mbps; value++)
for (value = values; value->mbps; value++) {
if (value->mbps >= mbps)
break;
prev_value = value;
}

if (prev_value &&
((mbps - prev_value->mbps) <= (value->mbps - mbps)))
value = prev_value;

if (!value->mbps) {
dev_err(priv->dev, "Unsupported PHY speed (%u Mbps)", mbps);
Expand Down

0 comments on commit 549cc89

Please sign in to comment.