From: Daniel Vetter <daniel@ffwll.ch>
To: Lyude <cpaul@redhat.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>,
Jani Nikula <jani.nikula@linux.intel.com>,
David Airlie <airlied@linux.ie>,
intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
linux-kernel@vger.kernel.org,
Benjamin Tissoires <btissoir@redhat.com>,
stable@vger.kernel.org
Subject: Re: [Intel-gfx] [PATCH v2] drm/i915: intel_hpd_init(): Fix suspend/resume reprobing
Date: Wed, 6 Jan 2016 08:27:43 +0100 [thread overview]
Message-ID: <20160106072743.GV8076@phenom.ffwll.local> (raw)
In-Reply-To: <1452028530-9921-1-git-send-email-cpaul@redhat.com>
On Tue, Jan 05, 2016 at 04:15:30PM -0500, Lyude wrote:
> This fixes reprobing of display connectors on resume. After some talking
> with danvet on IRC, I learned that calling drm_helper_hpd_irq_event() does
> actually trigger a full reprobe of each connector's status. It turns out
> this is the actual reason reprobing on resume hasn't been working (this was
> observed on a T440s):
>
> - We call hpd_init()
> - We check each connector for a couple of things before marking
> connector->polled with DRM_CONNECTOR_POLL_HPD, one of which is an
> active encoder. Of course, a disconnected port won't have an
> active encoder, so we don't add the flag to any of the
> connectors.
> - We call drm_helper_hpd_irq_event()
> - drm_helper_irq_event() checks each connector for the
> DRM_CONNECTOR_POLL_HPD flag. The only one that has it is eDP-1,
> so we skip reprobing each connector except for that one.
>
> In addition, we now avoid setting connector->polled to
> DRM_CONNECTOR_POLL_HPD for MST connectors, since their reprobing is handled
> by the mst helpers. This is probably what was originally intended to happen
> here anyway.
>
> Fixes: 0e32b39ceed6 ("drm/i915: add DP 1.2 MST support (v0.7)")
> Cc: stable@vger.kernel.org
> Signed-off-by: Lyude <cpaul@redhat.com>
> ---
> Changes
> * Use the explanation of the issue as the commit message instead
> * Change the title of the commit, since this does more then just stop a check
> for an encoder now
> * Add "Fixes" line for the patch that introduced this regression
> * Don't enable DRM_CONNECTOR_POLL_HPD for mst connectors
For drm/i915 I prefer when the patch changelog is above the s-o-b section,
with v2: v3: ... headings.
>
> drivers/gpu/drm/i915/intel_hotplug.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_hotplug.c b/drivers/gpu/drm/i915/intel_hotplug.c
> index b177857..51ecf0b4 100644
> --- a/drivers/gpu/drm/i915/intel_hotplug.c
> +++ b/drivers/gpu/drm/i915/intel_hotplug.c
> @@ -468,9 +468,9 @@ void intel_hpd_init(struct drm_i915_private *dev_priv)
> list_for_each_entry(connector, &mode_config->connector_list, head) {
> struct intel_connector *intel_connector = to_intel_connector(connector);
> connector->polled = intel_connector->polled;
> - if (connector->encoder && !connector->polled && I915_HAS_HOTPLUG(dev) && intel_connector->encoder->hpd_pin > HPD_NONE)
> - connector->polled = DRM_CONNECTOR_POLL_HPD;
> - if (intel_connector->mst_port)
> + if (!connector->polled && !intel_connector->mst_port &&
> + I915_HAS_HOTPLUG(dev) &&
> + intel_connector->encoder->hpd_pin > HPD_NONE)
> connector->polled = DRM_CONNECTOR_POLL_HPD;
Hm, on 2nd thought we could clarify this further like this:
list_for_each_entry(...) {
...
/* MST has a dynamic intel_connector->encoder and it's
* reprobing is all handled by the MST helpers. */
if (intel_connector->mst_port)
continue;
if (!connector->polled && I915_HAS_HOTPLUG(dev) &&
intel_connector->encoder->hpd_pin > HPD_NONE)
connector->polled = DRM_CONNECTOR_POLL_HPD;
}
That yields even tidier code and gives us a place for a comment. Can you
pls respin once more?
Thanks, Daniel
> }
>
> --
> 2.5.0
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
next prev parent reply other threads:[~2016-01-06 7:27 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-05 19:53 [PATCH] drm/i915: intel_hpd_init(): Don't check connectors for an encoder Lyude
2016-01-05 19:53 ` Lyude
2016-01-05 20:05 ` [Intel-gfx] " Daniel Vetter
2016-01-05 20:05 ` Daniel Vetter
2016-01-05 20:09 ` Daniel Vetter
2016-01-05 20:09 ` [Intel-gfx] " Daniel Vetter
2016-01-05 21:15 ` [PATCH v2] drm/i915: intel_hpd_init(): Fix suspend/resume reprobing Lyude
2016-01-05 21:15 ` Lyude
2016-01-06 7:27 ` Daniel Vetter [this message]
2016-01-07 15:43 ` [PATCH v3] " Lyude
2016-01-07 15:43 ` Lyude
2016-01-07 16:10 ` Daniel Vetter
2016-01-07 16:10 ` [Intel-gfx] " Daniel Vetter
2020-01-17 1:33 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for " Patchwork
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=20160106072743.GV8076@phenom.ffwll.local \
--to=daniel@ffwll.ch \
--cc=airlied@linux.ie \
--cc=btissoir@redhat.com \
--cc=cpaul@redhat.com \
--cc=daniel.vetter@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.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.