All of lore.kernel.org
 help / color / mirror / Atom feed
From: Manasi Navare <manasi.d.navare@intel.com>
To: intel-gfx@lists.freedesktop.org
Cc: dri-devel@lists.freedesktop.org, daniel.vetter@intel.com
Subject: [PATCH RFC 6/8] drm/i915: Define the modeset retry work function
Date: Wed, 19 Oct 2016 14:46:22 -0700	[thread overview]
Message-ID: <1476913584-16948-7-git-send-email-manasi.d.navare@intel.com> (raw)
In-Reply-To: <1476913584-16948-1-git-send-email-manasi.d.navare@intel.com>

This work function gets scheduled on link training failure
during the atomic commit of modeset. It should get executed
after the current modeset is completed and send a hotplug uevent
to notify the usersapce about change in the connector link property
requesting link_train_retry

Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
Signed-off-by: Manasi Navare <manasi.d.navare@intel.com>
---
 drivers/gpu/drm/i915/intel_dp.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index a60bef8..aae7f82 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -5675,6 +5675,22 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
 	return false;
 }
 
+static void intel_dp_modeset_retry_work_fn(struct work_struct *work)
+{
+	struct drm_connector *connector;
+
+	connector = container_of(work, typeof(*connector),
+				 i915_modeset_retry_work);
+
+	/* Grab the locks before changing connector property*/
+	mutex_lock(&connector->dev->mode_config.mutex);
+	DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n", connector->base.id,
+		      connector->name);
+	connector->link_train_retry = true;
+	mutex_unlock(&connector->dev->mode_config.mutex);
+	drm_kms_helper_hotplug_event(connector->dev);
+}
+
 bool
 intel_dp_init_connector(struct intel_digital_port *intel_dig_port,
 			struct intel_connector *intel_connector)
@@ -5687,6 +5703,10 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
 	enum port port = intel_dig_port->port;
 	int type;
 
+	/* Initialize the work for modeset in case of link train failure */
+	INIT_WORK(&connector->i915_modeset_retry_work,
+		  intel_dp_modeset_retry_work_fn);
+
 	if (WARN(intel_dig_port->max_lanes < 1,
 		 "Not enough lanes (%d) for DP on port %c\n",
 		 intel_dig_port->max_lanes, port_name(port)))
-- 
1.9.1

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

  parent reply	other threads:[~2016-10-19 21:46 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-19 21:46 [PATCH RFC 0/8] Hotplug Uevent on Link training failure on DP Manasi Navare
2016-10-19 21:46 ` [PATCH RFC 1/8] drm: Add a link_train_retry field to drm_connector Manasi Navare
2016-10-19 21:46 ` [PATCH RFC 2/8] drm: Define a work struct for scheduling a uevent for modeset retry Manasi Navare
2016-10-19 23:52   ` Pandiyan, Dhinakaran
2016-10-19 21:46 ` [PATCH RFC 3/8] drm: Trigger a complete modeset if link_train_retry is set Manasi Navare
2016-10-19 21:46 ` [PATCH RFC 4/8] drm/i915: Change the placement of some static functions in intel_dp.c Manasi Navare
2016-10-19 21:46 ` [PATCH RFC 5/8] drm/i915; Add a function to return index of link rate Manasi Navare
2016-10-19 21:46 ` Manasi Navare [this message]
2016-10-19 21:46 ` [PATCH RFC 7/8] drm/i915: Link Rate fallback on Link training failure Manasi Navare
2016-10-19 21:46 ` [PATCH RFC 8/8] drm/i915: Add support for DP link training compliance Manasi Navare
2016-10-19 22:24 ` ✗ Fi.CI.BAT: failure for Hotplug Uevent on Link training failure on DP 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=1476913584-16948-7-git-send-email-manasi.d.navare@intel.com \
    --to=manasi.d.navare@intel.com \
    --cc=daniel.vetter@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --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.