Re: [PATCH] 3Com PCI 3c905 causes annoying pci_set_power_state() messages
From: Jeff Garzik <hidden>
Date: 2007-05-08 05:40:28
Bjørn Mork wrote:
I don't know if this is the correct place for 3c59x bugs. Couldn't find a maintainer entry for it. Please redirect as appropriate. pci_set_power_state() is a bit weird, causing a failure if a device doesn't support PM and the driver tries to 1) save it's power_state, 2) wake up and do something, and 3) then reset to the saved state. The 3c59x driver does this in it's ioctl function. pci_set_power_state() will never set current_state for such devices, causing them to remain in PCI_UNKNOWN (5) forever. But if you try to set the state to PCI_UNKNOWN, bounding will kick in, limiting the state to PCI_D3hot (3). Then pci_set_power_state() will complain because PCI_D3hot < current_state, printing useless messages like this: pci_set_power_state(): 0000:00:09.0: state=3, current state=5 pci_set_power_state(): 0000:00:09.0: state=3, current state=5 and returning -EINVAL. I believe this is wrong because pci_set_power_state() is supposed to return -EIO if device does not support PCI PM.
Yes, please fix PCI. Jeff