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

Commit afd06d21 authored by Camera Software Integration's avatar Camera Software Integration Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: camera: cdm: Add a check for fifo list in cdm workqueue" into camera-kernel.lnx.3.1

parents 46b5f2a7 dcc74ba3
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -1063,6 +1063,9 @@ static void cam_hw_cdm_reset_cleanup(
			&core->bl_fifo[i].bl_request_list, entry) {
			if (node->request_type ==
					CAM_HW_CDM_BL_CB_CLIENT) {
				CAM_DBG(CAM_CDM,
					"Notifying client %d for tag %d",
					node->client_hdl, node->bl_tag);
				if (flush_hw)
					cam_cdm_notify_clients(cdm_hw,
						(node->client_hdl == handle) ?
@@ -1125,6 +1128,17 @@ static void cam_hw_cdm_work(struct work_struct *work)
			if (core->bl_fifo[payload->fifo_idx].work_record)
				core->bl_fifo[payload->fifo_idx].work_record--;

			if (list_empty(&core->bl_fifo[payload->fifo_idx]
					.bl_request_list)) {
				CAM_INFO(CAM_CDM,
					"Fifo list empty, idx %d tag %d arb %d",
					payload->fifo_idx, payload->irq_data,
					core->arbitration);
				mutex_unlock(&core->bl_fifo[payload->fifo_idx]
						.fifo_lock);
				return;
			}

			if (core->bl_fifo[payload->fifo_idx]
				.last_bl_tag_done !=
				payload->irq_data) {
@@ -1157,7 +1171,7 @@ static void cam_hw_cdm_work(struct work_struct *work)
					node = NULL;
				}
			} else {
				CAM_DBG(CAM_CDM,
				CAM_INFO(CAM_CDM,
					"Skip GenIRQ, tag 0x%x fifo %d",
					payload->irq_data, payload->fifo_idx);
			}