Commit 015cd004 authored by Prashant Malani's avatar Prashant Malani Committed by Tzung-Bi Shih
Browse files

regulator: cros-ec: Use common cros_ec_command()



Reduce code duplication by using the common cros_ec_command() function
instead of the locally defined variant.

Cc: Stephen Boyd <swboyd@chromium.org>
Signed-off-by: default avatarPrashant Malani <pmalani@chromium.org>
Reviewed-by: default avatarStephen Boyd <swboyd@chromium.org>
Reviewed-by: default avatarGuenter Roeck <groeck@chromium.org>
Acked-by: default avatarMark Brown <broonie@kernel.org>
Signed-off-by: default avatarTzung-Bi Shih <tzungbi@kernel.org>
Link: https://lore.kernel.org/r/20220606201825.763788-2-pmalani@chromium.org
parent 8d597608
Loading
Loading
Loading
Loading
+12 −42
Original line number Diff line number Diff line
@@ -22,36 +22,6 @@ struct cros_ec_regulator_data {
	u16 num_voltages;
};

static int cros_ec_cmd(struct cros_ec_device *ec, u32 version, u32 command,
		       void *outdata, u32 outsize, void *indata, u32 insize)
{
	struct cros_ec_command *msg;
	int ret;

	msg = kzalloc(sizeof(*msg) + max(outsize, insize), GFP_KERNEL);
	if (!msg)
		return -ENOMEM;

	msg->version = version;
	msg->command = command;
	msg->outsize = outsize;
	msg->insize = insize;

	if (outdata && outsize > 0)
		memcpy(msg->data, outdata, outsize);

	ret = cros_ec_cmd_xfer_status(ec, msg);
	if (ret < 0)
		goto cleanup;

	if (insize)
		memcpy(indata, msg->data, insize);

cleanup:
	kfree(msg);
	return ret;
}

static int cros_ec_regulator_enable(struct regulator_dev *dev)
{
	struct cros_ec_regulator_data *data = rdev_get_drvdata(dev);
@@ -60,7 +30,7 @@ static int cros_ec_regulator_enable(struct regulator_dev *dev)
		.enable = 1,
	};

	return cros_ec_cmd(data->ec_dev, 0, EC_CMD_REGULATOR_ENABLE, &cmd,
	return cros_ec_command(data->ec_dev, 0, EC_CMD_REGULATOR_ENABLE, &cmd,
			       sizeof(cmd), NULL, 0);
}

@@ -72,7 +42,7 @@ static int cros_ec_regulator_disable(struct regulator_dev *dev)
		.enable = 0,
	};

	return cros_ec_cmd(data->ec_dev, 0, EC_CMD_REGULATOR_ENABLE, &cmd,
	return cros_ec_command(data->ec_dev, 0, EC_CMD_REGULATOR_ENABLE, &cmd,
			       sizeof(cmd), NULL, 0);
}

@@ -85,7 +55,7 @@ static int cros_ec_regulator_is_enabled(struct regulator_dev *dev)
	struct ec_response_regulator_is_enabled resp;
	int ret;

	ret = cros_ec_cmd(data->ec_dev, 0, EC_CMD_REGULATOR_IS_ENABLED, &cmd,
	ret = cros_ec_command(data->ec_dev, 0, EC_CMD_REGULATOR_IS_ENABLED, &cmd,
			      sizeof(cmd), &resp, sizeof(resp));
	if (ret < 0)
		return ret;
@@ -112,7 +82,7 @@ static int cros_ec_regulator_get_voltage(struct regulator_dev *dev)
	struct ec_response_regulator_get_voltage resp;
	int ret;

	ret = cros_ec_cmd(data->ec_dev, 0, EC_CMD_REGULATOR_GET_VOLTAGE, &cmd,
	ret = cros_ec_command(data->ec_dev, 0, EC_CMD_REGULATOR_GET_VOLTAGE, &cmd,
			      sizeof(cmd), &resp, sizeof(resp));
	if (ret < 0)
		return ret;
@@ -138,7 +108,7 @@ static int cros_ec_regulator_set_voltage(struct regulator_dev *dev, int min_uV,
	if (min_mV > max_mV)
		return -EINVAL;

	return cros_ec_cmd(data->ec_dev, 0, EC_CMD_REGULATOR_SET_VOLTAGE, &cmd,
	return cros_ec_command(data->ec_dev, 0, EC_CMD_REGULATOR_SET_VOLTAGE, &cmd,
			       sizeof(cmd), NULL, 0);
}

@@ -160,7 +130,7 @@ static int cros_ec_regulator_init_info(struct device *dev,
	struct ec_response_regulator_get_info resp;
	int ret;

	ret = cros_ec_cmd(data->ec_dev, 0, EC_CMD_REGULATOR_GET_INFO, &cmd,
	ret = cros_ec_command(data->ec_dev, 0, EC_CMD_REGULATOR_GET_INFO, &cmd,
			      sizeof(cmd), &resp, sizeof(resp));
	if (ret < 0)
		return ret;