Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4cfa892c authored by Philip Rakity's avatar Philip Rakity Committed by Anton Vorontsov
Browse files

max17042_battery: Divide by 0 crash because r_sns init too late



On MMP2 brownstone divide by 0 error since probe sets r_sns
after calling power_supply_register.

Move the code up a few lines.  r_sns comes from the platform
data.

PROP_CURRENT_AVG and PROP_CURRENT divide the result by r_sns.

Signed-off-by: default avatarPhilip Rakity <prakity@marvell.com>
Acked-by: default avatarMyungJoo Ham <myungjoo.ham@samsung.com>
Signed-off-by: default avatarAnton Vorontsov <cbouatmailru@gmail.com>
parent 45d116ec
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -209,6 +209,9 @@ static int __devinit max17042_probe(struct i2c_client *client,
	if (!chip->pdata->enable_current_sense)
		chip->battery.num_properties -= 2;

	if (chip->pdata->r_sns == 0)
		chip->pdata->r_sns = MAX17042_DEFAULT_SNS_RESISTOR;

	ret = power_supply_register(&client->dev, &chip->battery);
	if (ret) {
		dev_err(&client->dev, "failed: power supply register\n");
@@ -225,9 +228,6 @@ static int __devinit max17042_probe(struct i2c_client *client,
		max17042_write_reg(client, MAX17042_CGAIN, 0x0000);
		max17042_write_reg(client, MAX17042_MiscCFG, 0x0003);
		max17042_write_reg(client, MAX17042_LearnCFG, 0x0007);
	} else {
		if (chip->pdata->r_sns == 0)
			chip->pdata->r_sns = MAX17042_DEFAULT_SNS_RESISTOR;
	}

	return 0;