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

Commit 9d5db849 authored by Xu Han's avatar Xu Han
Browse files

msm: sensor: restore slave address after I2C read



When sensor read I2C with other slave address, restore
its original slave address after read.

Change-Id: I9271f5e1f64015e17a42c8fb52b96aacda4e6cfb
Signed-off-by: default avatarXu Han <hanxu@codeaurora.org>
parent 09deb55f
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -523,6 +523,13 @@ static int msm_sensor_config32(struct msm_sensor_ctrl_t *s_ctrl,
				s_ctrl->sensor_i2c_client,
				read_config.reg_addr,
				&local_data, read_config.data_type);
		if (s_ctrl->sensor_i2c_client->cci_client) {
			s_ctrl->sensor_i2c_client->cci_client->sid =
				orig_slave_addr;
		} else if (s_ctrl->sensor_i2c_client->client) {
			s_ctrl->sensor_i2c_client->client->addr =
				orig_slave_addr;
		}
		if (rc < 0) {
			pr_err("%s:%d: i2c_read failed\n", __func__, __LINE__);
			break;
@@ -914,6 +921,13 @@ int msm_sensor_config(struct msm_sensor_ctrl_t *s_ctrl, void __user *argp)
				s_ctrl->sensor_i2c_client,
				read_config.reg_addr,
				&local_data, read_config.data_type);
		if (s_ctrl->sensor_i2c_client->cci_client) {
			s_ctrl->sensor_i2c_client->cci_client->sid =
				orig_slave_addr;
		} else if (s_ctrl->sensor_i2c_client->client) {
			s_ctrl->sensor_i2c_client->client->addr =
				orig_slave_addr;
		}
		if (rc < 0) {
			pr_err("%s:%d: i2c_read failed\n", __func__, __LINE__);
			break;