From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH 04/16] drm/i915: remove dev_priv->pc8.requirements_met Date: Wed, 19 Mar 2014 17:14:52 +0200 Message-ID: <1395242092.1887.8.camel@intelbox> References: <1394233699-3741-1-git-send-email-przanoni@gmail.com> <1394233699-3741-5-git-send-email-przanoni@gmail.com> Reply-To: imre.deak@intel.com Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1355061118==" Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id A716A90038 for ; Wed, 19 Mar 2014 08:16:47 -0700 (PDT) In-Reply-To: <1394233699-3741-5-git-send-email-przanoni@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Paulo Zanoni Cc: intel-gfx@lists.freedesktop.org, Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org --===============1355061118== Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="=-c2g/O1RZfQk9fVvehZST" --=-c2g/O1RZfQk9fVvehZST Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, 2014-03-07 at 20:08 -0300, Paulo Zanoni wrote: > From: Paulo Zanoni >=20 > The requirements_met variable was used to track two things: enabled > CRTCs and the power well. After the latest chagnes, we get a runtime > PM reference whenever we get any of the power domains, and we get > power domains when we enable CRTCs or the power well, so we should > already be covered, not needing this specific tracking. >=20 > v2: - Rebase. > v3: - Rebase. >=20 > Signed-off-by: Paulo Zanoni Reviewed-by: Imre Deak > --- > drivers/gpu/drm/i915/i915_debugfs.c | 2 -- > drivers/gpu/drm/i915/i915_drv.h | 1 - > drivers/gpu/drm/i915/intel_display.c | 54 ------------------------------= ------ > drivers/gpu/drm/i915/intel_pm.c | 5 ++-- > 4 files changed, 3 insertions(+), 59 deletions(-) >=20 > diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i= 915_debugfs.c > index 6ee529e..6f96b8f 100644 > --- a/drivers/gpu/drm/i915/i915_debugfs.c > +++ b/drivers/gpu/drm/i915/i915_debugfs.c > @@ -2013,8 +2013,6 @@ static int i915_pc8_status(struct seq_file *m, void= *unused) > } > =20 > mutex_lock(&dev_priv->pc8.lock); > - seq_printf(m, "Requirements met: %s\n", > - yesno(dev_priv->pc8.requirements_met)); > seq_printf(m, "GPU idle: %s\n", yesno(!dev_priv->mm.busy)); > seq_printf(m, "Disable count: %d\n", dev_priv->pc8.disable_count); > seq_printf(m, "IRQs disabled: %s\n", > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_= drv.h > index a5f1780..75faa51 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -1386,7 +1386,6 @@ struct ilk_wm_values { > * For more, read "Display Sequences for Package C8" on our documentatio= n. > */ > struct i915_package_c8 { > - bool requirements_met; > bool irqs_disabled; > /* Only true after the delayed work task actually enables it. */ > bool enabled; > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/= intel_display.c > index ab02848..ea9165b 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -6885,63 +6885,9 @@ void hsw_disable_package_c8(struct drm_i915_privat= e *dev_priv) > mutex_unlock(&dev_priv->pc8.lock); > } > =20 > -static bool hsw_can_enable_package_c8(struct drm_i915_private *dev_priv) > -{ > - struct drm_device *dev =3D dev_priv->dev; > - struct intel_crtc *crtc; > - uint32_t val; > - > - list_for_each_entry(crtc, &dev->mode_config.crtc_list, base.head) > - if (crtc->base.enabled) > - return false; > - > - /* This case is still possible since we have the i915.disable_power_wel= l > - * parameter and also the KVMr or something else might be requesting th= e > - * power well. */ > - val =3D I915_READ(HSW_PWR_WELL_DRIVER); > - if (val !=3D 0) { > - DRM_DEBUG_KMS("Not enabling PC8: power well on\n"); > - return false; > - } > - > - return true; > -} > - > -/* Since we're called from modeset_global_resources there's no way to > - * symmetrically increase and decrease the refcount, so we use > - * dev_priv->pc8.requirements_met to track whether we already have the r= efcount > - * or not. > - */ > -static void hsw_update_package_c8(struct drm_device *dev) > -{ > - struct drm_i915_private *dev_priv =3D dev->dev_private; > - bool allow; > - > - if (!HAS_PC8(dev_priv->dev)) > - return; > - > - mutex_lock(&dev_priv->pc8.lock); > - > - allow =3D hsw_can_enable_package_c8(dev_priv); > - > - if (allow =3D=3D dev_priv->pc8.requirements_met) > - goto done; > - > - dev_priv->pc8.requirements_met =3D allow; > - > - if (allow) > - __hsw_enable_package_c8(dev_priv); > - else > - __hsw_disable_package_c8(dev_priv); > - > -done: > - mutex_unlock(&dev_priv->pc8.lock); > -} > - > static void haswell_modeset_global_resources(struct drm_device *dev) > { > modeset_update_crtc_power_domains(dev); > - hsw_update_package_c8(dev); > } > =20 > static int haswell_crtc_mode_set(struct drm_crtc *crtc, > diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel= _pm.c > index 53ac8d0..0c69ee2 100644 > --- a/drivers/gpu/drm/i915/intel_pm.c > +++ b/drivers/gpu/drm/i915/intel_pm.c > @@ -5938,6 +5938,8 @@ void intel_init_runtime_pm(struct drm_i915_private = *dev_priv) > pm_runtime_set_autosuspend_delay(device, 10000); /* 10s */ > pm_runtime_mark_last_busy(device); > pm_runtime_use_autosuspend(device); > + > + pm_runtime_put_autosuspend(device); > } > =20 > void intel_fini_runtime_pm(struct drm_i915_private *dev_priv) > @@ -6161,10 +6163,9 @@ void intel_pm_setup(struct drm_device *dev) > mutex_init(&dev_priv->rps.hw_lock); > =20 > mutex_init(&dev_priv->pc8.lock); > - dev_priv->pc8.requirements_met =3D false; > dev_priv->pc8.irqs_disabled =3D false; > dev_priv->pc8.enabled =3D false; > - dev_priv->pc8.disable_count =3D 1; /* requirements_met */ > + dev_priv->pc8.disable_count =3D 0; > INIT_DELAYED_WORK(&dev_priv->rps.delayed_resume_work, > intel_gen6_powersave_work); > } --=-c2g/O1RZfQk9fVvehZST 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) iQEcBAABAgAGBQJTKbRtAAoJEORIIAnNuWDFutgIAOALHCIqIo5qlSt4uWn3qTp5 a1cTResvSXTFeS093VFSfmpygwOXQ+TUuIsiVY+B+xlQlHmOmZP0pD6badQfQ5c2 v1Hm/UO3jpNSVBExoU+7yMeuGpxBa1oCFt4T2S0BDJGOFSi6c7OoLZ9ai6sa6eDI SY+EVeEgYGnF8FGELKh+u8J/CLwKw1R+pUJEBxltFLiD76QmiSmXxmKzoeukKIFx CEYHOdsugnVsLIjBILqGdqIray0fT1gQTLkG0rlfKQB7f/cbPIYjWPg3enyXBQKd v9k+HAPzJybepJitpPCHXFsKN07br29KbA5lU6m/ht5Zc85yA3PXo9QDXJIv8Bw= =cJil -----END PGP SIGNATURE----- --=-c2g/O1RZfQk9fVvehZST-- --===============1355061118== 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 --===============1355061118==--