All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Nilawar, Badal" <badal.nilawar@intel.com>
To: "Poosa, Karthik" <karthik.poosa@intel.com>,
	<intel-xe@lists.freedesktop.org>, <linux-acpi@vger.kernel.org>,
	<linux-pci@vger.kernel.org>
Cc: <anshuman.gupta@intel.com>, <rafael@kernel.org>,
	<lenb@kernel.org>, <bhelgaas@google.com>,
	<ilpo.jarvinen@linux.intel.com>, <lucas.demarchi@intel.com>,
	<rodrigo.vivi@intel.com>, <varun.gupta@intel.com>,
	<ville.syrjala@linux.intel.com>, <uma.shankar@intel.com>
Subject: Re: [v4,10/11] drm/xe/vrsr: Enable VRSR
Date: Wed, 3 Sep 2025 19:46:00 +0530	[thread overview]
Message-ID: <dee7db73-5a6b-47f7-bf4d-2ef45d8018c1@intel.com> (raw)
In-Reply-To: <bd981a4a-e678-429d-8526-abd9290906d1@intel.com>


On 24-06-2025 17:15, Poosa, Karthik wrote:
>
> On 29-05-2025 16:46, Badal Nilawar wrote:
>> From: Anshuman Gupta <anshuman.gupta@intel.com>
>>
>> Enabling VRSR in runtime suspend and also in System wide suspend.
>
> This can be rephrased to -
>
> Integrate VRSR into both system-wide and runtime suspend-resume flows.

I will drop gerund.  So it will be "Enable VRSR  in runtime suspend and 
in System wide suspend".

Thanks,
Badal

