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

Commit c2af6101 authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "UPSTREAM commit '4593b601' on 12/21"

parents f9d8e0ff 97f759c9
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -187,6 +187,11 @@ Third Level Node - CAM AXI Port properties
  Value type: <string>
  Definition: Name of the AXI Port.

- ib-bw-voting-needed
  Usage: optional
  Value type: <bool>
  Definition: Determines if this port votes for ib bw dynamically.

===================================================================
Fourth Level Node - CAM AXI Bus properties
===================================================================
+2 −0
Original line number Diff line number Diff line
@@ -1134,6 +1134,7 @@
				 * (READ and PIX ports)
				 */
				qcom,axi-port-name = "cam_hf_0";
				ib-bw-voting-needed;
				qcom,axi-port-mnoc {
					qcom,msm-bus,name = "cam_hf_0_mnoc";
					qcom,msm-bus-vector-dyn-vote;
@@ -1160,6 +1161,7 @@
			qcom,axi-port2 {
				/* this port is for rdi only WR*/
				qcom,axi-port-name = "cam_hf_1";
				ib-bw-voting-needed;
				qcom,axi-port-mnoc {
					qcom,msm-bus,name = "cam_hf_1_mnoc";
					qcom,msm-bus-vector-dyn-vote;
+2 −0
Original line number Diff line number Diff line
@@ -589,6 +589,7 @@
		qcom,axi-port-list {
			qcom,axi-port1 {
				qcom,axi-port-name = "cam_hf_1";
				ib-bw-voting-needed;
				qcom,axi-port-mnoc {
					qcom,msm-bus,name = "cam_hf_1_mnoc";
					qcom,msm-bus-vector-dyn-vote;
@@ -614,6 +615,7 @@
			};
			qcom,axi-port2 {
				qcom,axi-port-name = "cam_hf_2";
				ib-bw-voting-needed;
				qcom,axi-port-mnoc {
					qcom,msm-bus,name = "cam_hf_2_mnoc";
					qcom,msm-bus-vector-dyn-vote;
+13 −3
Original line number Diff line number Diff line
@@ -313,6 +313,9 @@ static int cam_cpas_util_axi_setup(struct cam_cpas *cpas_core,
			goto mnoc_node_get_fail;
		}
		axi_port->axi_port_mnoc_node = axi_port_mnoc_node;
		axi_port->ib_bw_voting_needed =
			of_property_read_bool(axi_port_node,
				"ib-bw-voting-needed");

		rc = cam_cpas_util_register_bus_client(soc_info,
			axi_port_mnoc_node, &axi_port->mnoc_bus);
@@ -662,12 +665,19 @@ static int cam_cpas_util_apply_client_axi_vote(
		axi_port->camnoc_bus.src, axi_port->camnoc_bus.dst,
		camnoc_bw, mnoc_bw);

	if (axi_port->ib_bw_voting_needed)
		rc = cam_cpas_util_vote_bus_client_bw(&axi_port->mnoc_bus,
			mnoc_bw, mnoc_bw, false);
	else
		rc = cam_cpas_util_vote_bus_client_bw(&axi_port->mnoc_bus,
			mnoc_bw, 0, false);

	if (rc) {
		CAM_ERR(CAM_CPAS,
			"Failed in mnoc vote ab[%llu] ib[%llu] rc=%d",
			mnoc_bw, mnoc_bw, rc);
			mnoc_bw,
			(axi_port->ib_bw_voting_needed ? mnoc_bw : 0),
			rc);
		goto unlock_axi_port;
	}

+2 −0
Original line number Diff line number Diff line
@@ -149,6 +149,7 @@ struct cam_cpas_bus_client {
 * @camnoc_bus: CAMNOC bus client info for this port
 * @mnoc_bus: MNOC bus client info for this port
 * @axi_port_name: Name of this AXI port
 * @ib_bw_voting_needed: if this port can update ib bw dynamically
 * @axi_port_node: Node representing this AXI Port
 * @axi_port_mnoc_node: Node representing mnoc in this AXI Port
 * @axi_port_camnoc_node: Node representing camnoc in this AXI Port
@@ -161,6 +162,7 @@ struct cam_cpas_axi_port {
	struct cam_cpas_bus_client camnoc_bus;
	struct cam_cpas_bus_client mnoc_bus;
	const char *axi_port_name;
	bool ib_bw_voting_needed;
	struct device_node *axi_port_node;
	struct device_node *axi_port_mnoc_node;
	struct device_node *axi_port_camnoc_node;
Loading