Use the correct device as the power_for_sleep() method

always pass request up to parent bridge.

Reviewed by:	jhb
MFC after:	1 week
xMFC:		r274386,r274397
This commit is contained in:
Dmitry Chagin 2014-11-17 20:25:21 +00:00
parent 707767a88c
commit 91bd62caf5

View File

@ -3637,7 +3637,6 @@ static void
pci_set_power_child(device_t dev, device_t child, int state)
{
struct pci_devinfo *dinfo;
device_t pcib;
int dstate;
/*
@ -3647,11 +3646,10 @@ pci_set_power_child(device_t dev, device_t child, int state)
* device power. Skip children who aren't attached since they
* are handled separately.
*/
pcib = device_get_parent(dev);
dinfo = device_get_ivars(child);
dstate = state;
if (device_is_attached(child) &&
PCIB_POWER_FOR_SLEEP(pcib, child, &dstate) == 0)
PCIB_POWER_FOR_SLEEP(dev, child, &dstate) == 0)
pci_set_powerstate(child, dstate);
}