|
@@ -18,7 +18,7 @@
|
|
|
|
|
|
#include <linux/kernel.h>
|
|
|
#include <linux/module.h>
|
|
|
-#include <linux/slab.h>
|
|
|
+#include <linux/device.h>
|
|
|
#include <linux/jiffies.h>
|
|
|
#include <linux/i2c.h>
|
|
|
#include <linux/mutex.h>
|
|
@@ -159,12 +159,11 @@ static int eeprom_probe(struct i2c_client *client,
|
|
|
{
|
|
|
struct i2c_adapter *adapter = client->adapter;
|
|
|
struct eeprom_data *data;
|
|
|
- int err;
|
|
|
|
|
|
- if (!(data = kzalloc(sizeof(struct eeprom_data), GFP_KERNEL))) {
|
|
|
- err = -ENOMEM;
|
|
|
- goto exit;
|
|
|
- }
|
|
|
+ data = devm_kzalloc(&client->dev, sizeof(struct eeprom_data),
|
|
|
+ GFP_KERNEL);
|
|
|
+ if (!data)
|
|
|
+ return -ENOMEM;
|
|
|
|
|
|
memset(data->data, 0xff, EEPROM_SIZE);
|
|
|
i2c_set_clientdata(client, data);
|
|
@@ -190,22 +189,12 @@ static int eeprom_probe(struct i2c_client *client,
|
|
|
}
|
|
|
|
|
|
/* create the sysfs eeprom file */
|
|
|
- err = sysfs_create_bin_file(&client->dev.kobj, &eeprom_attr);
|
|
|
- if (err)
|
|
|
- goto exit_kfree;
|
|
|
-
|
|
|
- return 0;
|
|
|
-
|
|
|
-exit_kfree:
|
|
|
- kfree(data);
|
|
|
-exit:
|
|
|
- return err;
|
|
|
+ return sysfs_create_bin_file(&client->dev.kobj, &eeprom_attr);
|
|
|
}
|
|
|
|
|
|
static int eeprom_remove(struct i2c_client *client)
|
|
|
{
|
|
|
sysfs_remove_bin_file(&client->dev.kobj, &eeprom_attr);
|
|
|
- kfree(i2c_get_clientdata(client));
|
|
|
|
|
|
return 0;
|
|
|
}
|