[PATCH 3/4] media: i2c: ds90ub960: Fix VC mapping when ports skipped
From: Rishikesh Donadkar
Date: Mon Jun 08 2026 - 10:41:08 EST
From: Jai Luthra <j-luthra@xxxxxx>
Currently the for loop that maps virtual channels from RX to TX ports
terminates at the first unconnected RX port.
Fix that by instead continuing to scan the remaining ports.
Signed-off-by: Jai Luthra <j-luthra@xxxxxx>
Signed-off-by: Rishikesh Donadkar <r-donadkar@xxxxxx>
---
drivers/media/i2c/ds90ub960.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/media/i2c/ds90ub960.c b/drivers/media/i2c/ds90ub960.c
index 506b436fe50c..d1597659639f 100644
--- a/drivers/media/i2c/ds90ub960.c
+++ b/drivers/media/i2c/ds90ub960.c
@@ -3488,15 +3488,16 @@ static void ub960_get_vc_maps(struct ub960_data *priv, u8 *vc_map)
struct device *dev = &priv->client->dev;
u8 nport, available_vc = 0;
- for (nport = 0;
- nport < priv->hw_data->num_rxports && priv->rxports[nport];
- ++nport) {
+ for (nport = 0; nport < priv->hw_data->num_rxports; ++nport) {
struct v4l2_mbus_frame_desc source_fd;
bool used_vc[UB960_MAX_VC] = {false};
u8 vc, cur_vc = available_vc;
int j, ret;
u8 map;
+ if (!priv->rxports[nport])
+ continue;
+
ret = v4l2_subdev_call(priv->rxports[nport]->source.sd, pad,
get_frame_desc,
priv->rxports[nport]->source.pad,
--
2.34.1