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

Commit 60b01cab authored by Jeyaprakash Soundrapandian's avatar Jeyaprakash Soundrapandian Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: camera: crm: Send error notification for SOF freeze" into dev/msm-4.9-camx

parents 37746f3d 67fa2313
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -304,7 +304,7 @@ static void __cam_isp_ctx_send_sof_timestamp(
		ctx_isp->sof_timestamp_val);
	CAM_DBG(CAM_ISP, " sof status:%d", sof_event_status);

	if (cam_req_mgr_notify_frame_message(&req_msg,
	if (cam_req_mgr_notify_message(&req_msg,
		V4L_EVENT_CAM_REQ_MGR_SOF, V4L_EVENT_CAM_REQ_MGR_EVENT))
		CAM_ERR(CAM_ISP,
			"Error in notifying the sof time for req id:%lld",
+22 −3
Original line number Diff line number Diff line
@@ -812,13 +812,32 @@ static void __cam_req_mgr_sof_freeze(unsigned long data)
{
	struct cam_req_mgr_timer     *timer = (struct cam_req_mgr_timer *)data;
	struct cam_req_mgr_core_link    *link = NULL;
	struct cam_req_mgr_core_session *session = NULL;
	struct cam_req_mgr_message       msg;

	if (!timer) {
		CAM_ERR(CAM_CRM, "NULL timer");
		return;
	}
	link = (struct cam_req_mgr_core_link *)timer->parent;
	CAM_ERR(CAM_CRM, "SOF freeze for link %x", link->link_hdl);
	session = (struct cam_req_mgr_core_session *)link->parent;

	CAM_ERR(CAM_CRM, "SOF freeze for session %d link 0x%x",
		session->session_hdl, link->link_hdl);

	memset(&msg, 0, sizeof(msg));

	msg.session_hdl = session->session_hdl;
	msg.u.err_msg.error_type = CAM_REQ_MGR_ERROR_TYPE_DEVICE;
	msg.u.err_msg.request_id = 0;
	msg.u.err_msg.link_hdl   = link->link_hdl;


	if (cam_req_mgr_notify_message(&msg,
		V4L_EVENT_CAM_REQ_MGR_ERROR, V4L_EVENT_CAM_REQ_MGR_EVENT))
		CAM_ERR(CAM_CRM,
			"Error notifying SOF freeze for session %d link 0x%x",
			session->session_hdl, link->link_hdl);
}

/**
+2 −2
Original line number Diff line number Diff line
@@ -462,7 +462,7 @@ static int cam_video_device_setup(void)
	return rc;
}

int cam_req_mgr_notify_frame_message(struct cam_req_mgr_message *msg,
int cam_req_mgr_notify_message(struct cam_req_mgr_message *msg,
	uint32_t id,
	uint32_t type)
{
@@ -481,7 +481,7 @@ int cam_req_mgr_notify_frame_message(struct cam_req_mgr_message *msg,

	return 0;
}
EXPORT_SYMBOL(cam_req_mgr_notify_frame_message);
EXPORT_SYMBOL(cam_req_mgr_notify_message);

void cam_video_device_cleanup(void)
{
+1 −1
Original line number Diff line number Diff line
@@ -43,7 +43,7 @@ struct cam_req_mgr_device {
#define CAM_REQ_MGR_GET_PAYLOAD_PTR(ev, type)        \
	(type *)((char *)ev.u.data)

int cam_req_mgr_notify_frame_message(struct cam_req_mgr_message *msg,
int cam_req_mgr_notify_message(struct cam_req_mgr_message *msg,
	uint32_t id,
	uint32_t type);

+2 −2
Original line number Diff line number Diff line
@@ -355,14 +355,14 @@ struct cam_mem_cache_ops_cmd {
 * @error_type: type of error
 * @request_id: request id of frame
 * @device_hdl: device handle
 * @reserved: reserved field
 * @linke_hdl: link_hdl
 * @resource_size: size of the resource
 */
struct cam_req_mgr_error_msg {
	uint32_t error_type;
	uint32_t request_id;
	int32_t device_hdl;
	int32_t reserved;
	int32_t link_hdl;
	uint64_t resource_size;
};