summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/mediatek/mtk_drm_drv.h
diff options
context:
space:
mode:
authorJason-JH.Lin <jason-jh.lin@mediatek.com>2023-10-04 10:40:09 +0800
committerChun-Kuang Hu <chunkuang.hu@kernel.org>2023-10-08 00:57:21 +0000
commit01389b324c97ff8f04e9c33b9ee246084f9f6dd2 (patch)
treed9c7447b5de5026d5642e806d29d72e2562cf37e /drivers/gpu/drm/mediatek/mtk_drm_drv.h
parenta260f5624dfc6ec3eb7b5349f51d34c687c07b5c (diff)
downloadlinux-stable-01389b324c97ff8f04e9c33b9ee246084f9f6dd2.tar.gz
linux-stable-01389b324c97ff8f04e9c33b9ee246084f9f6dd2.tar.bz2
linux-stable-01389b324c97ff8f04e9c33b9ee246084f9f6dd2.zip
drm/mediatek: Add connector dynamic selection capability
Add dynamic select available connector flow in mtk_drm_crtc_create() and mtk_drm_crtc_atomic_enable(). In mtk_drm_crtc_create(), if there is a connector routes array in drm driver data, all components definded in the connector routes array will be checked and their encoder_index will be set. In mtk_drm_crtc_atomic_enable(), crtc will check its encoder_index to identify which componet in the connector routes array should append. Signed-off-by: Jason-JH.Lin <jason-jh.lin@mediatek.com> Signed-off-by: Nancy Lin <nancy.lin@mediatek.com> Signed-off-by: Nathan Lu <nathan.lu@mediatek.com> Tested-by: Fei Shao <fshao@chromium.org> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Reviewed-by: CK Hu <ck.hu@mediatek.com> Link: https://patchwork.kernel.org/project/dri-devel/patch/20231004024013.18956-6-jason-jh.lin@mediatek.com/ Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
Diffstat (limited to 'drivers/gpu/drm/mediatek/mtk_drm_drv.h')
-rw-r--r--drivers/gpu/drm/mediatek/mtk_drm_drv.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.h b/drivers/gpu/drm/mediatek/mtk_drm_drv.h
index f4de8bb27685..6f98fff4f1a4 100644
--- a/drivers/gpu/drm/mediatek/mtk_drm_drv.h
+++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.h
@@ -28,6 +28,11 @@ struct drm_fb_helper;
struct drm_property;
struct regmap;
+struct mtk_drm_route {
+ const unsigned int crtc_id;
+ const unsigned int route_ddp;
+};
+
struct mtk_mmsys_driver_data {
const unsigned int *main_path;
unsigned int main_len;
@@ -35,6 +40,8 @@ struct mtk_mmsys_driver_data {
unsigned int ext_len;
const unsigned int *third_path;
unsigned int third_len;
+ const struct mtk_drm_route *conn_routes;
+ unsigned int num_conn_routes;
bool shadow_register;
unsigned int mmsys_id;