Re: [Intel-gfx] [PATCH] drm/i915: enhance legacy HPD disconnection flow for 4K pipe compute in GLK

2021-02-19 Thread Ville Syrjälä
On Fri, Feb 19, 2021 at 02:25:39PM +0800, Gary C Wang wrote:
> HDMI PHY is not available to use when its HDMI disaply plug-in, and power-off
> then power-on as soon as getting a hotplug. In above cases where there's a 
> HDMI
> connector physically connected but it can't be used by GLK with 4K pipe then 
> blank
> screen (lacking of edid-update & mode-probing) then need return false, since 
> the
> rest of the driver should pretty much treat the port as disconnected.

HPD live status has been notoriously unreliable on HDMI,
hence we don't use it. Dunno if we could start to trust it on
GLK.

> 
> As previous result, handshaking through is required around connect and 
> disconnect.
> Otherwise it would be in a inconsistent state as port is disconnected but 
> with a
> valid HDMI type.

Not sure what handshaking you're talking about. HDMI detection
itself only uses GMBUS so it has no relationship to any PHY stuff.

Anyway this looks a bit like duct tape that happens to avoid some
unknown sequence of events that cause a black screen. I suspect
it may have something to do with the scrambling/bit clock ratio
stuff. I'll comment on the bug a bit...

> 
> Also setting it to return HDMI disconnect for any future calls to
> intel_digital_port_connected(), this way we don't need to check if port is 
> marked
> as safe everytime.
> 
> References: https://gitlab.freedesktop.org/drm/intel/-/issues/3092
> Test-steps: setup HDMI 4K@60Hz in GLK then to power monitor off then on to 
> get display
> recovery correctly
> 
> Cc: Gordon Sylin 
> Tested-by: Gary C Wang 
> Reviewed-by: Gordon Sylin 
> Signed-off-by: Gary C Wang 
> ---
>  drivers/gpu/drm/i915/display/intel_hdmi.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c 
> b/drivers/gpu/drm/i915/display/intel_hdmi.c
> index 7f384f259fc8..039cdbfe71a0 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
> @@ -2705,7 +2705,7 @@ intel_hdmi_detect(struct drm_connector *connector, bool 
> force)
>  
>   wakeref = intel_display_power_get(dev_priv, POWER_DOMAIN_GMBUS);
>  
> - if (INTEL_GEN(dev_priv) >= 11 &&
> + if ((INTEL_GEN(dev_priv) >= 11 || IS_GEMINILAKE(dev_priv)) &&
>   !intel_digital_port_connected(encoder))
>   goto out;
>  
> -- 
> 2.17.1

-- 
Ville Syrjälä
Intel
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] drm/i915: enhance legacy HPD disconnection flow for 4K pipe compute in GLK

2021-02-18 Thread Gary C Wang
HDMI PHY is not available to use when its HDMI disaply plug-in, and power-off
then power-on as soon as getting a hotplug. In above cases where there's a HDMI
connector physically connected but it can't be used by GLK with 4K pipe then 
blank
screen (lacking of edid-update & mode-probing) then need return false, since the
rest of the driver should pretty much treat the port as disconnected.

As previous result, handshaking through is required around connect and 
disconnect.
Otherwise it would be in a inconsistent state as port is disconnected but with a
valid HDMI type.

Also setting it to return HDMI disconnect for any future calls to
intel_digital_port_connected(), this way we don't need to check if port is 
marked
as safe everytime.

References: https://gitlab.freedesktop.org/drm/intel/-/issues/3092
Test-steps: setup HDMI 4K@60Hz in GLK then to power monitor off then on to get 
display
recovery correctly

Tested-by: Gary C Wang 
Reviewed-by: Gordon Sylin 
Signed-off-by: Gary C Wang 
---
 drivers/gpu/drm/i915/display/intel_hdmi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c 
b/drivers/gpu/drm/i915/display/intel_hdmi.c
index 7f384f259fc8..039cdbfe71a0 100644
--- a/drivers/gpu/drm/i915/display/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
@@ -2705,7 +2705,7 @@ intel_hdmi_detect(struct drm_connector *connector, bool 
force)
 
wakeref = intel_display_power_get(dev_priv, POWER_DOMAIN_GMBUS);
 
-   if (INTEL_GEN(dev_priv) >= 11 &&
+   if ((INTEL_GEN(dev_priv) >= 11 || IS_GEMINILAKE(dev_priv)) &&
!intel_digital_port_connected(encoder))
goto out;
 
-- 
2.17.1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx