All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Nilawar, Badal" <badal.nilawar@intel.com>
To: "Rafael J. Wysocki" <rafael@kernel.org>,
	"Gupta, Anshuman" <anshuman.gupta@intel.com>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
	"intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"lenb@kernel.org" <lenb@kernel.org>,
	"bhelgaas@google.com" <bhelgaas@google.com>,
	"ilpo.jarvinen@linux.intel.com" <ilpo.jarvinen@linux.intel.com>,
	"De Marchi, Lucas" <lucas.demarchi@intel.com>,
	"Vivi, Rodrigo" <rodrigo.vivi@intel.com>,
	"Gupta,  Varun" <varun.gupta@intel.com>,
	"ville.syrjala@linux.intel.com" <ville.syrjala@linux.intel.com>,
	"Shankar, Uma" <uma.shankar@intel.com>
Subject: Re: [PATCH 03/12] PCI/ACPI: Add aux power grant notifier
Date: Thu, 29 May 2025 17:01:14 +0530	[thread overview]
Message-ID: <280ddb2a-7cea-4be2-b704-cb40a9d6bd93@intel.com> (raw)
In-Reply-To: <CAJZ5v0hp-bYn8JFiBnTgrSdJWHm1jgCjcvbVZkzeOaySjvAQQg@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2736 bytes --]


On 08-04-2025 18:31, Rafael J. Wysocki wrote:
> On Fri, Apr 4, 2025 at 2:53 PM Gupta, Anshuman<anshuman.gupta@intel.com> wrote:
>> /snip
>>>>> Exactly like I said: If you only allow one driver to use the _DSM to
>>>>> request the Aux power from a given Root Port, it will have all of
>>>>> the information and does not need to be notified about any changes.
>>>>> Since no one else is allowed to use this interface for that Root
>>>>> Port, no one else will need a notifier either.  For this to work,
>>>>> you need some mechanism allowing drivers to claim the interface so
>>>>> no one else can use it (on a per Root Port basis) which is currently missing
>>> AFAICS.
>>>> IMHO such kind of mechanism will require to add Root Port specific
>>>> data structure to claim the interface. But real problem is the criteria  to claim
>>> the interface.
>>>> Is first PCIe Non-Bridge Endpoint Function 0 driver can be criteria
>>>> to claim the Interface. Or first come and first serve approach ?
>>> IMV, the first PCIe Non-Bridge Endpoint Function 0 driver approach would be
>>> sort of fragile and cumbersome to enforce.
>>>
>>> First come, first serve is much simpler and should be sufficient for now AFAICS.
>> We are enabling VRSR only for default vga boot device.
>> As it needed only GPU driving the display for better user experience.
>> Can we use same logic vga_default_device() to claim the interface under root port.
>> That will simplify the criteria to claim the interface.
> Basically, you need to prevent somebody else from running
> DSM_PCI_D3COLD_AUX_POWER_LIMIT concurrently for the given Root Port
> and store the information that it has been run already.
>
> Personally, I'd add aux_power_limit to struct acpi_device_power and
> I'd use a static mutex in pci_acpi_request_d3cold_aux_power() along
> the lines of:
>
> 1. Acquire the mutex.
> 2. If power.aux_power_limit is set for the ACPI companion of pci_dev,
> release the mutex and bail out.
> 3. Evaluate DSM_PCI_D3COLD_AUX_POWER_LIMIT and if it fails, release
> the mutex and bail out.
> 4. Set power.aux_power_limit for the ACPI companion of pci_dev to the
> requested value.
> 5. Release the mutex.
>
> Of course, this would only allow it to be set once per kernel boot, so
> in order to handle hibernation properly, the same Aux power limit
> would need to be requested again automatically on Root Port restore.

  I've incorporated the above suggestion in v4 patch [v4,02/11] 
PCI/ACPI: Per root port allow one Aux power limit request - Patchwork 
<https://patchwork.freedesktop.org/patch/656187/?series=145342&rev=4> , 
except for the Aux power re-request after hibernation exit, as we didn't 
observe any issues with VRSR post hibernation.

Regards,
Badal

