Thread (1 message) 1 message, 1 author, 2007-05-08

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


Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help