/** * pnp_auto_config_dev - automatically assigns resources to a device * @dev: pointer to the desired device * */ int pnp_auto_config_dev(struct pnp_dev *dev) { struct pnp_option *dep; int i = 1; if(!dev) return -EINVAL; if(!pnp_can_configure(dev)) { pnp_info("Device %s does not support resource configuration.", dev->dev.bus_id); return -ENODEV; } if (!dev->dependent) { if (pnp_assign_resources(dev, 0)) return 0; } else { dep = dev->dependent; do { if (pnp_assign_resources(dev, i)) return 0; dep = dep->next; i++; } while (dep); } pnp_err("Unable to assign resources to device %s.", dev->dev.bus_id); return -EBUSY; }
/** * pnp_auto_config_dev - automatically assigns resources to a device * @dev: pointer to the desired device */ int pnp_auto_config_dev(struct pnp_dev *dev) { struct pnp_option *dep; int i = 1; if (!pnp_can_configure(dev)) { dev_dbg(&dev->dev, "configuration not supported\n"); return -ENODEV; } if (!dev->dependent) { if (pnp_assign_resources(dev, 0)) return 0; } else { dep = dev->dependent; do { if (pnp_assign_resources(dev, i)) return 0; dep = dep->next; i++; } while (dep); } dev_err(&dev->dev, "unable to assign resources\n"); return -EBUSY; }