mfd: twl-core: Move 'inuse' check early at probe time
We can fail earlier in case multiple instance of the twl-core is tried to be loaded. The twl-core by design only supports one instance. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
parent
7e2e6c5758
commit
6382a06141
|
@ -1170,6 +1170,12 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (inuse) {
|
||||||
|
dev_dbg(&client->dev, "only one instance of %s allowed\n",
|
||||||
|
DRIVER_NAME);
|
||||||
|
return -EBUSY;
|
||||||
|
}
|
||||||
|
|
||||||
pdev = platform_device_alloc(DRIVER_NAME, -1);
|
pdev = platform_device_alloc(DRIVER_NAME, -1);
|
||||||
if (!pdev) {
|
if (!pdev) {
|
||||||
dev_err(&client->dev, "can't alloc pdev\n");
|
dev_err(&client->dev, "can't alloc pdev\n");
|
||||||
|
@ -1188,12 +1194,6 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id)
|
||||||
goto free;
|
goto free;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (inuse) {
|
|
||||||
dev_dbg(&client->dev, "driver is already in use\n");
|
|
||||||
status = -EBUSY;
|
|
||||||
goto free;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((id->driver_data) & TWL6030_CLASS) {
|
if ((id->driver_data) & TWL6030_CLASS) {
|
||||||
twl_id = TWL6030_CLASS_ID;
|
twl_id = TWL6030_CLASS_ID;
|
||||||
twl_map = &twl6030_map[0];
|
twl_map = &twl6030_map[0];
|
||||||
|
|
Loading…
Reference in a new issue