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

Commit 516d314d authored by Linux Build Service Account's avatar Linux Build Service Account
Browse files

Merge 77d80f4d on remote branch

Change-Id: I63a9f0857622166abfbb863588ab7fc3e685cb0f
parents 96961d17 77d80f4d
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
/* Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
/* Copyright (c) 2017-2020, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -39,8 +39,6 @@
	qcom,vddp-ref-clk-supply = <&pm660_l1>;
	qcom,vddp-ref-clk-max-microamp = <100>;

	force-ufshc-probe;

	status = "ok";
};

+27 −2
Original line number Diff line number Diff line
/* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
/* Copyright (c) 2016-2020, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -51,6 +51,7 @@ void cam_req_mgr_core_link_reset(struct cam_req_mgr_core_link *link)
	link->initial_skip = true;
	link->sof_timestamp = 0;
	link->prev_sof_timestamp = 0;
	link->num_sof_src = 0;
}

void cam_req_mgr_handle_core_shutdown(void)
@@ -2475,7 +2476,8 @@ static int cam_req_mgr_cb_notify_trigger(
	struct cam_req_mgr_core_link    *link = NULL;
	struct cam_req_mgr_trigger_notify   *notify_trigger;
	struct crm_task_payload         *task_data;

	bool   send_sof = true;
	int    i = 0;
	if (!trigger_data) {
		CAM_ERR(CAM_CRM, "sof_data is NULL");
		rc = -EINVAL;
@@ -2489,6 +2491,23 @@ static int cam_req_mgr_cb_notify_trigger(
		rc = -EINVAL;
		goto end;
	}
	for (i = 0; i < link->num_sof_src; i++) {
		if (link->dev_sof_evt[i].dev_hdl == trigger_data->dev_hdl) {
			if (link->dev_sof_evt[i].sof_done == false)
				link->dev_sof_evt[i].sof_done = true;
			else
				CAM_DBG(CAM_CRM, "Received Surious SOF");
		}	else if (link->dev_sof_evt[i].sof_done == false) {
			send_sof = false;
		}

	}

	if (!send_sof)
		return 0;

	for (i = 0; i < link->num_sof_src; i++)
		link->dev_sof_evt[i].sof_done = false;

	spin_lock_bh(&link->link_state_spin_lock);
	if (link->state < CAM_CRM_LINK_STATE_READY) {
@@ -2637,6 +2656,12 @@ static int __cam_req_mgr_setup_link_info(struct cam_req_mgr_core_link *link,

			subscribe_event |= (uint32_t)dev->dev_info.trigger;
		}
		if (dev->dev_info.dev_id == CAM_REQ_MGR_DEVICE_IFE) {
			link->dev_sof_evt[link->num_sof_src].dev_hdl =
			dev->dev_hdl;
			link->dev_sof_evt[link->num_sof_src].sof_done = false;
			link->num_sof_src++;
		}
	}

	link->subscribe_event = subscribe_event;
+13 −1
Original line number Diff line number Diff line
/* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
/* Copyright (c) 2016-2020, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -286,6 +286,16 @@ struct cam_req_mgr_connected_device {
	void                           *parent;
};

/**
 * struct cam_req_mgr_ife_sof_evt
 * - Track SOF Events from IFE
 * @ dev_hdl  : device handle
 * @ sof_done : tracks sof for individual IFE
 */
struct cam_req_mgr_dev_sof_evt {
	int32_t dev_hdl;
	bool    sof_done;
};
/**
 * struct cam_req_mgr_core_link
 * -  Link Properties
@@ -358,6 +368,8 @@ struct cam_req_mgr_core_link {
	int64_t                              initial_sync_req;
	uint64_t                             sof_timestamp;
	uint64_t                             prev_sof_timestamp;
	int32_t                              num_sof_src;
	struct cam_req_mgr_dev_sof_evt       dev_sof_evt[3];
};

/**
+5 −2
Original line number Diff line number Diff line
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
/* Copyright (c) 2012-2018, 2020, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -1065,7 +1065,10 @@ static int __ipa_add_flt_rule(struct ipa_flt_tbl *tbl, enum ipa_ip_type ip,
	} else {
		list_add(&entry->link, &tbl->head_flt_rule_list);
	}
	if (tbl->rule_cnt < IPA_RULE_CNT_MAX)
		tbl->rule_cnt++;
	else
		return -EINVAL;
	if (entry->rt_tbl)
		entry->rt_tbl->ref_cnt++;
	id = ipa_id_alloc(entry);
+2 −1
Original line number Diff line number Diff line
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
/* Copyright (c) 2012-2018, 2020, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -211,6 +211,7 @@
#define IPA2_ACTIVE_CLIENTS_LOG_LINE_LEN 96
#define IPA2_ACTIVE_CLIENTS_LOG_HASHTABLE_SIZE 50
#define IPA2_ACTIVE_CLIENTS_LOG_NAME_LEN 40
#define IPA_RULE_CNT_MAX 512

struct ipa2_active_client_htable_entry {
	struct hlist_node list;
Loading