From 300943521d3408da76ef27aca0c986bf004f1b62 Mon Sep 17 00:00:00 2001 From: Hu Kejun Date: Fri, 21 Aug 2020 08:15:10 +0800 Subject: [PATCH] media: rockchip: cif: fix link to mipi and lvds is enabled at the same time Signed-off-by: Hu Kejun Change-Id: I1d1006e05ffb444175c1f59fb2fdd872da748699 --- drivers/media/platform/rockchip/cif/dev.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/rockchip/cif/dev.c b/drivers/media/platform/rockchip/cif/dev.c index e950dea16b50..ff2366d4bf45 100644 --- a/drivers/media/platform/rockchip/cif/dev.c +++ b/drivers/media/platform/rockchip/cif/dev.c @@ -335,6 +335,7 @@ static int rkcif_create_links(struct rkcif_device *dev) int ret; u32 flags; unsigned int s, pad, id, stream_num = 0; + bool mipi_lvds_linked = false; if (dev->inf_id == RKCIF_MIPI_LVDS) stream_num = RKCIF_MAX_STREAM_MIPI; @@ -397,8 +398,8 @@ static int rkcif_create_links(struct rkcif_device *dev) if ((dev->chip_id != CHIP_RK1808_CIF && dev->chip_id != CHIP_RV1126_CIF && - dev->chip_id != CHIP_RV1126_CIF_LITE) | - (id == pad - 1)) + dev->chip_id != CHIP_RV1126_CIF_LITE) || + (id == pad - 1 && !mipi_lvds_linked)) flags = MEDIA_LNK_FL_ENABLED; else flags = 0; @@ -431,6 +432,10 @@ static int rkcif_create_links(struct rkcif_device *dev) linked_sensor.sd->name, sensor->sd->name); } + + if (linked_sensor.mbus.type != V4L2_MBUS_BT656 && + linked_sensor.mbus.type != V4L2_MBUS_PARALLEL) + mipi_lvds_linked = true; } return 0;