All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alex Deucher <alexdeucher-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: "Michel Dänzer" <michel-otUistvHUpPR7s880joybQ@public.gmane.org>
Cc: amd-gfx list <amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org>
Subject: Re: [PATCH] drm/amdgpu/dce: Don't turn off DP sink when disconnected
Date: Fri, 9 Mar 2018 15:26:53 -0500	[thread overview]
Message-ID: <CADnq5_NA2OHe6eeiwou-HNNKNW0yt02_2dy3RUV2ouiDN7GjXw@mail.gmail.com> (raw)
In-Reply-To: <20180309172731.2256-1-michel-otUistvHUpPR7s880joybQ@public.gmane.org>

On Fri, Mar 9, 2018 at 12:27 PM, Michel Dänzer <michel@daenzer.net> wrote:
> From: Michel Dänzer <michel.daenzer@amd.com>
>
> Turning off the sink in this case causes various issues, because
> userspace expects it to stay on until it turns it off explicitly.
>
> Instead, turn the sink off and back on when a display is connected
> again. This dance seems necessary for link training to work correctly.
>
> Bugzilla: https://bugs.freedesktop.org/105308
> Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>

Care to send a similar patch for radeon as well?

Alex

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 31 ++++++++++----------------
>  1 file changed, 12 insertions(+), 19 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
> index ffc1f6f46913..9da8d5802980 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
> @@ -69,25 +69,18 @@ void amdgpu_connector_hotplug(struct drm_connector *connector)
>                 /* don't do anything if sink is not display port, i.e.,
>                  * passive dp->(dvi|hdmi) adaptor
>                  */
> -               if (dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) {
> -                       int saved_dpms = connector->dpms;
> -                       /* Only turn off the display if it's physically disconnected */
> -                       if (!amdgpu_display_hpd_sense(adev, amdgpu_connector->hpd.hpd)) {
> -                               drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF);
> -                       } else if (amdgpu_atombios_dp_needs_link_train(amdgpu_connector)) {
> -                               /* Don't try to start link training before we
> -                                * have the dpcd */
> -                               if (amdgpu_atombios_dp_get_dpcd(amdgpu_connector))
> -                                       return;
> -
> -                               /* set it to OFF so that drm_helper_connector_dpms()
> -                                * won't return immediately since the current state
> -                                * is ON at this point.
> -                                */
> -                               connector->dpms = DRM_MODE_DPMS_OFF;
> -                               drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON);
> -                       }
> -                       connector->dpms = saved_dpms;
> +               if (dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT &&
> +                   amdgpu_display_hpd_sense(adev, amdgpu_connector->hpd.hpd) &&
> +                   amdgpu_atombios_dp_needs_link_train(amdgpu_connector)) {
> +                       /* Don't start link training before we have the DPCD */
> +                       if (amdgpu_atombios_dp_get_dpcd(amdgpu_connector))
> +                               return;
> +
> +                       /* Turn the connector off and back on immediately, which
> +                        * will trigger link training
> +                        */
> +                       drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF);
> +                       drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON);
>                 }
>         }
>  }
> --
> 2.16.2
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

  parent reply	other threads:[~2018-03-09 20:26 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-09 17:27 [PATCH] drm/amdgpu/dce: Don't turn off DP sink when disconnected Michel Dänzer
     [not found] ` <20180309172731.2256-1-michel-otUistvHUpPR7s880joybQ@public.gmane.org>
2018-03-09 20:26   ` Alex Deucher [this message]
     [not found]     ` <CADnq5_NA2OHe6eeiwou-HNNKNW0yt02_2dy3RUV2ouiDN7GjXw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-03-10 11:07       ` Michel Dänzer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CADnq5_NA2OHe6eeiwou-HNNKNW0yt02_2dy3RUV2ouiDN7GjXw@mail.gmail.com \
    --to=alexdeucher-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
    --cc=amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    --cc=michel-otUistvHUpPR7s880joybQ@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.