diff mbox

drm/i915: Set value of fake mst encoder's hpd pin

Message ID 1497490690-11281-1-git-send-email-ethan.hsieh@canonical.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ethan Hsieh June 15, 2017, 1:38 a.m. UTC
We receive hotplug event, but do not handle it. Set value of fake mst
encoder's hpd pin to handle hotplug event.

Before applying the patch:
[   36.595058] [drm:intel_get_hpd_pins [i915]] hotplug event received, stat 0x00200000, dig 0x10101012, pins 0x00000020
[   36.595172] [drm:i915_hotplug_work_func [i915]] running encoder hotplug functions

After applying the patch:
[   29.807410] [drm:intel_get_hpd_pins [i915]] hotplug event received, stat 0x00200000, dig 0x10101012, pins 0x00000020
[   29.807524] [drm:i915_hotplug_work_func [i915]] running encoder hotplug functions
[   30.086098] [drm:i915_hotplug_work_func [i915]] Connector DP-4 (pin 5) received hotplug event.
[   30.086123] [drm:i915_hotplug_work_func [i915]] [CONNECTOR:74:DP-4] status updated from connected to disconnected
[   30.086181] [drm:intel_dp_destroy_mst_connector [i915]]
[   30.087752] [drm:drm_helper_probe_single_connector_modes [drm_kms_helper]] [CONNECTOR:74:DP-4] disconnected
[   30.091979] [drm:drm_mode_setcrtc [drm]] [CRTC:39:pipe B]

Signed-off-by: Ethan Hsieh <ethan.hsieh@canonical.com>
---
 drivers/gpu/drm/i915/intel_dp_mst.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Ville Syrjala June 15, 2017, 10:27 a.m. UTC | #1
On Thu, Jun 15, 2017 at 09:38:10AM +0800, Ethan Hsieh wrote:
> We receive hotplug event, but do not handle it. Set value of fake mst
> encoder's hpd pin to handle hotplug event.

We're not supposed to handle it like that. The HPD is for the main encoder,
the MST hotplug handling comes via the topology manager.

> 
> Before applying the patch:
> [   36.595058] [drm:intel_get_hpd_pins [i915]] hotplug event received, stat 0x00200000, dig 0x10101012, pins 0x00000020
> [   36.595172] [drm:i915_hotplug_work_func [i915]] running encoder hotplug functions
> 
> After applying the patch:
> [   29.807410] [drm:intel_get_hpd_pins [i915]] hotplug event received, stat 0x00200000, dig 0x10101012, pins 0x00000020
> [   29.807524] [drm:i915_hotplug_work_func [i915]] running encoder hotplug functions
> [   30.086098] [drm:i915_hotplug_work_func [i915]] Connector DP-4 (pin 5) received hotplug event.
> [   30.086123] [drm:i915_hotplug_work_func [i915]] [CONNECTOR:74:DP-4] status updated from connected to disconnected
> [   30.086181] [drm:intel_dp_destroy_mst_connector [i915]]
> [   30.087752] [drm:drm_helper_probe_single_connector_modes [drm_kms_helper]] [CONNECTOR:74:DP-4] disconnected
> [   30.091979] [drm:drm_mode_setcrtc [drm]] [CRTC:39:pipe B]
> 
> Signed-off-by: Ethan Hsieh <ethan.hsieh@canonical.com>
> ---
>  drivers/gpu/drm/i915/intel_dp_mst.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
> index 3715386..2ef9f18 100644
> --- a/drivers/gpu/drm/i915/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/intel_dp_mst.c
> @@ -563,6 +563,7 @@ intel_dp_create_fake_mst_encoder(struct intel_digital_port *intel_dig_port, enum
>  	intel_encoder->type = INTEL_OUTPUT_DP_MST;
>  	intel_encoder->power_domain = intel_dig_port->base.power_domain;
>  	intel_encoder->port = intel_dig_port->port;
> +	intel_encoder->hpd_pin = intel_dig_port->base.hpd_pin;
>  	intel_encoder->crtc_mask = 0x7;
>  	intel_encoder->cloneable = 0;
>  
> -- 
> 2.7.4
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
index 3715386..2ef9f18 100644
--- a/drivers/gpu/drm/i915/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/intel_dp_mst.c
@@ -563,6 +563,7 @@  intel_dp_create_fake_mst_encoder(struct intel_digital_port *intel_dig_port, enum
 	intel_encoder->type = INTEL_OUTPUT_DP_MST;
 	intel_encoder->power_domain = intel_dig_port->base.power_domain;
 	intel_encoder->port = intel_dig_port->port;
+	intel_encoder->hpd_pin = intel_dig_port->base.hpd_pin;
 	intel_encoder->crtc_mask = 0x7;
 	intel_encoder->cloneable = 0;