From 6e287635a8e34873662558e5e6d8e6425950edab Mon Sep 17 00:00:00 2001 From: Zhibin Huang Date: Wed, 10 Apr 2024 19:03:35 +0800 Subject: [PATCH] drm/rockchip: dsi: add support swap two channel data of MIPI Signed-off-by: Zhibin Huang Change-Id: Ib9dd986da26bff9fb744e592522c332e721e03ac --- drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c index dab6df0bade7..273fb701325c 100644 --- a/drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c +++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c @@ -310,6 +310,7 @@ struct dw_mipi_dsi_rockchip { /* dual-channel */ bool is_slave; struct dw_mipi_dsi_rockchip *slave; + bool data_swap; /* optional external dphy */ bool phy_enabled; @@ -835,6 +836,9 @@ dw_mipi_dsi_encoder_atomic_check(struct drm_encoder *encoder, if (dsi->slave) { s->output_flags |= ROCKCHIP_OUTPUT_DUAL_CHANNEL_LEFT_RIGHT_MODE; s->output_if |= VOP_OUTPUT_IF_MIPI1; + + if (dsi->data_swap) + s->output_flags |= ROCKCHIP_OUTPUT_DATA_SWAP; } /* dual link dsi for rk3399 */ @@ -961,6 +965,9 @@ static struct device struct dw_mipi_dsi_rockchip *slave; if (of_property_read_bool(dsi->dev->of_node, "rockchip,dual-channel")) { + dsi->data_swap = of_property_read_bool(dsi->dev->of_node, + "rockchip,data-swap"); + slave = dw_mipi_dsi_rockchip_find_by_id(dsi->dev->driver, 1); if (!slave) return ERR_PTR(-EPROBE_DEFER);