From patchwork Wed Aug 25 15:22:30 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rodrigo Vivi X-Patchwork-Id: 12457863 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 594C0C4320A for ; Wed, 25 Aug 2021 15:22:47 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 26DD761052 for ; Wed, 25 Aug 2021 15:22:47 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 26DD761052 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 90F6D6E334; Wed, 25 Aug 2021 15:22:44 +0000 (UTC) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 681526E332 for ; Wed, 25 Aug 2021 15:22:41 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10087"; a="217263642" X-IronPort-AV: E=Sophos;i="5.84,351,1620716400"; d="scan'208";a="217263642" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Aug 2021 08:22:40 -0700 X-IronPort-AV: E=Sophos;i="5.84,351,1620716400"; d="scan'208";a="527366017" Received: from vcheppax-mobl1.gar.corp.intel.com (HELO rdvivi-mobl4.intel.com) ([10.255.37.222]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Aug 2021 08:22:37 -0700 From: Rodrigo Vivi To: intel-gfx@lists.freedesktop.org Cc: Rodrigo Vivi , Imre Deak , Tilak Tangudu Date: Wed, 25 Aug 2021 11:22:30 -0400 Message-Id: <20210825152233.2151037-1-rodrigo.vivi@intel.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 1/4] drm/i915/runtime_pm: Consolidate runtime_pm functions X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" No functional changes. Just revamping the functions with s/dev_priv/i915 and consolidating along with other runtime_pm functions. v2: avoid the extra redirection (Imre) Cc: Imre Deak Cc: Tilak Tangudu Signed-off-by: Rodrigo Vivi Reviewed-by: Imre Deak --- drivers/gpu/drm/i915/i915_drv.c | 145 +----------------------- drivers/gpu/drm/i915/intel_runtime_pm.c | 145 ++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_runtime_pm.h | 2 + 3 files changed, 149 insertions(+), 143 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 59fb4c710c8c..a40b5d806321 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -64,7 +64,6 @@ #include "gem/i915_gem_mman.h" #include "gem/i915_gem_pm.h" #include "gt/intel_gt.h" -#include "gt/intel_gt_pm.h" #include "gt/intel_rc6.h" #include "i915_debugfs.h" @@ -1517,146 +1516,6 @@ static int i915_pm_restore(struct device *kdev) return i915_pm_resume(kdev); } -static int intel_runtime_suspend(struct device *kdev) -{ - struct drm_i915_private *dev_priv = kdev_to_i915(kdev); - struct intel_runtime_pm *rpm = &dev_priv->runtime_pm; - int ret; - - if (drm_WARN_ON_ONCE(&dev_priv->drm, !HAS_RUNTIME_PM(dev_priv))) - return -ENODEV; - - drm_dbg_kms(&dev_priv->drm, "Suspending device\n"); - - disable_rpm_wakeref_asserts(rpm); - - /* - * We are safe here against re-faults, since the fault handler takes - * an RPM reference. - */ - i915_gem_runtime_suspend(dev_priv); - - intel_gt_runtime_suspend(&dev_priv->gt); - - intel_runtime_pm_disable_interrupts(dev_priv); - - intel_uncore_suspend(&dev_priv->uncore); - - intel_display_power_suspend(dev_priv); - - ret = vlv_suspend_complete(dev_priv); - if (ret) { - drm_err(&dev_priv->drm, - "Runtime suspend failed, disabling it (%d)\n", ret); - intel_uncore_runtime_resume(&dev_priv->uncore); - - intel_runtime_pm_enable_interrupts(dev_priv); - - intel_gt_runtime_resume(&dev_priv->gt); - - enable_rpm_wakeref_asserts(rpm); - - return ret; - } - - enable_rpm_wakeref_asserts(rpm); - intel_runtime_pm_driver_release(rpm); - - if (intel_uncore_arm_unclaimed_mmio_detection(&dev_priv->uncore)) - drm_err(&dev_priv->drm, - "Unclaimed access detected prior to suspending\n"); - - rpm->suspended = true; - - /* - * FIXME: We really should find a document that references the arguments - * used below! - */ - if (IS_BROADWELL(dev_priv)) { - /* - * On Broadwell, if we use PCI_D1 the PCH DDI ports will stop - * being detected, and the call we do at intel_runtime_resume() - * won't be able to restore them. Since PCI_D3hot matches the - * actual specification and appears to be working, use it. - */ - intel_opregion_notify_adapter(dev_priv, PCI_D3hot); - } else { - /* - * current versions of firmware which depend on this opregion - * notification have repurposed the D1 definition to mean - * "runtime suspended" vs. what you would normally expect (D3) - * to distinguish it from notifications that might be sent via - * the suspend path. - */ - intel_opregion_notify_adapter(dev_priv, PCI_D1); - } - - assert_forcewakes_inactive(&dev_priv->uncore); - - if (!IS_VALLEYVIEW(dev_priv) && !IS_CHERRYVIEW(dev_priv)) - intel_hpd_poll_enable(dev_priv); - - drm_dbg_kms(&dev_priv->drm, "Device suspended\n"); - return 0; -} - -static int intel_runtime_resume(struct device *kdev) -{ - struct drm_i915_private *dev_priv = kdev_to_i915(kdev); - struct intel_runtime_pm *rpm = &dev_priv->runtime_pm; - int ret; - - if (drm_WARN_ON_ONCE(&dev_priv->drm, !HAS_RUNTIME_PM(dev_priv))) - return -ENODEV; - - drm_dbg_kms(&dev_priv->drm, "Resuming device\n"); - - drm_WARN_ON_ONCE(&dev_priv->drm, atomic_read(&rpm->wakeref_count)); - disable_rpm_wakeref_asserts(rpm); - - intel_opregion_notify_adapter(dev_priv, PCI_D0); - rpm->suspended = false; - if (intel_uncore_unclaimed_mmio(&dev_priv->uncore)) - drm_dbg(&dev_priv->drm, - "Unclaimed access during suspend, bios?\n"); - - intel_display_power_resume(dev_priv); - - ret = vlv_resume_prepare(dev_priv, true); - - intel_uncore_runtime_resume(&dev_priv->uncore); - - intel_runtime_pm_enable_interrupts(dev_priv); - - /* - * No point of rolling back things in case of an error, as the best - * we can do is to hope that things will still work (and disable RPM). - */ - intel_gt_runtime_resume(&dev_priv->gt); - - /* - * On VLV/CHV display interrupts are part of the display - * power well, so hpd is reinitialized from there. For - * everyone else do it here. - */ - if (!IS_VALLEYVIEW(dev_priv) && !IS_CHERRYVIEW(dev_priv)) { - intel_hpd_init(dev_priv); - intel_hpd_poll_disable(dev_priv); - } - - intel_enable_ipc(dev_priv); - - enable_rpm_wakeref_asserts(rpm); - - if (ret) - drm_err(&dev_priv->drm, - "Runtime resume failed, disabling it (%d)\n", ret); - else - drm_dbg_kms(&dev_priv->drm, "Device resumed\n"); - - return ret; -} - const struct dev_pm_ops i915_pm_ops = { /* * S0ix (via system suspend) and S3 event handlers [PMSG_SUSPEND, @@ -1693,8 +1552,8 @@ const struct dev_pm_ops i915_pm_ops = { .restore = i915_pm_restore, /* S0ix (via runtime suspend) event handlers */ - .runtime_suspend = intel_runtime_suspend, - .runtime_resume = intel_runtime_resume, + .runtime_suspend = intel_runtime_pm_suspend, + .runtime_resume = intel_runtime_pm_resume, }; static const struct file_operations i915_driver_fops = { diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c index eaf7688f517d..f28b5bab61b4 100644 --- a/drivers/gpu/drm/i915/intel_runtime_pm.c +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c @@ -32,6 +32,11 @@ #include "i915_drv.h" #include "i915_trace.h" +#include "gt/intel_gt.h" +#include "gt/intel_gt_pm.h" +#include "intel_pm.h" +#include "vlv_suspend.h" +#include "display/intel_hotplug.h" /** * DOC: runtime pm @@ -652,3 +657,143 @@ void intel_runtime_pm_init_early(struct intel_runtime_pm *rpm) init_intel_runtime_pm_wakeref(rpm); } + +int intel_runtime_pm_suspend(struct device *kdev) +{ + struct drm_i915_private *i915 = kdev_to_i915(kdev); + struct intel_runtime_pm *rpm = &i915->runtime_pm; + int ret; + + if (drm_WARN_ON_ONCE(&i915->drm, !HAS_RUNTIME_PM(i915))) + return -ENODEV; + + drm_dbg_kms(&i915->drm, "Suspending device\n"); + + disable_rpm_wakeref_asserts(rpm); + + /* + * We are safe here against re-faults, since the fault handler takes + * an RPM reference. + */ + i915_gem_runtime_suspend(i915); + + intel_gt_runtime_suspend(&i915->gt); + + intel_runtime_pm_disable_interrupts(i915); + + intel_uncore_suspend(&i915->uncore); + + intel_display_power_suspend(i915); + + ret = vlv_suspend_complete(i915); + if (ret) { + drm_err(&i915->drm, + "Runtime suspend failed, disabling it (%d)\n", ret); + intel_uncore_runtime_resume(&i915->uncore); + + intel_runtime_pm_enable_interrupts(i915); + + intel_gt_runtime_resume(&i915->gt); + + enable_rpm_wakeref_asserts(rpm); + + return ret; + } + + enable_rpm_wakeref_asserts(rpm); + intel_runtime_pm_driver_release(rpm); + + if (intel_uncore_arm_unclaimed_mmio_detection(&i915->uncore)) + drm_err(&i915->drm, + "Unclaimed access detected prior to suspending\n"); + + rpm->suspended = true; + + /* + * FIXME: We really should find a document that references the arguments + * used below! + */ + if (IS_BROADWELL(i915)) { + /* + * On Broadwell, if we use PCI_D1 the PCH DDI ports will stop + * being detected, and the call we do at intel_runtime_resume() + * won't be able to restore them. Since PCI_D3hot matches the + * actual specification and appears to be working, use it. + */ + intel_opregion_notify_adapter(i915, PCI_D3hot); + } else { + /* + * current versions of firmware which depend on this opregion + * notification have repurposed the D1 definition to mean + * "runtime suspended" vs. what you would normally expect (D3) + * to distinguish it from notifications that might be sent via + * the suspend path. + */ + intel_opregion_notify_adapter(i915, PCI_D1); + } + + assert_forcewakes_inactive(&i915->uncore); + + if (!IS_VALLEYVIEW(i915) && !IS_CHERRYVIEW(i915)) + intel_hpd_poll_enable(i915); + + drm_dbg_kms(&i915->drm, "Device suspended\n"); + return 0; +} + +int intel_runtime_pm_resume(struct device *kdev) +{ + struct drm_i915_private *i915 = kdev_to_i915(kdev); + struct intel_runtime_pm *rpm = &i915->runtime_pm; + int ret; + + if (drm_WARN_ON_ONCE(&i915->drm, !HAS_RUNTIME_PM(i915))) + return -ENODEV; + + drm_dbg_kms(&i915->drm, "Resuming device\n"); + + drm_WARN_ON_ONCE(&i915->drm, atomic_read(&rpm->wakeref_count)); + disable_rpm_wakeref_asserts(rpm); + + intel_opregion_notify_adapter(i915, PCI_D0); + rpm->suspended = false; + if (intel_uncore_unclaimed_mmio(&i915->uncore)) + drm_dbg(&i915->drm, + "Unclaimed access during suspend, bios?\n"); + + intel_display_power_resume(i915); + + ret = vlv_resume_prepare(i915, true); + + intel_uncore_runtime_resume(&i915->uncore); + + intel_runtime_pm_enable_interrupts(i915); + + /* + * No point of rolling back things in case of an error, as the best + * we can do is to hope that things will still work (and disable RPM). + */ + intel_gt_runtime_resume(&i915->gt); + + /* + * On VLV/CHV display interrupts are part of the display + * power well, so hpd is reinitialized from there. For + * everyone else do it here. + */ + if (!IS_VALLEYVIEW(i915) && !IS_CHERRYVIEW(i915)) { + intel_hpd_init(i915); + intel_hpd_poll_disable(i915); + } + + intel_enable_ipc(i915); + + enable_rpm_wakeref_asserts(rpm); + + if (ret) + drm_err(&i915->drm, + "Runtime resume failed, disabling it (%d)\n", ret); + else + drm_dbg_kms(&i915->drm, "Device resumed\n"); + + return ret; +} diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.h b/drivers/gpu/drm/i915/intel_runtime_pm.h index 47a85fab4130..88ca531165f7 100644 --- a/drivers/gpu/drm/i915/intel_runtime_pm.h +++ b/drivers/gpu/drm/i915/intel_runtime_pm.h @@ -172,6 +172,8 @@ void intel_runtime_pm_init_early(struct intel_runtime_pm *rpm); void intel_runtime_pm_enable(struct intel_runtime_pm *rpm); void intel_runtime_pm_disable(struct intel_runtime_pm *rpm); void intel_runtime_pm_driver_release(struct intel_runtime_pm *rpm); +int intel_runtime_pm_suspend(struct device *kdev); +int intel_runtime_pm_resume(struct device *kdev); intel_wakeref_t intel_runtime_pm_get(struct intel_runtime_pm *rpm); intel_wakeref_t intel_runtime_pm_get_if_in_use(struct intel_runtime_pm *rpm); From patchwork Wed Aug 25 15:22:31 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rodrigo Vivi X-Patchwork-Id: 12457859 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D75E1C4338F for ; Wed, 25 Aug 2021 15:22:45 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 95462610FB for ; Wed, 25 Aug 2021 15:22:45 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 95462610FB Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 08CF36E332; Wed, 25 Aug 2021 15:22:44 +0000 (UTC) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 385706E329 for ; Wed, 25 Aug 2021 15:22:41 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10087"; a="217263643" X-IronPort-AV: E=Sophos;i="5.84,351,1620716400"; d="scan'208";a="217263643" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Aug 2021 08:22:40 -0700 X-IronPort-AV: E=Sophos;i="5.84,351,1620716400"; d="scan'208";a="527366019" Received: from vcheppax-mobl1.gar.corp.intel.com (HELO rdvivi-mobl4.intel.com) ([10.255.37.222]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Aug 2021 08:22:38 -0700 From: Rodrigo Vivi To: intel-gfx@lists.freedesktop.org Cc: Rodrigo Vivi , Tilak Tangudu Date: Wed, 25 Aug 2021 11:22:31 -0400 Message-Id: <20210825152233.2151037-2-rodrigo.vivi@intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210825152233.2151037-1-rodrigo.vivi@intel.com> References: <20210825152233.2151037-1-rodrigo.vivi@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 2/4] drm/i915: Disallow D3Cold. X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" During runtime or s2idle suspend and resume cases on discrete cards, if D3Cold is really achieved, we will blow everything up and freeze the machine because we are not yet handling the pci states properly. On Integrated it simply doesn't matter because D3hot is the maximum that we will get anyway, unless the system is on S3/S4 and our power is cut. Let's put this hammer for now everywhere. So we can work to enable the auto-suspend by default without blowing up the world. Then, this should be removed when we finally fix the D3Cold flow. Cc: Tilak Tangudu Signed-off-by: Rodrigo Vivi Acked-by: Imre Deak --- drivers/gpu/drm/i915/i915_drv.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index a40b5d806321..086a9a475ce8 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -301,6 +301,7 @@ static void sanitize_gpu(struct drm_i915_private *i915) */ static int i915_driver_early_probe(struct drm_i915_private *dev_priv) { + struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev); int ret = 0; if (i915_inject_probe_failure(dev_priv)) @@ -331,6 +332,13 @@ static int i915_driver_early_probe(struct drm_i915_private *dev_priv) if (ret < 0) return ret; + /* + * FIXME: Temporary hammer to avoid freezing the machine on our DGFX + * This should be totally removed when we handle the pci states properly + * on runtime PM and on s2idle cases. + */ + pci_d3cold_disable(pdev); + ret = vlv_suspend_init(dev_priv); if (ret < 0) goto err_workqueues; From patchwork Wed Aug 25 15:22:32 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rodrigo Vivi X-Patchwork-Id: 12457857 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 59AAEC4338F for ; Wed, 25 Aug 2021 15:22:42 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1F1D461052 for ; Wed, 25 Aug 2021 15:22:42 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 1F1D461052 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id AA9896E329; Wed, 25 Aug 2021 15:22:41 +0000 (UTC) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id CF5E16E329 for ; Wed, 25 Aug 2021 15:22:40 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10087"; a="217263644" X-IronPort-AV: E=Sophos;i="5.84,351,1620716400"; d="scan'208";a="217263644" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Aug 2021 08:22:40 -0700 X-IronPort-AV: E=Sophos;i="5.84,351,1620716400"; d="scan'208";a="527366024" Received: from vcheppax-mobl1.gar.corp.intel.com (HELO rdvivi-mobl4.intel.com) ([10.255.37.222]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Aug 2021 08:22:39 -0700 From: Rodrigo Vivi To: intel-gfx@lists.freedesktop.org Cc: Rodrigo Vivi , Daniel Vetter , David Weinehall , Tilak Tangudu , Imre Deak Date: Wed, 25 Aug 2021 11:22:32 -0400 Message-Id: <20210825152233.2151037-3-rodrigo.vivi@intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210825152233.2151037-1-rodrigo.vivi@intel.com> References: <20210825152233.2151037-1-rodrigo.vivi@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 3/4] drm/i915: Enable runtime pm autosuspend by default X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Let's enable runtime pm autosuspend by default everywhere. But at this time let's not touch the autosuspend_delay time, what caused some regression on our previous attempt. Cc: Daniel Vetter Cc: David Weinehall Cc: Tilak Tangudu Cc: Imre Deak Signed-off-by: Rodrigo Vivi Reviewed-by: Anshuman Gupta --- drivers/gpu/drm/i915/intel_runtime_pm.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c index f28b5bab61b4..8f052bd4f58c 100644 --- a/drivers/gpu/drm/i915/intel_runtime_pm.c +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c @@ -605,6 +605,8 @@ void intel_runtime_pm_enable(struct intel_runtime_pm *rpm) pm_runtime_use_autosuspend(kdev); } + pm_runtime_allow(kdev); + /* * The core calls the driver load handler with an RPM reference held. * We drop that here and will reacquire it during unloading in From patchwork Wed Aug 25 15:22:33 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rodrigo Vivi X-Patchwork-Id: 12457861 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 19FFAC432BE for ; Wed, 25 Aug 2021 15:22:44 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D61E3610FB for ; Wed, 25 Aug 2021 15:22:43 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org D61E3610FB Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 74B876E32F; Wed, 25 Aug 2021 15:22:43 +0000 (UTC) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id C40B96E334 for ; Wed, 25 Aug 2021 15:22:41 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10087"; a="217263650" X-IronPort-AV: E=Sophos;i="5.84,351,1620716400"; d="scan'208";a="217263650" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Aug 2021 08:22:41 -0700 X-IronPort-AV: E=Sophos;i="5.84,351,1620716400"; d="scan'208";a="527366030" Received: from vcheppax-mobl1.gar.corp.intel.com (HELO rdvivi-mobl4.intel.com) ([10.255.37.222]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Aug 2021 08:22:40 -0700 From: Rodrigo Vivi To: intel-gfx@lists.freedesktop.org Cc: Rodrigo Vivi , Daniel Vetter , David Weinehall , Tilak Tangudu Date: Wed, 25 Aug 2021 11:22:33 -0400 Message-Id: <20210825152233.2151037-4-rodrigo.vivi@intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210825152233.2151037-1-rodrigo.vivi@intel.com> References: <20210825152233.2151037-1-rodrigo.vivi@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 4/4] drm/i915/runtime_pm: Reduce autosuspend delay to 1s. X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Let's try to be more aggressive on the power savings, but not as much as 0.1s that caused us some regression in the past. Also let's have this in a separated patch so that can be bisected and increased back (or reverted) as needed. Cc: Daniel Vetter Cc: David Weinehall Cc: Tilak Tangudu Signed-off-by: Rodrigo Vivi Reviewed-by: Anshuman Gupta --- drivers/gpu/drm/i915/intel_runtime_pm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c index 8f052bd4f58c..3244ac85d13c 100644 --- a/drivers/gpu/drm/i915/intel_runtime_pm.c +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c @@ -585,7 +585,7 @@ void intel_runtime_pm_enable(struct intel_runtime_pm *rpm) */ dev_pm_set_driver_flags(kdev, DPM_FLAG_NO_DIRECT_COMPLETE); - pm_runtime_set_autosuspend_delay(kdev, 10000); /* 10s */ + pm_runtime_set_autosuspend_delay(kdev, 1000); /* 1s */ pm_runtime_mark_last_busy(kdev); /*