|
@@ -449,7 +449,6 @@ static int pca9532_probe(struct i2c_client *client,
|
|
|
{
|
|
|
struct pca9532_data *data = i2c_get_clientdata(client);
|
|
|
struct pca9532_platform_data *pca9532_pdata = client->dev.platform_data;
|
|
|
- int err;
|
|
|
|
|
|
if (!pca9532_pdata)
|
|
|
return -EIO;
|
|
@@ -458,7 +457,7 @@ static int pca9532_probe(struct i2c_client *client,
|
|
|
I2C_FUNC_SMBUS_BYTE_DATA))
|
|
|
return -EIO;
|
|
|
|
|
|
- data = kzalloc(sizeof(*data), GFP_KERNEL);
|
|
|
+ data = devm_kzalloc(&client->dev, sizeof(*data), GFP_KERNEL);
|
|
|
if (!data)
|
|
|
return -ENOMEM;
|
|
|
|
|
@@ -469,11 +468,7 @@ static int pca9532_probe(struct i2c_client *client,
|
|
|
data->client = client;
|
|
|
mutex_init(&data->update_lock);
|
|
|
|
|
|
- err = pca9532_configure(client, data, pca9532_pdata);
|
|
|
- if (err)
|
|
|
- kfree(data);
|
|
|
-
|
|
|
- return err;
|
|
|
+ return pca9532_configure(client, data, pca9532_pdata);
|
|
|
}
|
|
|
|
|
|
static int pca9532_remove(struct i2c_client *client)
|
|
@@ -485,7 +480,6 @@ static int pca9532_remove(struct i2c_client *client)
|
|
|
if (err)
|
|
|
return err;
|
|
|
|
|
|
- kfree(data);
|
|
|
return 0;
|
|
|
}
|
|
|
|