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

Commit 9d0b0540 authored by Harry Yang's avatar Harry Yang Committed by Sudhakar Manapati
Browse files

Revert "input: synaptics_i2c_rmi4: Enable turning off regulators in suspend"



This reverts 'commit c790dc84494b ("input: synaptics_i2c_rmi4:
Enable turning off regulators in suspend")'

It causes 1.5mA rock bottom regression in 8226. A new fix is needed.

This patch is propagated from msm-3.4 kernel.
(commit: 11217331e3d3cf571fdc972a7d7759bac3d8c72f)

Change-Id: I9454693070b29f4ee87f8194b7460704ced657fb
Signed-off-by: default avatarHarry Yang <harryy@codeaurora.org>
parent 07a572e0
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@ Optional property:
 - synaptics,panel-x		: panel x dimension
 - synaptics,panel-y		: panel y dimension
 - synaptics,fw-image-name	: name of firmware .img file in /etc/firmware
 - synaptics,power-down		: fully power down regulators in suspend

Example:
	i2c@f9927000 { /* BLSP1 QUP5 */
+6 −62
Original line number Diff line number Diff line
@@ -1052,8 +1052,6 @@ static int synaptics_rmi4_parse_dt(struct device *dev,

	rmi4_pdata->i2c_pull_up = of_property_read_bool(np,
			"synaptics,i2c-pull-up");
	rmi4_pdata->power_down_enable = of_property_read_bool(np,
			"synaptics,power-down");
	rmi4_pdata->x_flip = of_property_read_bool(np, "synaptics,x-flip");
	rmi4_pdata->y_flip = of_property_read_bool(np, "synaptics,y-flip");

@@ -1980,7 +1978,7 @@ static int synaptics_rmi4_power_on(struct synaptics_rmi4_data *rmi4_data,

error_reg_en_vcc_i2c:
	if (rmi4_data->board->i2c_pull_up)
		reg_set_optimum_mode_check(rmi4_data->vcc_i2c, 0);
		reg_set_optimum_mode_check(rmi4_data->vdd, 0);
error_reg_opt_i2c:
	regulator_disable(rmi4_data->vdd);
error_reg_en_vdd:
@@ -2552,52 +2550,28 @@ static int synaptics_rmi4_regulator_lpm(struct synaptics_rmi4_data *rmi4_data,
						bool on)
{
	int retval;
	int load_ua;

	if (on == false)
		goto regulator_hpm;

	load_ua = rmi4_data->board->power_down_enable ? 0 : RMI4_LPM_LOAD_UA;
	retval = reg_set_optimum_mode_check(rmi4_data->vdd, load_ua);
	retval = reg_set_optimum_mode_check(rmi4_data->vdd, RMI4_LPM_LOAD_UA);
	if (retval < 0) {
		dev_err(&rmi4_data->i2c_client->dev,
			"Regulator vdd_ana set_opt failed rc=%d\n",
			retval);
		goto fail_regulator_lpm;
	}

	if (rmi4_data->board->power_down_enable) {
		retval = regulator_disable(rmi4_data->vdd);
		if (retval) {
			dev_err(&rmi4_data->i2c_client->dev,
				"Regulator vdd disable failed rc=%d\n",
			"Regulator vcc_ana set_opt failed rc=%d\n",
			retval);
		goto fail_regulator_lpm;
	}
	}

	if (rmi4_data->board->i2c_pull_up) {
		load_ua = rmi4_data->board->power_down_enable ?
			0 : RMI4_I2C_LPM_LOAD_UA;
		retval = reg_set_optimum_mode_check(rmi4_data->vcc_i2c,
			load_ua);
			RMI4_I2C_LPM_LOAD_UA);
		if (retval < 0) {
			dev_err(&rmi4_data->i2c_client->dev,
				"Regulator vcc_i2c set_opt failed ",
				"rc=%d\n", retval);
			goto fail_regulator_lpm;
		}

		if (rmi4_data->board->power_down_enable) {
			retval = regulator_disable(rmi4_data->vcc_i2c);
			if (retval) {
				dev_err(&rmi4_data->i2c_client->dev,
					"Regulator vcc_i2c disable failed ",
					"rc=%d\n", retval);
				"Regulator vcc_i2c set_opt failed rc=%d\n",
				retval);
			goto fail_regulator_lpm;
		}
	}
	}

	return 0;

@@ -2612,16 +2586,6 @@ regulator_hpm:
		goto fail_regulator_hpm;
	}

	if (rmi4_data->board->power_down_enable) {
		retval = regulator_enable(rmi4_data->vdd);
		if (retval) {
			dev_err(&rmi4_data->i2c_client->dev,
				"Regulator vdd enable failed rc=%d\n",
				retval);
			goto fail_regulator_hpm;
		}
	}

	if (rmi4_data->board->i2c_pull_up) {
		retval = reg_set_optimum_mode_check(rmi4_data->vcc_i2c,
			RMI4_I2C_LOAD_UA);
@@ -2631,26 +2595,6 @@ regulator_hpm:
				retval);
			goto fail_regulator_hpm;
		}

		if (rmi4_data->board->power_down_enable) {
			retval = regulator_enable(rmi4_data->vcc_i2c);
			if (retval) {
				dev_err(&rmi4_data->i2c_client->dev,
					"Regulator vcc_i2c enable failed ",
					"rc=%d\n", retval);
				goto fail_regulator_hpm;
			}
		}
	}

	if (rmi4_data->board->power_down_enable) {
		retval = synaptics_rmi4_reset_device(rmi4_data);
		if (retval < 0) {
			dev_err(&rmi4_data->i2c_client->dev,
				"%s: Failed to issue reset command, rc = %d\n",
					__func__, retval);
			return retval;
		}
	}

	return 0;
+0 −4
Original line number Diff line number Diff line
@@ -35,11 +35,8 @@ struct synaptics_rmi4_capacitance_button_map {
 * struct synaptics_rmi4_platform_data - rmi4 platform data
 * @x_flip: x flip flag
 * @y_flip: y flip flag
 * @i2c_pull_up: pull up i2c bus with regulator
 * @power_down_enable: enable complete regulator shutdown in suspend
 * @irq_gpio: attention interrupt gpio
 * @irq_flags: flags used by the irq
 * @reset_flags: flags used by reset line
 * @reset_gpio: reset gpio
 * @panel_x: panel maximum values on the x
 * @panel_y: panel maximum values on the y
@@ -50,7 +47,6 @@ struct synaptics_rmi4_platform_data {
	bool x_flip;
	bool y_flip;
	bool i2c_pull_up;
	bool power_down_enable;
	unsigned irq_gpio;
	u32 irq_flags;
	u32 reset_flags;