[Intel-xe] [PATCH v3] drm/xe/pm: Disable PM on unbounded pcie parent bridge

Gupta, Anshuman anshuman.gupta at intel.com
Mon May 22 16:28:20 UTC 2023



> -----Original Message-----
> From: Gupta, Anshuman
> Sent: Friday, May 19, 2023 10:28 AM
> To: Rodrigo Vivi <rodrigo.vivi at kernel.org>
> Cc: intel-xe at lists.freedesktop.org; Nikula, Jani <jani.nikula at intel.com>; Vivi,
> Rodrigo <rodrigo.vivi at intel.com>
> Subject: RE: [Intel-xe] [PATCH v3] drm/xe/pm: Disable PM on unbounded
> pcie parent bridge
> 
> 
> 
> > -----Original Message-----
> > From: Rodrigo Vivi <rodrigo.vivi at kernel.org>
> > Sent: Thursday, May 18, 2023 10:41 PM
> > To: Gupta, Anshuman <anshuman.gupta at intel.com>
> > Cc: intel-xe at lists.freedesktop.org; Nikula, Jani
> > <jani.nikula at intel.com>; Vivi, Rodrigo <rodrigo.vivi at intel.com>
> > Subject: Re: [Intel-xe] [PATCH v3] drm/xe/pm: Disable PM on unbounded
> > pcie parent bridge
> >
> > On Thu, May 18, 2023 at 02:22:59PM +0530, Anshuman Gupta wrote:
> > > Intel Discrete GFX cards gfx may have multiple PCIe endpoints, they
> > > connects to root port via pcie upstream switch port(USP) and virtual
> > > pcie switch port(VSP), sometimes VSP pcie devices doesn't bind to
> > > pcieport driver. Without pcieport driver, pcie PM comes without any
> > > warranty and with unbounded VSP gfx card won't transition to low
> > > power pcie device and link state therefore assert dev_warn on
> > > unbounded VSP and disable xe driver PM support.
> > >
> > > v2:
> > > - Disable Xe PCI PM support. [Rodrigo]
> > > v3:
> > > - Changed subject and Rebase.
> > >
> > > Cc: Rodrigo Vivi <rodrigo.vivi at intel.com>
> > > Signed-off-by: Anshuman Gupta <anshuman.gupta at intel.com>
> > > ---
> > >  drivers/gpu/drm/xe/xe_pci.c | 16 ++++++++++++++++
> > >  1 file changed, 16 insertions(+)
> > >
> > > diff --git a/drivers/gpu/drm/xe/xe_pci.c
> > > b/drivers/gpu/drm/xe/xe_pci.c index e789a50a1310..e09d76b7755a
> > > 100644
> > > --- a/drivers/gpu/drm/xe/xe_pci.c
> > > +++ b/drivers/gpu/drm/xe/xe_pci.c
> > > @@ -603,6 +603,19 @@ static void xe_pci_remove(struct pci_dev *pdev)
> > >  	pci_set_drvdata(pdev, NULL);
> > >  }
> > >
> >
/snip
> > Probably the safest place to call this is at xe_register_pci_driver
> > right before registering it, no?!
> > possible?
Hi Rodrigo ,
For safety purpose  how about to use device_set_pm_not_required()
I had already tested it locally, above helper removed device PM support.
Br,
Anshuman Gupta.
> We need instance of pci_dev pdev to get the bridge device,
> xe_register_pci_driver does not have pdev.
> xe_register_pci_driver will not be called per pcie device.
> Br,
> Anshuman
> >
> > > +
> > >  	xe = xe_device_create(pdev, ent);
> > >  	if (IS_ERR(xe))
> > >  		return PTR_ERR(xe);
> > > --
> > > 2.38.0
> > >


More information about the Intel-xe mailing list