|
@@ -237,17 +237,22 @@ static int ds1672_probe(struct i2c_adapter *adapter, int address, int kind)
|
|
/* read control register */
|
|
/* read control register */
|
|
err = ds1672_get_control(client, &control);
|
|
err = ds1672_get_control(client, &control);
|
|
if (err)
|
|
if (err)
|
|
- goto exit_detach;
|
|
|
|
|
|
+ goto exit_devreg;
|
|
|
|
|
|
if (control & DS1672_REG_CONTROL_EOSC)
|
|
if (control & DS1672_REG_CONTROL_EOSC)
|
|
dev_warn(&client->dev, "Oscillator not enabled. "
|
|
dev_warn(&client->dev, "Oscillator not enabled. "
|
|
"Set time to enable.\n");
|
|
"Set time to enable.\n");
|
|
|
|
|
|
/* Register sysfs hooks */
|
|
/* Register sysfs hooks */
|
|
- device_create_file(&client->dev, &dev_attr_control);
|
|
|
|
|
|
+ err = device_create_file(&client->dev, &dev_attr_control);
|
|
|
|
+ if (err)
|
|
|
|
+ goto exit_devreg;
|
|
|
|
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
|
|
+exit_devreg:
|
|
|
|
+ rtc_device_unregister(rtc);
|
|
|
|
+
|
|
exit_detach:
|
|
exit_detach:
|
|
i2c_detach_client(client);
|
|
i2c_detach_client(client);
|
|
|
|
|