From 130d976f448fb353279c450818f32d415b725816 Mon Sep 17 00:00:00 2001 From: Wyon Bi Date: Tue, 3 May 2022 07:20:39 +0000 Subject: [PATCH] drm/rockchip: dw-dp: Support force hpd Signed-off-by: Wyon Bi Change-Id: Iaa4bcb049ae1634b26f1f1ad232fbd574d870b2e --- drivers/gpu/drm/rockchip/dw-dp.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/rockchip/dw-dp.c b/drivers/gpu/drm/rockchip/dw-dp.c index a9ac849b57db..dda5026b80a3 100644 --- a/drivers/gpu/drm/rockchip/dw-dp.c +++ b/drivers/gpu/drm/rockchip/dw-dp.c @@ -273,6 +273,7 @@ struct dw_dp { int id; struct work_struct hpd_work; struct gpio_desc *hpd_gpio; + bool force_hpd; struct dw_dp_hotplug hotplug; struct mutex irq_lock; struct extcon_dev *extcon; @@ -1734,7 +1735,7 @@ static void dw_dp_hpd_init(struct dw_dp *dp) { dp->hotplug.status = dw_dp_detect(dp); - if (dp->hpd_gpio) { + if (dp->hpd_gpio || dp->force_hpd) { regmap_update_bits(dp->regmap, DPTX_CCTL, FORCE_HPD, FIELD_PREP(FORCE_HPD, 1)); return; @@ -3124,6 +3125,8 @@ static int dw_dp_probe(struct platform_device *pdev) platform_set_drvdata(pdev, dp); + dp->force_hpd = device_property_read_bool(dev, "force-hpd"); + if (device_property_read_bool(dev, "split-mode")) { struct dw_dp *secondary = dw_dp_find_by_id(dev->driver, !dp->id);