|
@@ -376,12 +376,12 @@ static int __devinit pn544_hci_i2c_probe(struct i2c_client *client,
|
|
|
return -ENODEV;
|
|
|
}
|
|
|
|
|
|
- phy = kzalloc(sizeof(struct pn544_i2c_phy), GFP_KERNEL);
|
|
|
+ phy = devm_kzalloc(&client->dev, sizeof(struct pn544_i2c_phy),
|
|
|
+ GFP_KERNEL);
|
|
|
if (!phy) {
|
|
|
dev_err(&client->dev,
|
|
|
"Cannot allocate memory for pn544 i2c phy.\n");
|
|
|
- r = -ENOMEM;
|
|
|
- goto err_phy_alloc;
|
|
|
+ return -ENOMEM;
|
|
|
}
|
|
|
|
|
|
phy->i2c_dev = client;
|
|
@@ -390,20 +390,18 @@ static int __devinit pn544_hci_i2c_probe(struct i2c_client *client,
|
|
|
pdata = client->dev.platform_data;
|
|
|
if (pdata == NULL) {
|
|
|
dev_err(&client->dev, "No platform data\n");
|
|
|
- r = -EINVAL;
|
|
|
- goto err_pdata;
|
|
|
+ return -EINVAL;
|
|
|
}
|
|
|
|
|
|
if (pdata->request_resources == NULL) {
|
|
|
dev_err(&client->dev, "request_resources() missing\n");
|
|
|
- r = -EINVAL;
|
|
|
- goto err_pdata;
|
|
|
+ return -EINVAL;
|
|
|
}
|
|
|
|
|
|
r = pdata->request_resources(client);
|
|
|
if (r) {
|
|
|
dev_err(&client->dev, "Cannot get platform resources\n");
|
|
|
- goto err_pdata;
|
|
|
+ return r;
|
|
|
}
|
|
|
|
|
|
phy->gpio_en = pdata->get_gpio(NFC_GPIO_ENABLE);
|
|
@@ -435,10 +433,6 @@ err_rti:
|
|
|
if (pdata->free_resources != NULL)
|
|
|
pdata->free_resources();
|
|
|
|
|
|
-err_pdata:
|
|
|
- kfree(phy);
|
|
|
-
|
|
|
-err_phy_alloc:
|
|
|
return r;
|
|
|
}
|
|
|
|
|
@@ -458,8 +452,6 @@ static __devexit int pn544_hci_i2c_remove(struct i2c_client *client)
|
|
|
if (pdata->free_resources)
|
|
|
pdata->free_resources();
|
|
|
|
|
|
- kfree(phy);
|
|
|
-
|
|
|
return 0;
|
|
|
}
|
|
|
|