[PATCH] drm/xe/pm: add debug logs for D3cold
Rodrigo Vivi
rodrigo.vivi at intel.com
Tue Feb 6 13:50:36 UTC 2024
On Tue, Feb 06, 2024 at 02:14:18PM +0530, Nilawar, Badal wrote:
>
>
> On 06-02-2024 11:29, Riana Tauro wrote:
> > add additional debug logs for PME# capability and
> ^Add
> > presence of ACPI _PR3 resources. This is to identify
> > the reason why the card is not capable of D3cold.
good idea! Thanks for taking care of that.
> >
> > No functional changes
> >
> > Signed-off-by: Riana Tauro <riana.tauro at intel.com>
> Reviewed-by: Badal Nilawar <badal.nilawar at intel.com>
thanks for reviewing
and pushed to drm-xe-next
> > ---
> > drivers/gpu/drm/xe/xe_pm.c | 19 +++++++++++++------
> > 1 file changed, 13 insertions(+), 6 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
> > index d5f219796d7e..3d55ff77f7c3 100644
> > --- a/drivers/gpu/drm/xe/xe_pm.c
> > +++ b/drivers/gpu/drm/xe/xe_pm.c
> > @@ -125,17 +125,26 @@ int xe_pm_resume(struct xe_device *xe)
> > return 0;
> > }
> > -static bool xe_pm_pci_d3cold_capable(struct pci_dev *pdev)
> > +static bool xe_pm_pci_d3cold_capable(struct xe_device *xe)
> > {
> > + struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
> > struct pci_dev *root_pdev;
> > root_pdev = pcie_find_root_port(pdev);
> > if (!root_pdev)
> > return false;
> > - /* D3Cold requires PME capability and _PR3 power resource */
> > - if (!pci_pme_capable(root_pdev, PCI_D3cold) || !pci_pr3_present(root_pdev))
> > + /* D3Cold requires PME capability */
> > + if (!pci_pme_capable(root_pdev, PCI_D3cold)) {
> > + drm_dbg(&xe->drm, "d3cold: PME# not supported\n");
> > return false;
> > + }
> > +
> > + /* D3Cold requires _PR3 power resource */
> > + if (!pci_pr3_present(root_pdev)) {
> > + drm_dbg(&xe->drm, "d3cold: ACPI _PR3 not present\n");
> > + return false;
> > + }
> > return true;
> > }
> > @@ -171,15 +180,13 @@ void xe_pm_init_early(struct xe_device *xe)
> > void xe_pm_init(struct xe_device *xe)
> > {
> > - struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
> > -
> > /* For now suspend/resume is only allowed with GuC */
> > if (!xe_device_uc_enabled(xe))
> > return;
> > drmm_mutex_init(&xe->drm, &xe->d3cold.lock);
> > - xe->d3cold.capable = xe_pm_pci_d3cold_capable(pdev);
> > + xe->d3cold.capable = xe_pm_pci_d3cold_capable(xe);
> > if (xe->d3cold.capable) {
> > xe_device_sysfs_init(xe);
More information about the Intel-xe
mailing list