Loading drivers/media/platform/msm/camera/cam_sensor_module/cam_eeprom/cam_eeprom_core.c +65 −37 Original line number Diff line number Diff line Loading @@ -311,6 +311,8 @@ int32_t cam_eeprom_parse_read_memory_map(struct device_node *of_node, data_mem_free: kfree(e_ctrl->cal_data.mapdata); kfree(e_ctrl->cal_data.map); e_ctrl->cal_data.num_data = 0; e_ctrl->cal_data.num_map = 0; return rc; } Loading Loading @@ -484,7 +486,7 @@ static int32_t cam_eeprom_init_pkt_parser(struct cam_eeprom_ctrl_t *e_ctrl, uint16_t cmd_length_in_bytes = 0; struct cam_cmd_i2c_info *i2c_info = NULL; int num_map = -1; struct cam_eeprom_memory_map_t *map; struct cam_eeprom_memory_map_t *map = NULL; struct cam_eeprom_soc_private *soc_private = (struct cam_eeprom_soc_private *)e_ctrl->soc_info.soc_private; struct cam_sensor_power_ctrl_t *power_info = &soc_private->power_info; Loading Loading @@ -665,13 +667,21 @@ static int32_t cam_eeprom_pkt_parse(struct cam_eeprom_ctrl_t *e_ctrl, void *arg) switch (csl_packet->header.op_code & 0xFFFFFF) { case CAM_EEPROM_PACKET_OPCODE_INIT: if (e_ctrl->userspace_probe == false) { rc = cam_eeprom_parse_read_memory_map( e_ctrl->pdev->dev.of_node, e_ctrl); if (rc < 0) { CAM_ERR(CAM_EEPROM, "Failed: rc : %d", rc); return rc; } rc = cam_eeprom_get_cal_data(e_ctrl, csl_packet); CAM_ERR(CAM_EEPROM, "Eeprom already probed at kernel boot"); rc = -EINVAL; kfree(e_ctrl->cal_data.mapdata); kfree(e_ctrl->cal_data.map); e_ctrl->cal_data.num_data = 0; e_ctrl->cal_data.num_map = 0; CAM_DBG(CAM_EEPROM, "Returning the data using kernel probe"); break; } if (e_ctrl->cal_data.num_data == 0) { rc = cam_eeprom_init_pkt_parser(e_ctrl, csl_packet); if (rc) { CAM_ERR(CAM_EEPROM, Loading Loading @@ -703,15 +713,14 @@ static int32_t cam_eeprom_pkt_parse(struct cam_eeprom_ctrl_t *e_ctrl, void *arg) rc = cam_eeprom_get_cal_data(e_ctrl, csl_packet); rc = cam_eeprom_power_down(e_ctrl); } else { CAM_DBG(CAM_EEPROM, "Already read eeprom"); } kfree(e_ctrl->cal_data.mapdata); kfree(e_ctrl->cal_data.map); e_ctrl->cal_data.num_data = 0; e_ctrl->cal_data.num_map = 0; break; default: break; } kfree(e_ctrl->cal_data.mapdata); kfree(e_ctrl->cal_data.map); return rc; power_down: rc = cam_eeprom_power_down(e_ctrl); Loading @@ -719,6 +728,8 @@ static int32_t cam_eeprom_pkt_parse(struct cam_eeprom_ctrl_t *e_ctrl, void *arg) kfree(e_ctrl->cal_data.mapdata); error: kfree(e_ctrl->cal_data.map); e_ctrl->cal_data.num_data = 0; e_ctrl->cal_data.num_map = 0; return rc; } Loading Loading @@ -765,6 +776,23 @@ int32_t cam_eeprom_driver_cmd(struct cam_eeprom_ctrl_t *e_ctrl, void *arg) goto release_mutex; } break; case CAM_RELEASE_DEV: if (e_ctrl->bridge_intf.device_hdl == -1) { CAM_ERR(CAM_EEPROM, "Invalid Handles: link hdl: %d device hdl: %d", e_ctrl->bridge_intf.device_hdl, e_ctrl->bridge_intf.link_hdl); rc = -EINVAL; goto release_mutex; } rc = cam_destroy_device_hdl(e_ctrl->bridge_intf.device_hdl); if (rc < 0) CAM_ERR(CAM_EEPROM, "failed in destroying the device hdl"); e_ctrl->bridge_intf.device_hdl = -1; e_ctrl->bridge_intf.link_hdl = -1; e_ctrl->bridge_intf.session_hdl = -1; break; case CAM_CONFIG_DEV: rc = cam_eeprom_pkt_parse(e_ctrl, arg); if (rc) { Loading drivers/media/platform/msm/camera/cam_sensor_module/cam_eeprom/cam_eeprom_dev.c +0 −31 Original line number Diff line number Diff line Loading @@ -181,15 +181,6 @@ static int cam_eeprom_i2c_driver_probe(struct i2c_client *client, goto free_soc; } if (e_ctrl->userspace_probe == false) { rc = cam_eeprom_parse_read_memory_map(soc_info->dev->of_node, e_ctrl); if (rc) { CAM_ERR(CAM_EEPROM, "failed: read mem map rc %d", rc); goto free_soc; } } soc_private = (struct cam_eeprom_soc_private *)(id->driver_data); if (!soc_private) { CAM_ERR(CAM_EEPROM, "board info NULL"); Loading Loading @@ -248,8 +239,6 @@ static int cam_eeprom_i2c_driver_remove(struct i2c_client *client) return -EINVAL; } kfree(e_ctrl->cal_data.mapdata); kfree(e_ctrl->cal_data.map); if (soc_private) { kfree(soc_private->power_info.gpio_num_info); kfree(soc_private); Loading Loading @@ -319,15 +308,6 @@ static int cam_eeprom_spi_setup(struct spi_device *spi) goto board_free; } if (e_ctrl->userspace_probe == false) { rc = cam_eeprom_parse_read_memory_map(soc_info->dev->of_node, e_ctrl); if (rc) { CAM_ERR(CAM_EEPROM, "failed: read mem map rc %d", rc); goto board_free; } } rc = cam_eeprom_init_subdev(e_ctrl); if (rc) goto board_free; Loading Loading @@ -381,8 +361,6 @@ static int cam_eeprom_spi_driver_remove(struct spi_device *sdev) } kfree(e_ctrl->io_master_info.spi_client); kfree(e_ctrl->cal_data.mapdata); kfree(e_ctrl->cal_data.map); soc_private = (struct cam_eeprom_soc_private *)e_ctrl->soc_info.soc_private; if (soc_private) { Loading Loading @@ -440,15 +418,6 @@ static int32_t cam_eeprom_platform_driver_probe( goto free_soc; } if (e_ctrl->userspace_probe == false) { rc = cam_eeprom_parse_read_memory_map(pdev->dev.of_node, e_ctrl); if (rc) { CAM_ERR(CAM_EEPROM, "failed: read mem map rc %d", rc); goto free_soc; } } rc = cam_eeprom_init_subdev(e_ctrl); if (rc) goto free_soc; Loading Loading
drivers/media/platform/msm/camera/cam_sensor_module/cam_eeprom/cam_eeprom_core.c +65 −37 Original line number Diff line number Diff line Loading @@ -311,6 +311,8 @@ int32_t cam_eeprom_parse_read_memory_map(struct device_node *of_node, data_mem_free: kfree(e_ctrl->cal_data.mapdata); kfree(e_ctrl->cal_data.map); e_ctrl->cal_data.num_data = 0; e_ctrl->cal_data.num_map = 0; return rc; } Loading Loading @@ -484,7 +486,7 @@ static int32_t cam_eeprom_init_pkt_parser(struct cam_eeprom_ctrl_t *e_ctrl, uint16_t cmd_length_in_bytes = 0; struct cam_cmd_i2c_info *i2c_info = NULL; int num_map = -1; struct cam_eeprom_memory_map_t *map; struct cam_eeprom_memory_map_t *map = NULL; struct cam_eeprom_soc_private *soc_private = (struct cam_eeprom_soc_private *)e_ctrl->soc_info.soc_private; struct cam_sensor_power_ctrl_t *power_info = &soc_private->power_info; Loading Loading @@ -665,13 +667,21 @@ static int32_t cam_eeprom_pkt_parse(struct cam_eeprom_ctrl_t *e_ctrl, void *arg) switch (csl_packet->header.op_code & 0xFFFFFF) { case CAM_EEPROM_PACKET_OPCODE_INIT: if (e_ctrl->userspace_probe == false) { rc = cam_eeprom_parse_read_memory_map( e_ctrl->pdev->dev.of_node, e_ctrl); if (rc < 0) { CAM_ERR(CAM_EEPROM, "Failed: rc : %d", rc); return rc; } rc = cam_eeprom_get_cal_data(e_ctrl, csl_packet); CAM_ERR(CAM_EEPROM, "Eeprom already probed at kernel boot"); rc = -EINVAL; kfree(e_ctrl->cal_data.mapdata); kfree(e_ctrl->cal_data.map); e_ctrl->cal_data.num_data = 0; e_ctrl->cal_data.num_map = 0; CAM_DBG(CAM_EEPROM, "Returning the data using kernel probe"); break; } if (e_ctrl->cal_data.num_data == 0) { rc = cam_eeprom_init_pkt_parser(e_ctrl, csl_packet); if (rc) { CAM_ERR(CAM_EEPROM, Loading Loading @@ -703,15 +713,14 @@ static int32_t cam_eeprom_pkt_parse(struct cam_eeprom_ctrl_t *e_ctrl, void *arg) rc = cam_eeprom_get_cal_data(e_ctrl, csl_packet); rc = cam_eeprom_power_down(e_ctrl); } else { CAM_DBG(CAM_EEPROM, "Already read eeprom"); } kfree(e_ctrl->cal_data.mapdata); kfree(e_ctrl->cal_data.map); e_ctrl->cal_data.num_data = 0; e_ctrl->cal_data.num_map = 0; break; default: break; } kfree(e_ctrl->cal_data.mapdata); kfree(e_ctrl->cal_data.map); return rc; power_down: rc = cam_eeprom_power_down(e_ctrl); Loading @@ -719,6 +728,8 @@ static int32_t cam_eeprom_pkt_parse(struct cam_eeprom_ctrl_t *e_ctrl, void *arg) kfree(e_ctrl->cal_data.mapdata); error: kfree(e_ctrl->cal_data.map); e_ctrl->cal_data.num_data = 0; e_ctrl->cal_data.num_map = 0; return rc; } Loading Loading @@ -765,6 +776,23 @@ int32_t cam_eeprom_driver_cmd(struct cam_eeprom_ctrl_t *e_ctrl, void *arg) goto release_mutex; } break; case CAM_RELEASE_DEV: if (e_ctrl->bridge_intf.device_hdl == -1) { CAM_ERR(CAM_EEPROM, "Invalid Handles: link hdl: %d device hdl: %d", e_ctrl->bridge_intf.device_hdl, e_ctrl->bridge_intf.link_hdl); rc = -EINVAL; goto release_mutex; } rc = cam_destroy_device_hdl(e_ctrl->bridge_intf.device_hdl); if (rc < 0) CAM_ERR(CAM_EEPROM, "failed in destroying the device hdl"); e_ctrl->bridge_intf.device_hdl = -1; e_ctrl->bridge_intf.link_hdl = -1; e_ctrl->bridge_intf.session_hdl = -1; break; case CAM_CONFIG_DEV: rc = cam_eeprom_pkt_parse(e_ctrl, arg); if (rc) { Loading
drivers/media/platform/msm/camera/cam_sensor_module/cam_eeprom/cam_eeprom_dev.c +0 −31 Original line number Diff line number Diff line Loading @@ -181,15 +181,6 @@ static int cam_eeprom_i2c_driver_probe(struct i2c_client *client, goto free_soc; } if (e_ctrl->userspace_probe == false) { rc = cam_eeprom_parse_read_memory_map(soc_info->dev->of_node, e_ctrl); if (rc) { CAM_ERR(CAM_EEPROM, "failed: read mem map rc %d", rc); goto free_soc; } } soc_private = (struct cam_eeprom_soc_private *)(id->driver_data); if (!soc_private) { CAM_ERR(CAM_EEPROM, "board info NULL"); Loading Loading @@ -248,8 +239,6 @@ static int cam_eeprom_i2c_driver_remove(struct i2c_client *client) return -EINVAL; } kfree(e_ctrl->cal_data.mapdata); kfree(e_ctrl->cal_data.map); if (soc_private) { kfree(soc_private->power_info.gpio_num_info); kfree(soc_private); Loading Loading @@ -319,15 +308,6 @@ static int cam_eeprom_spi_setup(struct spi_device *spi) goto board_free; } if (e_ctrl->userspace_probe == false) { rc = cam_eeprom_parse_read_memory_map(soc_info->dev->of_node, e_ctrl); if (rc) { CAM_ERR(CAM_EEPROM, "failed: read mem map rc %d", rc); goto board_free; } } rc = cam_eeprom_init_subdev(e_ctrl); if (rc) goto board_free; Loading Loading @@ -381,8 +361,6 @@ static int cam_eeprom_spi_driver_remove(struct spi_device *sdev) } kfree(e_ctrl->io_master_info.spi_client); kfree(e_ctrl->cal_data.mapdata); kfree(e_ctrl->cal_data.map); soc_private = (struct cam_eeprom_soc_private *)e_ctrl->soc_info.soc_private; if (soc_private) { Loading Loading @@ -440,15 +418,6 @@ static int32_t cam_eeprom_platform_driver_probe( goto free_soc; } if (e_ctrl->userspace_probe == false) { rc = cam_eeprom_parse_read_memory_map(pdev->dev.of_node, e_ctrl); if (rc) { CAM_ERR(CAM_EEPROM, "failed: read mem map rc %d", rc); goto free_soc; } } rc = cam_eeprom_init_subdev(e_ctrl); if (rc) goto free_soc; Loading