Skip to content

Commit

Permalink
power: supply: sbs-battery: use dev_err_probe
Browse files Browse the repository at this point in the history
Introduce usage of dev_err_probe in probe routine, which
makes the code slightly more readable and removes some
lines of code. It also removes PROBE_DEFER errors being
logged by default, which are common when the battery is
waiting for the charger driver to be registered.

This also cleans up a useless goto and instead returns
directly.

Signed-off-by: Sebastian Reichel <[email protected]>
  • Loading branch information
sre committed Apr 2, 2021
1 parent 33ae8b0 commit 166767a
Showing 1 changed file with 9 additions and 19 deletions.
28 changes: 9 additions & 19 deletions drivers/power/supply/sbs-battery.c
Original file line number Diff line number Diff line change
Expand Up @@ -1123,11 +1123,9 @@ static int sbs_probe(struct i2c_client *client)

chip->gpio_detect = devm_gpiod_get_optional(&client->dev,
"sbs,battery-detect", GPIOD_IN);
if (IS_ERR(chip->gpio_detect)) {
dev_err(&client->dev, "Failed to get gpio: %ld\n",
PTR_ERR(chip->gpio_detect));
return PTR_ERR(chip->gpio_detect);
}
if (IS_ERR(chip->gpio_detect))
return dev_err_probe(&client->dev, PTR_ERR(chip->gpio_detect),
"Failed to get gpio\n");

i2c_set_clientdata(client, chip);

Expand Down Expand Up @@ -1158,31 +1156,23 @@ static int sbs_probe(struct i2c_client *client)

rc = sbs_get_battery_presence_and_health(
client, POWER_SUPPLY_PROP_PRESENT, &val);
if (rc < 0 || !val.intval) {
dev_err(&client->dev, "Failed to get present status\n");
rc = -ENODEV;
goto exit_psupply;
}
if (rc < 0 || !val.intval)
return dev_err_probe(&client->dev, -ENODEV,
"Failed to get present status\n");
}

INIT_DELAYED_WORK(&chip->work, sbs_delayed_work);

chip->power_supply = devm_power_supply_register(&client->dev, sbs_desc,
&psy_cfg);
if (IS_ERR(chip->power_supply)) {
dev_err(&client->dev,
"%s: Failed to register power supply\n", __func__);
rc = PTR_ERR(chip->power_supply);
goto exit_psupply;
}
if (IS_ERR(chip->power_supply))
return dev_err_probe(&client->dev, PTR_ERR(chip->power_supply),
"Failed to register power supply\n");

dev_info(&client->dev,
"%s: battery gas gauge device registered\n", client->name);

return 0;

exit_psupply:
return rc;
}

static int sbs_remove(struct i2c_client *client)
Expand Down

0 comments on commit 166767a

Please sign in to comment.