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

Commit f32920bf authored by Karthik Anantha Ram's avatar Karthik Anantha Ram Committed by Gerrit - the friendly Code Review server
Browse files

msm: camera: eeprom: Correct free call for power settings



Currently memory for the power settings is allocated whenever
we receive an init packet in packet parser but that memory is
freed only during device close leading to repeated allocations.
This change ensures that we free the memory as soon as we power
down the device avoiding repeated allocations of memory.

Change-Id: I7fac6498c9403e8ae913dfc4f20f9aa8f0bdb999
Signed-off-by: default avatarKarthik Anantha Ram <kartanan@codeaurora.org>
parent 1d993caf
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -781,6 +781,10 @@ static int32_t cam_eeprom_pkt_parse(struct cam_eeprom_ctrl_t *e_ctrl, void *arg)
		e_ctrl->cam_eeprom_state = CAM_EEPROM_ACQUIRE;
		kfree(e_ctrl->cal_data.mapdata);
		kfree(e_ctrl->cal_data.map);
		kfree(power_info->power_setting);
		kfree(power_info->power_down_setting);
		power_info->power_setting = NULL;
		power_info->power_down_setting = NULL;
		e_ctrl->cal_data.num_data = 0;
		e_ctrl->cal_data.num_map = 0;
		break;
@@ -795,6 +799,8 @@ static int32_t cam_eeprom_pkt_parse(struct cam_eeprom_ctrl_t *e_ctrl, void *arg)
error:
	kfree(power_info->power_setting);
	kfree(power_info->power_down_setting);
	power_info->power_setting = NULL;
	power_info->power_down_setting = NULL;
	kfree(e_ctrl->cal_data.map);
	e_ctrl->cal_data.num_data = 0;
	e_ctrl->cal_data.num_map = 0;
@@ -830,6 +836,8 @@ void cam_eeprom_shutdown(struct cam_eeprom_ctrl_t *e_ctrl)

		kfree(power_info->power_setting);
		kfree(power_info->power_down_setting);
		power_info->power_setting = NULL;
		power_info->power_down_setting = NULL;
	}

	e_ctrl->cam_eeprom_state = CAM_EEPROM_INIT;