diff options
-rw-r--r-- | drivers/rtc/rtc-rx8025.c | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/drivers/rtc/rtc-rx8025.c b/drivers/rtc/rtc-rx8025.c index be91e922a139..612b6876cbd5 100644 --- a/drivers/rtc/rtc-rx8025.c +++ b/drivers/rtc/rtc-rx8025.c @@ -513,20 +513,18 @@ static int rx8025_probe(struct i2c_client *client, { struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent); struct rx8025_data *rx8025; - int err, need_reset = 0; + int err = 0, need_reset = 0; if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA | I2C_FUNC_SMBUS_I2C_BLOCK)) { dev_err(&adapter->dev, "doesn't support required functionality\n"); - err = -EIO; - goto errout; + return -EIO; } rx8025 = devm_kzalloc(&client->dev, sizeof(*rx8025), GFP_KERNEL); if (!rx8025) { - err = -ENOMEM; - goto errout; + return -ENOMEM; } rx8025->client = client; @@ -534,7 +532,7 @@ static int rx8025_probe(struct i2c_client *client, err = rx8025_init_client(client, &need_reset); if (err) - goto errout; + return err; if (need_reset) { struct rtc_time tm; @@ -547,9 +545,8 @@ static int rx8025_probe(struct i2c_client *client, rx8025->rtc = devm_rtc_device_register(&client->dev, client->name, &rx8025_rtc_ops, THIS_MODULE); if (IS_ERR(rx8025->rtc)) { - err = PTR_ERR(rx8025->rtc); dev_err(&client->dev, "unable to register the class device\n"); - goto errout; + return PTR_ERR(rx8025->rtc); } if (client->irq > 0) { @@ -559,7 +556,7 @@ static int rx8025_probe(struct i2c_client *client, client); if (err) { dev_err(&client->dev, "unable to request IRQ\n"); - goto errout; + return err; } } @@ -567,13 +564,6 @@ static int rx8025_probe(struct i2c_client *client, rx8025->rtc->max_user_freq = 1; err = rx8025_sysfs_register(&client->dev); - if (err) - goto errout; - - return 0; - -errout: - dev_err(&adapter->dev, "probing for rx8025 failed\n"); return err; } |