Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/hisilicon/hibmc: fix dp and vga cannot show together

If VGA and DP connected together, there will be only one can get crtc.
Add encoder possible_clones to support two connectors enable.

Fixes: 3c7623fb5bb6 ("drm/hisilicon/hibmc: Enable this hot plug detect of irq feature")
Signed-off-by: Baihan Li <libaihan@huawei.com>
Signed-off-by: Yongbang Shi <shiyongbang@huawei.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250813094238.3722345-8-shiyongbang@huawei.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>

authored by

Baihan Li and committed by
Dmitry Baryshkov
3271faf4 9f98b429

+8
+8
drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
··· 115 115 static int hibmc_kms_init(struct hibmc_drm_private *priv) 116 116 { 117 117 struct drm_device *dev = &priv->dev; 118 + struct drm_encoder *encoder; 119 + u32 clone_mask = 0; 118 120 int ret; 119 121 120 122 ret = drmm_mode_config_init(dev); ··· 155 153 drm_err(dev, "failed to init vdac: %d\n", ret); 156 154 return ret; 157 155 } 156 + 157 + drm_for_each_encoder(encoder, dev) 158 + clone_mask |= drm_encoder_mask(encoder); 159 + 160 + drm_for_each_encoder(encoder, dev) 161 + encoder->possible_clones = clone_mask; 158 162 159 163 return 0; 160 164 }