static int pnp_bus_resume(struct device *dev) { struct pnp_dev *pnp_dev = to_pnp_dev(dev); struct pnp_driver *pnp_drv = pnp_dev->driver; int error; if (!pnp_drv) return 0; if (pnp_dev->protocol->resume) pnp_dev->protocol->resume(pnp_dev); if (pnp_can_write(pnp_dev)) { error = pnp_start_dev(pnp_dev); if (error) return error; } if (pnp_drv->resume) { error = pnp_drv->resume(pnp_dev); if (error) return error; } return 0; }
/** * pnp_activate_dev - activates a PnP device for use * @dev: pointer to the desired device * * does not validate or set resources so be careful. */ int pnp_activate_dev(struct pnp_dev *dev) { int error; if (dev->active) return 0; /* the device is already active */ /* ensure resources are allocated */ if (pnp_auto_config_dev(dev)) return -EBUSY; error = pnp_start_dev(dev); if (error) return error; dev->active = 1; return 1; }
static int pnp_bus_resume(struct device *dev) { struct pnp_dev * pnp_dev = to_pnp_dev(dev); struct pnp_driver * pnp_drv = pnp_dev->driver; int error; if (!pnp_drv) return 0; if (!(pnp_drv->flags & PNP_DRIVER_RES_DO_NOT_CHANGE)) { error = pnp_start_dev(pnp_dev); if (error) return error; } if (pnp_drv->resume) return pnp_drv->resume(pnp_dev); return 0; }