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. Thanks, Lukas