Re: [PATCH 2/2] PCI: Create device link for NVIDIA GPU

From: Lukas Wunner
Date: Mon Jun 03 2019 - 06:10:56 EST

On Mon, Jun 03, 2019 at 01:30:51PM +0530, Abhishek Sahu wrote:
> On 6/1/2019 2:09 AM, Bjorn Helgaas wrote:
> > > If there *is* spec language that allows dependencies like this, please
> > include the citation in your commit log.
> The PCIe specification treats each function separately but GPU case is
> different. So, it won't be part of PCIe spec. in GPU, the different
> kind of devices are internally coupled in HW but still needs to be
> managed by different driver.

GPUs aren't the only devices which have these implicit dependencies.

E.g. Broadcom BCM57765 combines a Gigabit Ethernet chip in function 0
(14e4:16b4) with an SD card reader in function 1 (14e4:16bc) and AFAIK
for the latter to work, the former needs to be in D0. I think we're
incorrectly not enforcing this dependency in the kernel yet. That chip
was built into many MacBooks.

Indeed the inability to specify such inter-function power dependencies
in config space seems to be a gaping hole in the PCI spec. Maybe we
should always assume that function 0 needs to be in D0 for any other
function to work? Not sure if that would be safe.