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

Commit 5d2db9ed authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "power: batterydata-lib: fix out of bound errors"

parents a86851aa d8990aa2
Loading
Loading
Loading
Loading
+26 −26
Original line number Original line Diff line number Diff line
@@ -105,12 +105,11 @@ int interpolate_scalingfactor(struct sf_lut *sf_lut, int row_entry, int pc)
		pr_debug("pc %d greater than known pc ranges for sfd\n", pc);
		pr_debug("pc %d greater than known pc ranges for sfd\n", pc);
		row1 = 0;
		row1 = 0;
		row2 = 0;
		row2 = 0;
	}
	} else if (pc < sf_lut->percent[rows - 1]) {
	if (pc < sf_lut->percent[rows - 1]) {
		pr_debug("pc %d less than known pc ranges for sf\n", pc);
		pr_debug("pc %d less than known pc ranges for sf\n", pc);
		row1 = rows - 1;
		row1 = rows - 1;
		row2 = rows - 1;
		row2 = rows - 1;
	}
	} else {
		for (i = 0; i < rows; i++) {
		for (i = 0; i < rows; i++) {
			if (pc == sf_lut->percent[i]) {
			if (pc == sf_lut->percent[i]) {
				row1 = i;
				row1 = i;
@@ -123,6 +122,7 @@ int interpolate_scalingfactor(struct sf_lut *sf_lut, int row_entry, int pc)
				break;
				break;
			}
			}
		}
		}
	}


	if (row_entry < sf_lut->row_entries[0] * DEGC_SCALE)
	if (row_entry < sf_lut->row_entries[0] * DEGC_SCALE)
		row_entry = sf_lut->row_entries[0] * DEGC_SCALE;
		row_entry = sf_lut->row_entries[0] * DEGC_SCALE;
@@ -180,12 +180,11 @@ int interpolate_ocv(struct pc_temp_ocv_lut *pc_temp_ocv,
		pr_debug("pc %d greater than known pc ranges for sfd\n", pc);
		pr_debug("pc %d greater than known pc ranges for sfd\n", pc);
		row1 = 0;
		row1 = 0;
		row2 = 0;
		row2 = 0;
	}
	} else if (pc < pc_temp_ocv->percent[rows - 1]) {
	if (pc < pc_temp_ocv->percent[rows - 1]) {
		pr_debug("pc %d less than known pc ranges for sf\n", pc);
		pr_debug("pc %d less than known pc ranges for sf\n", pc);
		row1 = rows - 1;
		row1 = rows - 1;
		row2 = rows - 1;
		row2 = rows - 1;
	}
	} else {
		for (i = 0; i < rows; i++) {
		for (i = 0; i < rows; i++) {
			if (pc == pc_temp_ocv->percent[i]) {
			if (pc == pc_temp_ocv->percent[i]) {
				row1 = i;
				row1 = i;
@@ -198,6 +197,7 @@ int interpolate_ocv(struct pc_temp_ocv_lut *pc_temp_ocv,
				break;
				break;
			}
			}
		}
		}
	}


	if (batt_temp < pc_temp_ocv->temp[0] * DEGC_SCALE)
	if (batt_temp < pc_temp_ocv->temp[0] * DEGC_SCALE)
		batt_temp = pc_temp_ocv->temp[0] * DEGC_SCALE;
		batt_temp = pc_temp_ocv->temp[0] * DEGC_SCALE;