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

Commit 8ab5203e authored by Srinu Gorle's avatar Srinu Gorle Committed by Rajeshwar Kurapaty
Browse files

msm: vidc: enable minimum bus vote



In msm8939, MM NOC default voting from SMMU driver side has been removed.
It is individual client responsibility to vote for bus before any DDR
transactions are initiated. when client calls vote bus with load of 0,
it is translating to an unvote_bus causing DDR transactions to fail.
Since it is target specific, added control to vote minimum bus bandwidth.

Change-Id: I246180c3e32ea791f6f7fc79d3796b0b873b4c2d
Signed-off-by: default avatarSrinu Gorle <sgorle@codeaurora.org>
parent c5bc590f
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -107,6 +107,8 @@ Optional properties:
- qcom,fw-bias = The address at which venus fw is loaded (manually).
- qcom,enable-idle-indicator = A bool to enable video hardware to generate
  idle message when it is in idle state.
- qcom,enable-minimum-voting = A bool to limit the bandwidth vote to the
  lowest vector over an active session.

Example:

+3 −0
Original line number Diff line number Diff line
@@ -673,6 +673,9 @@ int read_platform_resources_from_dt(
	res->sys_idle_indicator = of_property_read_bool(pdev->dev.of_node,
			"qcom,enable-idle-indicator");

	res->minimum_vote = of_property_read_bool(pdev->dev.of_node,
			"qcom,enable-minimum-voting");

	rc = msm_vidc_load_freq_table(res);
	if (rc) {
		dprintk(VIDC_ERR, "Failed to load freq table: %d\n", rc);
+1 −0
Original line number Diff line number Diff line
@@ -118,6 +118,7 @@ struct msm_vidc_platform_resources {
	struct clock_set clock_set;
	struct bus_set bus_set;
	bool dynamic_bw_update;
	bool minimum_vote;
	bool use_non_secure_pil;
	bool sw_power_collapsible;
	bool sys_idle_indicator;
+2 −1
Original line number Diff line number Diff line
@@ -944,7 +944,8 @@ static int venus_hfi_vote_buses(void *dev, struct vidc_bus_vote_data *data,
		 * just lower our ocmem vote to the lowest level.
		*/
		if (strnstr(bus->pdata->name, "ocmem",
					strlen(bus->pdata->name)))
					strlen(bus->pdata->name)) ||
					device->res->minimum_vote)
			bus_vector = bus_vector ?: 1;

		rc = msm_bus_scale_client_update_request(bus->priv, bus_vector);