[-- Attachment #2: Type: text/html, Size: 4131 bytes --]

  reply	other threads:[~2025-05-29 11:32 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-01 15:32 [PATCH 00/12] VRAM Self Refresh Anshuman Gupta
2025-04-01 15:32 ` [PATCH 01/12] PCI/ACPI: Add D3cold Aux Power Limit_DSM method Anshuman Gupta
2025-04-01 18:25   ` Bjorn Helgaas
2025-04-02 10:59     ` Rafael J. Wysocki
2025-04-03  5:25     ` Gupta, Anshuman
2025-04-01 15:32 ` [PATCH 02/12] PCI/ACPI: Add PERST# Assertion Delay _DSM method Anshuman Gupta
2025-04-01 18:30   ` Bjorn Helgaas
2025-04-03  5:59     ` Gupta, Anshuman
2025-04-02 11:06   ` Rafael J. Wysocki
2025-04-02 14:21     ` Bjorn Helgaas
2025-04-02 14:52       ` Rafael J. Wysocki
2025-04-02 15:50         ` Bjorn Helgaas
2025-04-02 17:51           ` Rafael J. Wysocki
2025-04-02 18:48             ` Bjorn Helgaas
2025-04-02 19:36               ` Rafael J. Wysocki
2025-04-08 20:48                 ` Bjorn Helgaas
2025-04-09 12:30                   ` Rafael J. Wysocki
2025-04-09 14:47                     ` Bjorn Helgaas
2025-04-09 16:28                       ` Rafael J. Wysocki
2025-04-01 15:32 ` [PATCH 03/12] PCI/ACPI: Add aux power grant notifier Anshuman Gupta
2025-04-01 20:13   ` Bjorn Helgaas
2025-04-02 11:23     ` Rafael J. Wysocki
2025-04-03 11:30       ` Gupta, Anshuman
2025-04-03 13:34         ` Rafael J. Wysocki
2025-04-03 16:08           ` Gupta, Anshuman
2025-04-03 18:15             ` Rafael J. Wysocki
2025-04-04 12:53               ` Gupta, Anshuman
2025-04-08 13:01                 ` Rafael J. Wysocki
2025-05-29 11:31                   ` Nilawar, Badal [this message]
2025-04-03  7:56     ` Gupta, Anshuman
2025-04-03 13:48       ` Rafael J. Wysocki
2025-04-01 15:32 ` [PATCH 04/12] drm/xe/vrsr: Introduce flag has_vrsr Anshuman Gupta
2025-04-01 15:32 ` [PATCH 05/12] drm/xe/vrsr: Detect VRSR Capability Anshuman Gupta
2025-04-01 15:32 ` [PATCH 06/12] drm/xe/vrsr: Initialize VRSR feature Anshuman Gupta
2025-04-01 19:56   ` Bjorn Helgaas
2025-04-03  6:09     ` Gupta, Anshuman
2025-04-01 15:32 ` [PATCH 07/12] drm/xe/vrsr: Enable VRSR on default VGA boot device Anshuman Gupta
2025-04-01 15:32 ` [PATCH 08/12] drm/xe: Add PCIe ACPI Aux Power notifier Anshuman Gupta
2025-04-01 15:32 ` [PATCH 09/12] drm/xe/vrsr: Refactor d3cold.allowed to a enum Anshuman Gupta
2025-04-01 15:32 ` [PATCH 10/12] drm/xe/pm: D3Cold target state Anshuman Gupta
2025-04-02 10:28   ` [10/12] " Poosa, Karthik
2025-04-01 15:32 ` [PATCH 11/12] drm/xe/vrsr: Enable VRSR Anshuman Gupta
2025-04-01 15:32 ` [PATCH 12/12] drm/xe/vrsr: Introduce a debugfs node named vrsr_capable Anshuman Gupta
2025-04-01 15:42 ` ✓ CI.Patch_applied: success for VRAM Self Refresh (rev2) Patchwork
2025-04-01 15:42 ` ✗ CI.checkpatch: warning " Patchwork
2025-04-01 15:42 ` ✗ CI.KUnit: failure " 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=280ddb2a-7cea-4be2-b704-cb40a9d6bd93@intel.com \
    --to=badal.nilawar@intel.com \
    --cc=anshuman.gupta@intel.com \
    --cc=bhelgaas@google.com \
    --cc=helgaas@kernel.org \
    --cc=ilpo.jarvinen@linux.intel.com \
    --cc=intel-xe@lists.freedesktop.org \
    --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.