>
>> Also fix couple of typo in xe_pm.c.
>>
>> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
>> Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
>> ---
>>   drivers/gpu/drm/xe/xe_pci.c |  4 ++--
>>   drivers/gpu/drm/xe/xe_pm.c  | 46 +++++++++++++++++++++++++++----------
>>   2 files changed, 36 insertions(+), 14 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
>> index 5ae1df345416..fdf878594fb0 100644
>> --- a/drivers/gpu/drm/xe/xe_pci.c
>> +++ b/drivers/gpu/drm/xe/xe_pci.c
>> @@ -926,7 +926,7 @@ static int xe_pci_suspend(struct device *dev)
>>         /*
>>        * Enabling D3Cold is needed for S2Idle/S0ix.
>> -     * It is save to allow here since xe_pm_suspend has evicted
>> +     * It is safe to allow here since xe_pm_suspend has evicted
>>        * the local memory and the direct complete optimization is 
>> disabled.
>>        */
>>       d3cold_toggle(pdev, D3COLD_ENABLE);
>> @@ -943,7 +943,7 @@ static int xe_pci_resume(struct device *dev)
>>       struct pci_dev *pdev = to_pci_dev(dev);
>>       int err;
>>   -    /* Give back the D3Cold decision to the runtime P M*/
>> +    /* Give back the D3Cold decision to the runtime PM */
>>       d3cold_toggle(pdev, D3COLD_DISABLE);
>>         err = pci_set_power_state(pdev, PCI_D0);
>> diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
>> index 1e061bfc3e52..19596d467298 100644
>> --- a/drivers/gpu/drm/xe/xe_pm.c
>> +++ b/drivers/gpu/drm/xe/xe_pm.c
>> @@ -147,10 +147,12 @@ int xe_pm_suspend(struct xe_device *xe)
>>         xe_display_pm_suspend(xe);
>>   -    /* FIXME: Super racey... */
>> -    err = xe_bo_evict_all(xe);
>> -    if (err)
>> -        goto err_pxp;
>> +    if (xe->d3cold.target_state == XE_D3COLD_OFF) {
>> +        /* FIXME: Super racey... */
>> +        err = xe_bo_evict_all(xe);
>> +        if (err)
>> +            goto err_pxp;
>> +    }
>>         for_each_gt(gt, xe, id) {
>>           err = xe_gt_suspend(gt);
>> @@ -162,6 +164,12 @@ int xe_pm_suspend(struct xe_device *xe)
>>         xe_display_pm_suspend_late(xe);
>>   +    if (xe->d3cold.target_state == XE_D3COLD_VRSR) {
>> +        err = xe_pm_vrsr_enable(xe, true);
>> +            if (err)
>> +                goto err_display;
>> +    }
>> +
>>       drm_dbg(&xe->drm, "Device suspended\n");
>>       return 0;
>>   @@ -203,9 +211,11 @@ int xe_pm_resume(struct xe_device *xe)
>>        * This only restores pinned memory which is the memory 
>> required for the
>>        * GT(s) to resume.
>>        */
>> -    err = xe_bo_restore_early(xe);
>> -    if (err)
>> -        goto err;
>> +    if (xe->d3cold.target_state == XE_D3COLD_OFF) {
>> +        err = xe_bo_restore_early(xe);
>> +        if (err)
>> +            goto err;
>> +    }
>>         xe_irq_resume(xe);
>>   @@ -214,9 +224,11 @@ int xe_pm_resume(struct xe_device *xe)
>>         xe_display_pm_resume(xe);
>>   -    err = xe_bo_restore_late(xe);
>> -    if (err)
>> -        goto err;
>> +    if (xe->d3cold.target_state == XE_D3COLD_OFF) {
>> +        err = xe_bo_restore_late(xe);
>> +        if (err)
>> +            goto err;
>> +    }
>>         xe_pxp_pm_resume(xe->pxp);
>>   @@ -616,7 +628,7 @@ int xe_pm_runtime_suspend(struct xe_device *xe)
>>         xe_display_pm_runtime_suspend(xe);
>>   -    if (xe->d3cold.target_state) {
>> +    if (xe->d3cold.target_state == XE_D3COLD_OFF) {
>>           err = xe_bo_evict_all(xe);
>>           if (err)
>>               goto out_resume;
>> @@ -632,6 +644,14 @@ int xe_pm_runtime_suspend(struct xe_device *xe)
>>         xe_display_pm_runtime_suspend_late(xe);
>>   +    if (xe->d3cold.target_state == XE_D3COLD_VRSR) {
>> +        err = xe_pm_vrsr_enable(xe, true);
>> +            if (err) {
>> +                drm_err(&xe->drm, "Failed to enable VRSR: %d\n", err);
>> +                goto out_resume;
>> +            }
>> +    }
>> +
>>       xe_rpm_lockmap_release(xe);
>>       xe_pm_write_callback_task(xe, NULL);
>>       return 0;
>> @@ -669,7 +689,9 @@ int xe_pm_runtime_resume(struct xe_device *xe)
>>               goto out;
>>             xe_display_pm_resume_early(xe);
>> +    }
>>   +    if (xe->d3cold.target_state == XE_D3COLD_OFF) {
>>           /*
>>            * This only restores pinned memory which is the memory
>>            * required for the GT(s) to resume.
>> @@ -686,7 +708,7 @@ int xe_pm_runtime_resume(struct xe_device *xe)
>>         xe_display_pm_runtime_resume(xe);
>>   -    if (xe->d3cold.target_state) {
>> +    if (xe->d3cold.target_state == XE_D3COLD_OFF) {
>>           err = xe_bo_restore_late(xe);
>>           if (err)
>>               goto out;
>
> Please rephrase commit message. Other than that, code code flow looks 
> fine.
>
> Acked-by: Karthik Poosa <karthik.poosa@intel.com>
>

  reply	other threads:[~2025-09-03 14:16 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-29 11:16 [PATCH v4 00/11] VRAM Self Refresh Badal Nilawar
2025-05-29 11:16 ` [PATCH v4 01/11] PCI/ACPI: Add D3cold Aux Power Limit_DSM method Badal Nilawar
2025-05-29 21:36   ` Sathyanarayanan Kuppuswamy
2025-09-02  6:04     ` Nilawar, Badal
2025-07-02 11:08   ` Rafael J. Wysocki
2025-09-02  6:17     ` Nilawar, Badal
2025-09-02  8:10     ` Nilawar, Badal
2025-09-04 18:30   ` Bjorn Helgaas
2025-09-30  6:11     ` Nilawar, Badal
2025-05-29 11:16 ` [PATCH v4 02/11] PCI/ACPI: Per root port allow one Aux power limit request Badal Nilawar
2025-05-29 21:41   ` Sathyanarayanan Kuppuswamy
2025-07-02 11:11     ` Rafael J. Wysocki
2025-07-02 14:03       ` Sathyanarayanan Kuppuswamy
2025-07-02 11:21   ` Rafael J. Wysocki
2025-09-02  8:43     ` Nilawar, Badal
2025-07-02 11:28   ` Ilpo Järvinen
2025-09-02  8:53     ` Nilawar, Badal
2025-09-04 18:36   ` Bjorn Helgaas
2025-09-30  9:36     ` Nilawar, Badal
2025-05-29 11:16 ` [PATCH v4 03/11] PCI/ACPI: Add PERST# Assertion Delay _DSM method Badal Nilawar
2025-05-29 21:57   ` Sathyanarayanan Kuppuswamy
2025-07-02 11:25     ` Rafael J. Wysocki
2025-09-02  8:22       ` Nilawar, Badal
2025-09-04 18:44   ` Bjorn Helgaas
2025-09-30  9:39     ` Nilawar, Badal
2025-05-29 11:16 ` [PATCH v4 04/11] drm/xe/vrsr: Introduce flag has_vrsr Badal Nilawar
2025-06-06  9:38   ` [v4,04/11] " Poosa, Karthik
2025-05-29 11:16 ` [PATCH v4 05/11] drm/xe/vrsr: Detect VRSR Capability Badal Nilawar
2025-05-29 11:16 ` [PATCH v4 06/11] drm/xe/vrsr: Initialize VRSR feature Badal Nilawar
2025-06-24 10:28   ` [v4,06/11] " Poosa, Karthik
2025-09-03 13:39     ` Nilawar, Badal
2025-09-04 13:42       ` Poosa, Karthik
2025-05-29 11:16 ` [PATCH v4 07/11] drm/xe/vrsr: Enable VRSR on default VGA boot device Badal Nilawar
2025-06-06 13:07   ` Jani Nikula
2025-09-03 14:18     ` Nilawar, Badal
2025-05-29 11:16 ` [PATCH v4 08/11] drm/xe/vrsr: Refactor d3cold.allowed to a enum Badal Nilawar
2025-06-24 10:41   ` [v4,08/11] " Poosa, Karthik
2025-05-29 11:16 ` [PATCH v4 09/11] drm/xe/pm: D3Cold target state Badal Nilawar
2025-06-24 11:10   ` [v4,09/11] " Poosa, Karthik
2025-05-29 11:16 ` [PATCH v4 10/11] drm/xe/vrsr: Enable VRSR Badal Nilawar
2025-06-24 11:45   ` [v4,10/11] " Poosa, Karthik
2025-09-03 14:16     ` Nilawar, Badal [this message]
2025-09-04  6:01       ` Poosa, Karthik
2025-05-29 11:16 ` [PATCH v4 11/11] drm/xe/vrsr: Introduce a debugfs node named vrsr_capable Badal Nilawar
2025-06-24 11:14   ` [v4,11/11] " Poosa, Karthik
2025-05-29 11:36 ` ✗ CI.Patch_applied: failure for VRAM Self Refresh (rev4) 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=dee7db73-5a6b-47f7-bf4d-2ef45d8018c1@intel.com \
    --to=badal.nilawar@intel.com \
    --cc=anshuman.gupta@intel.com \
    --cc=bhelgaas@google.com \
    --cc=ilpo.jarvinen@linux.intel.com \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=karthik.poosa@intel.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=lucas.demarchi@intel.com \
    --cc=rafael@kernel.org \
    --cc=rodrigo.vivi@intel.com \
    --cc=uma.shankar@intel.com \
    --cc=varun.gupta@intel.com \
    --cc=ville.syrjala@linux.intel.com \
    /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.