diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c index 4ac3a764a8b3..2e093f975ff6 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c @@ -44,6 +44,8 @@ #include #include #include +#include +#include #include #include #include @@ -113,6 +115,10 @@ #define HDMI_14_MAX_TMDS_CLK (340 * 1000 * 1000) +/* bit field to force hotplug detection. bit0 = HDMI0 */ +static int force_hotplug; +module_param(force_hotplug, int, 0644); + static bool vc4_hdmi_supports_scrambling(struct vc4_hdmi *vc4_hdmi) { struct drm_display_info *display = &vc4_hdmi->connector.display_info; @@ -423,7 +429,9 @@ static int vc4_hdmi_connector_detect_ctx(struct drm_connector *connector, return connector_status_unknown; } - if (vc4_hdmi->hpd_gpio) { + if (force_hotplug & BIT(vc4_hdmi->encoder.type - VC4_ENCODER_TYPE_HDMI0)) + status = connector_status_connected; + else if (vc4_hdmi->hpd_gpio) { if (gpiod_get_value_cansleep(vc4_hdmi->hpd_gpio)) status = connector_status_connected; } else {