|
@@ -161,8 +161,7 @@ static int pnp_bus_suspend(struct device *dev, pm_message_t state)
|
|
|
return error;
|
|
|
}
|
|
|
|
|
|
- if (!(pnp_drv->flags & PNP_DRIVER_RES_DO_NOT_CHANGE) &&
|
|
|
- pnp_can_disable(pnp_dev)) {
|
|
|
+ if (pnp_can_disable(pnp_dev)) {
|
|
|
error = pnp_stop_dev(pnp_dev);
|
|
|
if (error)
|
|
|
return error;
|
|
@@ -185,14 +184,17 @@ static int pnp_bus_resume(struct device *dev)
|
|
|
if (pnp_dev->protocol && pnp_dev->protocol->resume)
|
|
|
pnp_dev->protocol->resume(pnp_dev);
|
|
|
|
|
|
- if (!(pnp_drv->flags & PNP_DRIVER_RES_DO_NOT_CHANGE)) {
|
|
|
+ if (pnp_can_write(pnp_dev)) {
|
|
|
error = pnp_start_dev(pnp_dev);
|
|
|
if (error)
|
|
|
return error;
|
|
|
}
|
|
|
|
|
|
- if (pnp_drv->resume)
|
|
|
- return pnp_drv->resume(pnp_dev);
|
|
|
+ if (pnp_drv->resume) {
|
|
|
+ error = pnp_drv->resume(pnp_dev);
|
|
|
+ if (error)
|
|
|
+ return error;
|
|
|
+ }
|
|
|
|
|
|
return 0;
|
|
|
}
|