dev_err(&s_data->i2c_client->dev,
"%s: error power on\n", __func__);
} else
- call_s_op(s_data, power_off);
+ err = call_s_op(s_data, power_off);
return err;
}
/* power on */
err = call_s_op(s_data, power_on);
- if (err)
+ if (err) {
dev_err(&s_data->i2c_client->dev,
"%s: error power on\n", __func__);
+ return err;
+ }
/* load default configuration */
- call_s_op(s_data, load_config);
+ err = call_s_op(s_data, load_config);
+ if (err) {
+ dev_err(&s_data->i2c_client->dev,
+ "%s: error loading config\n", __func__);
+ goto fail;
+ }
/* set controls */
err = call_s_op(s_data, ctrls_init);
dev_err(&s_data->i2c_client->dev,
"%s: error initializing controls\n", __func__);
+fail:
/* power off */
- call_s_op(s_data, power_off);
+ err |= call_s_op(s_data, power_off);
return err;
}