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

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

Merge "msm: camera: reqmgr: skip re_apply of ISP for buf_done request" into camera-kernel.lnx.1.0

parents 0111e59a b679a203
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -2446,6 +2446,14 @@ static int __cam_isp_ctx_apply_req_in_activated_state(
		goto end;
	}

	if (apply->re_apply)
		if (apply->request_id <= ctx_isp->last_applied_req_id) {
			CAM_INFO(CAM_ISP,
				"Trying to reapply the same request %llu again",
				apply->request_id);
			return 0;
		}

	spin_lock_bh(&ctx->lock);
	req = list_first_entry(&ctx->pending_req_list, struct cam_ctx_request,
		list);
+5 −0
Original line number Diff line number Diff line
@@ -659,6 +659,11 @@ static int __cam_req_mgr_send_req(struct cam_req_mgr_core_link *link,

	apply_req.link_hdl = link->link_hdl;
	apply_req.report_if_bubble = 0;
	apply_req.re_apply = false;
	if (link->retry_cnt > 0) {
		if (g_crm_core_dev->recovery_on_apply_fail)
			apply_req.re_apply = true;
	}

	for (i = 0; i < link->num_devs; i++) {
		dev = &link->l_dev[i];
+2 −0
Original line number Diff line number Diff line
@@ -408,10 +408,12 @@ struct cam_req_mgr_core_session {
 * - Core camera request manager data struct
 * @session_head : list head holding sessions
 * @crm_lock     : mutex lock to protect session creation & destruction
 * @recovery_on_apply_fail : Recovery on apply failure using debugfs.
 */
struct cam_req_mgr_core_device {
	struct list_head             session_head;
	struct mutex                 crm_lock;
	bool                         recovery_on_apply_fail;
};

/**
+8 −1
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.
 * Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
 */

#include "cam_req_mgr_debug.h"
@@ -128,5 +128,12 @@ int cam_req_mgr_debug_register(struct cam_req_mgr_core_device *core_dev)
		debugfs_root, core_dev, &bubble_recovery))
		return -ENOMEM;

	if (!debugfs_create_bool("recovery_on_apply_fail",
		0644,
		debugfs_root,
		&core_dev->recovery_on_apply_fail)) {
		return -ENOMEM;
	}

	return 0;
}
+2 −0
Original line number Diff line number Diff line
@@ -325,6 +325,7 @@ struct cam_req_mgr_core_dev_link_setup {
 * @request_id       : request id settings to apply
 * @report_if_bubble : report to crm if failure in applying
 * @trigger_point    : the trigger point of this apply
 * @re_apply         : to skip re_apply for buf_done request
 *
 */
struct cam_req_mgr_apply_request {
@@ -333,6 +334,7 @@ struct cam_req_mgr_apply_request {
	uint64_t   request_id;
	int32_t    report_if_bubble;
	uint32_t   trigger_point;
	bool       re_apply;
};

/**