Commit cffedd67 authored by Mark Brown's avatar Mark Brown Committed by Greg Kroah-Hartman

usb: misc: usb3503: Convert to devm_ APIs

Saves us a bit of code.
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 42416cc8
...@@ -187,7 +187,7 @@ static int usb3503_probe(struct i2c_client *i2c, const struct i2c_device_id *id) ...@@ -187,7 +187,7 @@ static int usb3503_probe(struct i2c_client *i2c, const struct i2c_device_id *id)
const u32 *property; const u32 *property;
int len; int len;
hub = kzalloc(sizeof(struct usb3503), GFP_KERNEL); hub = devm_kzalloc(&i2c->dev, sizeof(struct usb3503), GFP_KERNEL);
if (!hub) { if (!hub) {
dev_err(&i2c->dev, "private data alloc fail\n"); dev_err(&i2c->dev, "private data alloc fail\n");
return err; return err;
...@@ -229,35 +229,35 @@ static int usb3503_probe(struct i2c_client *i2c, const struct i2c_device_id *id) ...@@ -229,35 +229,35 @@ static int usb3503_probe(struct i2c_client *i2c, const struct i2c_device_id *id)
} }
if (gpio_is_valid(hub->gpio_intn)) { if (gpio_is_valid(hub->gpio_intn)) {
err = gpio_request_one(hub->gpio_intn, err = devm_gpio_request_one(&i2c->dev, hub->gpio_intn,
GPIOF_OUT_INIT_HIGH, "usb3503 intn"); GPIOF_OUT_INIT_HIGH, "usb3503 intn");
if (err) { if (err) {
dev_err(&i2c->dev, dev_err(&i2c->dev,
"unable to request GPIO %d as connect pin (%d)\n", "unable to request GPIO %d as connect pin (%d)\n",
hub->gpio_intn, err); hub->gpio_intn, err);
goto err_out; return err;
} }
} }
if (gpio_is_valid(hub->gpio_connect)) { if (gpio_is_valid(hub->gpio_connect)) {
err = gpio_request_one(hub->gpio_connect, err = devm_gpio_request_one(&i2c->dev, hub->gpio_connect,
GPIOF_OUT_INIT_HIGH, "usb3503 connect"); GPIOF_OUT_INIT_HIGH, "usb3503 connect");
if (err) { if (err) {
dev_err(&i2c->dev, dev_err(&i2c->dev,
"unable to request GPIO %d as connect pin (%d)\n", "unable to request GPIO %d as connect pin (%d)\n",
hub->gpio_connect, err); hub->gpio_connect, err);
goto err_gpio_connect; return err;
} }
} }
if (gpio_is_valid(hub->gpio_reset)) { if (gpio_is_valid(hub->gpio_reset)) {
err = gpio_request_one(hub->gpio_reset, err = devm_gpio_request_one(&i2c->dev, hub->gpio_reset,
GPIOF_OUT_INIT_LOW, "usb3503 reset"); GPIOF_OUT_INIT_LOW, "usb3503 reset");
if (err) { if (err) {
dev_err(&i2c->dev, dev_err(&i2c->dev,
"unable to request GPIO %d as reset pin (%d)\n", "unable to request GPIO %d as reset pin (%d)\n",
hub->gpio_reset, err); hub->gpio_reset, err);
goto err_gpio_reset; return err;
} }
} }
...@@ -267,33 +267,6 @@ static int usb3503_probe(struct i2c_client *i2c, const struct i2c_device_id *id) ...@@ -267,33 +267,6 @@ static int usb3503_probe(struct i2c_client *i2c, const struct i2c_device_id *id)
(hub->mode == USB3503_MODE_HUB) ? "hub" : "standby"); (hub->mode == USB3503_MODE_HUB) ? "hub" : "standby");
return 0; return 0;
err_gpio_reset:
if (gpio_is_valid(hub->gpio_connect))
gpio_free(hub->gpio_connect);
err_gpio_connect:
if (gpio_is_valid(hub->gpio_intn))
gpio_free(hub->gpio_intn);
err_out:
kfree(hub);
return err;
}
static int usb3503_remove(struct i2c_client *i2c)
{
struct usb3503 *hub = i2c_get_clientdata(i2c);
if (gpio_is_valid(hub->gpio_intn))
gpio_free(hub->gpio_intn);
if (gpio_is_valid(hub->gpio_connect))
gpio_free(hub->gpio_connect);
if (gpio_is_valid(hub->gpio_reset))
gpio_free(hub->gpio_reset);
kfree(hub);
return 0;
} }
static const struct i2c_device_id usb3503_id[] = { static const struct i2c_device_id usb3503_id[] = {
...@@ -316,7 +289,6 @@ static struct i2c_driver usb3503_driver = { ...@@ -316,7 +289,6 @@ static struct i2c_driver usb3503_driver = {
.of_match_table = of_match_ptr(usb3503_of_match), .of_match_table = of_match_ptr(usb3503_of_match),
}, },
.probe = usb3503_probe, .probe = usb3503_probe,
.remove = usb3503_remove,
.id_table = usb3503_id, .id_table = usb3503_id,
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment