From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 3/5] drm/i915/dp: Remove intel_dp->detect_done flag
Date: Wed, 19 Sep 2018 20:28:23 +0300 [thread overview]
Message-ID: <20180919172823.GJ5565@intel.com> (raw)
In-Reply-To: <20180918072009.4836-3-dhinakaran.pandiyan@intel.com>
On Tue, Sep 18, 2018 at 12:20:07AM -0700, Dhinakaran Pandiyan wrote:
> The intel_dp->detect_done flag is no more useful. Pull
> intel_dp_long_pulse() into the lone caller,
>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> ---
> drivers/gpu/drm/i915/intel_dp.c | 63 +++++++++++++---------------------------
> drivers/gpu/drm/i915/intel_drv.h | 1 -
> 2 files changed, 20 insertions(+), 44 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 8bf9afa5683c..d06bf4303814 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -5012,13 +5012,25 @@ intel_dp_unset_edid(struct intel_dp *intel_dp)
> }
>
> static int
> -intel_dp_long_pulse(struct intel_connector *connector,
> - struct drm_modeset_acquire_ctx *ctx)
> +intel_dp_detect(struct drm_connector *connector,
> + struct drm_modeset_acquire_ctx *ctx,
> + bool force)
> {
> - struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> - struct intel_dp *intel_dp = intel_attached_dp(&connector->base);
> - enum drm_connector_status status;
> + struct drm_i915_private *dev_priv = to_i915(connector->dev);
> + struct intel_dp *intel_dp = intel_attached_dp(connector);
> + int status;
> u8 sink_irq_vector = 0;
> + struct drm_crtc *crtc;
> +
> + DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n",
> + connector->base.id, connector->name);
> +
> + crtc = connector->state->crtc;
> + if (crtc) {
> + status = drm_modeset_lock(&crtc->mutex, ctx);
The 'status' name looks a bit weird here. I'm leaning towards keeping
the 'int ret' for this case.
Hmm. Actually, why are we even taking this lock here anyway? I would
imagine we only need it for the link retraining and
intel_dp_retrain_link() already grabs it so we should be able to
just drop this code. Would allow page flips and detect to execute
in parallel again.
> + if (status)
> + return status;
> + }
>
> WARN_ON(!drm_modeset_is_locked(&dev_priv->drm.mode_config.connection_mutex));
>
> @@ -5093,9 +5105,9 @@ intel_dp_long_pulse(struct intel_connector *connector,
> intel_dp->aux.i2c_defer_count = 0;
>
> intel_dp_set_edid(intel_dp);
> - if (intel_dp_is_edp(intel_dp) || connector->detect_edid)
> + if (intel_dp_is_edp(intel_dp) ||
> + to_intel_connector(connector)->detect_edid)
> status = connector_status_connected;
> - intel_dp->detect_done = true;
>
> /* Try to read the source of the interrupt */
> if (intel_dp->dpcd[DP_DPCD_REV] >= 0x11 &&
> @@ -5120,37 +5132,6 @@ intel_dp_long_pulse(struct intel_connector *connector,
> return status;
> }
>
> -static int
> -intel_dp_detect(struct drm_connector *connector,
> - struct drm_modeset_acquire_ctx *ctx,
> - bool force)
> -{
> - struct intel_dp *intel_dp = intel_attached_dp(connector);
> - int status = connector->status;
> -
> - DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n",
> - connector->base.id, connector->name);
> -
> - /* If full detect is not performed yet, do a full detect */
> - if (!intel_dp->detect_done) {
> - struct drm_crtc *crtc;
> - int ret;
> -
> - crtc = connector->state->crtc;
> - if (crtc) {
> - ret = drm_modeset_lock(&crtc->mutex, ctx);
> - if (ret)
> - return ret;
> - }
> -
> - status = intel_dp_long_pulse(intel_dp->attached_connector, ctx);
> - }
> -
> - intel_dp->detect_done = false;
> -
> - return status;
> -}
> -
> static void
> intel_dp_force(struct drm_connector *connector)
> {
> @@ -5643,7 +5624,6 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd)
>
> if (long_hpd) {
> intel_dp->reset_link_params = true;
> - intel_dp->detect_done = false;
> return IRQ_NONE;
> }
>
> @@ -5660,7 +5640,6 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd)
> intel_dp->is_mst = false;
> drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst_mgr,
> intel_dp->is_mst);
> - intel_dp->detect_done = false;
> goto put_power;
> }
> }
> @@ -5673,10 +5652,8 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd)
> /* Short pulse can signify loss of hdcp authentication */
> intel_hdcp_check_link(intel_dp->attached_connector);
>
> - if (!handled) {
> - intel_dp->detect_done = false;
> + if (!handled)
> goto put_power;
> - }
> }
>
> ret = IRQ_HANDLED;
> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> index bf1c38728a59..c7206a4764e5 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -1070,7 +1070,6 @@ struct intel_dp {
> bool link_mst;
> bool link_trained;
> bool has_audio;
> - bool detect_done;
> bool reset_link_params;
> enum aux_ch aux_ch;
> uint8_t dpcd[DP_RECEIVER_CAP_SIZE];
> --
> 2.14.1
--
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2018-09-19 17:28 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-18 7:20 [PATCH 1/5] drm/i915/dp: Fix link retraining comment in intel_dp_long_pulse() Dhinakaran Pandiyan
2018-09-18 7:20 ` [PATCH 2/5] drm/i915/dp: Restrict link retrain workaround to external monitors Dhinakaran Pandiyan
2018-09-18 15:33 ` Lyude Paul
2018-09-18 15:50 ` Rodrigo Vivi
2018-09-19 17:58 ` Pandiyan, Dhinakaran
2018-09-19 18:28 ` Lyude Paul
2018-09-18 7:20 ` [PATCH 3/5] drm/i915/dp: Remove intel_dp->detect_done flag Dhinakaran Pandiyan
2018-09-19 17:28 ` Ville Syrjälä [this message]
2018-09-19 17:43 ` Pandiyan, Dhinakaran
2018-09-18 7:20 ` [PATCH 4/5] drm/i915/dp: Fix duplication of DEVICE_SERVICE_IRQ handling Dhinakaran Pandiyan
2018-09-18 7:20 ` [PATCH 5/5] drm/i915/dp: Move hdcp link check function into short pulse handler Dhinakaran Pandiyan
2018-09-19 17:30 ` Ville Syrjälä
2018-09-19 17:49 ` Pandiyan, Dhinakaran
2018-09-19 18:05 ` Ville Syrjälä
2018-09-21 19:06 ` Dhinakaran Pandiyan
2018-09-22 23:08 ` Pandiyan, Dhinakaran
2018-09-18 7:39 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/5] drm/i915/dp: Fix link retraining comment in intel_dp_long_pulse() Patchwork
2018-09-18 7:55 ` ✗ Fi.CI.BAT: failure " Patchwork
2018-09-18 15:51 ` [PATCH 1/5] " Rodrigo Vivi
2018-09-18 19:03 ` Pandiyan, Dhinakaran
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=20180919172823.GJ5565@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=dhinakaran.pandiyan@intel.com \
--cc=intel-gfx@lists.freedesktop.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.