From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH 05/11] drm/i915: get runtime PM while trying to detect CRT Date: Mon, 24 Feb 2014 13:33:00 +0200 Message-ID: <1393241580.13131.28.camel@intelbox> References: <1393001548-2883-1-git-send-email-przanoni@gmail.com> <1393001548-2883-6-git-send-email-przanoni@gmail.com> Reply-To: imre.deak@intel.com Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1317532844==" Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 8A9DCFA9DA for ; Mon, 24 Feb 2014 03:33:19 -0800 (PST) In-Reply-To: <1393001548-2883-6-git-send-email-przanoni@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: Paulo Zanoni Cc: intel-gfx@lists.freedesktop.org, Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org --===============1317532844== Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="=-1On8lOiUCcc6/5CuS+UR" --=-1On8lOiUCcc6/5CuS+UR Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, 2014-02-21 at 13:52 -0300, Paulo Zanoni wrote: > From: Paulo Zanoni >=20 > Otherwise we'll read registers that return 0xffffffff, trigger some > WARNs, think CRT is actually connected (because certain bits are 1), > and fail the drm-resources-equal testcase! >=20 > Tested on a SNB machine with runtime PM support (which is not upstream > yet, but is already on my public tree at freedesktop.org, and will > hopefully eventually become upstream). >=20 > Testcase: igt/pm_pc8/drm-resources-equal > Signed-off-by: Paulo Zanoni > --- > drivers/gpu/drm/i915/intel_crt.c | 26 +++++++++++++++++++------- > 1 file changed, 19 insertions(+), 7 deletions(-) >=20 > diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/inte= l_crt.c > index 9864aa1..4c1230c 100644 > --- a/drivers/gpu/drm/i915/intel_crt.c > +++ b/drivers/gpu/drm/i915/intel_crt.c > @@ -630,10 +630,13 @@ static enum drm_connector_status > intel_crt_detect(struct drm_connector *connector, bool force) > { > struct drm_device *dev =3D connector->dev; > + struct drm_i915_private *dev_priv =3D dev->dev_private; > struct intel_crt *crt =3D intel_attached_crt(connector); > enum drm_connector_status status; > struct intel_load_detect_pipe tmp; > =20 > + intel_runtime_pm_get(dev_priv); > + > DRM_DEBUG_KMS("[CONNECTOR:%d:%s] force=3D%d\n", > connector->base.id, drm_get_connector_name(connector), > force); > @@ -645,23 +648,30 @@ intel_crt_detect(struct drm_connector *connector, b= ool force) > */ > if (intel_crt_detect_hotplug(connector)) { > DRM_DEBUG_KMS("CRT detected via hotplug\n"); > - return connector_status_connected; > + status =3D connector_status_connected; > + goto out; > } else > DRM_DEBUG_KMS("CRT not detected via hotplug\n"); > } > =20 > - if (intel_crt_detect_ddc(connector)) > - return connector_status_connected; > + if (intel_crt_detect_ddc(connector)) { > + status =3D connector_status_connected; > + goto out; > + } > =20 > /* Load detection is broken on HPD capable machines. Whoever wants a > * broken monitor (without edid) to work behind a broken kvm (that fail= s > * to have the right resistors for HP detection) needs to fix this up. > * For now just bail out. */ > - if (I915_HAS_HOTPLUG(dev)) > - return connector_status_disconnected; > + if (I915_HAS_HOTPLUG(dev)) { > + status =3D connector_status_disconnected; > + goto out; > + } > =20 > - if (!force) > - return connector->status; > + if (!force) { > + status =3D connector->status; > + goto out; > + } > =20 > /* for pre-945g platforms use load detect */ > if (intel_get_load_detect_pipe(connector, NULL, &tmp)) { > @@ -673,6 +683,8 @@ intel_crt_detect(struct drm_connector *connector, boo= l force) > } else > status =3D connector_status_unknown; > =20 > +out: > + intel_runtime_pm_put(dev_priv); > return status; > } Similarly to 04/11, this should be part of a power domain get/put for a new CRT power domain I added in the VLV power domain support patches. On top of those to solve this issue we'd also need to add an enable/disable handler for the HSW always-on power well, which would only do a hsw_disable_package_c8()/hsw_enable_package_c8(). --Imre --=-1On8lOiUCcc6/5CuS+UR Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.14 (GNU/Linux) iQEcBAABAgAGBQJTCy3sAAoJEORIIAnNuWDFDUgH/0JYOUwu+1yBlbanYYsIz3Nk bs5/KftvbCTHwFeTdi0QI1kcyJKbKmxrVKW9ECU5PX64/4soe9o0TLpjOtgGB0gz TJzu/7tiZGbge7MHB6bJr7R/dSWiL3zheuVakPeXBDeNaiAIaxyOJ0J4EY1lb27Q JlH2BVTisCMs/pRZ4eUPhjKeMnuP31tHUI6u1sm81eO9tYw1EwUwx1JYqzG/R/EL 8cQGNjYq36l0iCZ84CkCoWMn4ql2T7ACtGrCHR+23uCcNQBcYuIQZWwMlEtPBUyT j2+JJjoByfVKO4RgWT2itlWzOwz53qAbDx6r0nx7QZC5i/s0bF85ztAAzBRLyoU= =y/6Q -----END PGP SIGNATURE----- --=-1On8lOiUCcc6/5CuS+UR-- --===============1317532844== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx --===============1317532844==--