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

Commit b6f86fdd authored by Shankar Ravi's avatar Shankar Ravi Committed by Gerrit - the friendly Code Review server
Browse files

msm: camera: correct CSL packet header offset



Correct CSL packet header offset in order to parse
packet content correctly.

Change-Id: I4db746806087236553329ba429d44bd5205947f8
Signed-off-by: default avatarShankar Ravi <rshankar@codeaurora.org>
Signed-off-by: default avatarJigarkumar Zala <jzala@codeaurora.org>
parent 249ccba4
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -67,7 +67,7 @@ static int cam_flash_ops(struct cam_flash_ctrl *flash_ctrl,
	}

	soc_private = (struct cam_flash_private_soc *)
		&flash_ctrl->soc_info.soc_private;
		flash_ctrl->soc_info.soc_private;

	if (op == CAMERA_SENSOR_FLASH_OP_FIRELOW) {
		for (i = 0; i < flash_ctrl->torch_num_sources; i++) {
@@ -349,7 +349,7 @@ int cam_flash_apply_setting(struct cam_flash_ctrl *fctrl,
		} else if ((flash_data->opcode ==
			CAMERA_SENSOR_FLASH_OP_FIRELOW) &&
			(flash_data->cmn_attr.is_settings_valid)) {
			/* Turn Off Flash */
			/* Turn On Torch */
			if (fctrl->flash_state == CAM_FLASH_STATE_INIT) {
				rc = cam_flash_low(fctrl, flash_data);
				if (rc) {
@@ -427,7 +427,15 @@ int cam_flash_parser(struct cam_flash_ctrl *fctrl, void *arg)
		return rc;
	}

	csl_packet = (struct cam_packet *)generic_ptr;
	if (config.offset > len_of_buffer) {
		CAM_ERR(CAM_FLASH,
			"offset is out of bounds: offset: %lld len: %zu",
			config.offset, len_of_buffer);
		return -EINVAL;
	}

	/* Add offset to the flash csl header */
	csl_packet = (struct cam_packet *)(generic_ptr + config.offset);

	switch (csl_packet->header.op_code & 0xFFFFFF) {
	case CAM_FLASH_PACKET_OPCODE_INIT: {