|
@@ -1170,6 +1170,12 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id)
|
|
|
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);
|
|
|
if (!pdev) {
|
|
|
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;
|
|
|
}
|
|
|
|
|
|
- if (inuse) {
|
|
|
- dev_dbg(&client->dev, "driver is already in use\n");
|
|
|
- status = -EBUSY;
|
|
|
- goto free;
|
|
|
- }
|
|
|
-
|
|
|
if ((id->driver_data) & TWL6030_CLASS) {
|
|
|
twl_id = TWL6030_CLASS_ID;
|
|
|
twl_map = &twl6030_map[0];
|