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

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

Merge "qcom_geni_se: Add a check in QUP common driver to vote for BW"

parents c405a688 5d5df09f
Loading
Loading
Loading
Loading
+13 −4
Original line number Diff line number Diff line
@@ -79,6 +79,8 @@ struct bus_vectors {
 * @num_usecases:	One usecase to vote for both QUPv3 clock and DDR paths.
 * @pdata:		To register our client handle with the ICB driver.
 * @update:		Usecase index for icb voting.
 * @vote_for_bw:	To check if we have to vote for BW or BCM threashold
			in ab/ib ICB voting.
 */
struct geni_se_device {
	struct device *dev;
@@ -114,6 +116,7 @@ struct geni_se_device {
	int num_usecases;
	struct msm_bus_scale_pdata *pdata;
	int update;
	bool vote_for_bw;
};

/* Offset of QUPV3 Hardware Version Register */
@@ -736,9 +739,11 @@ static int geni_se_rmv_ab_ib(struct geni_se_device *geni_se_dev,

	if (geni_se_dev->num_paths == 2) {
		geni_se_dev->pdata->usecase[new_update].vectors[0].ab  =
			CONV_TO_BW(geni_se_dev->cur_ab);
			geni_se_dev->vote_for_bw ?
			CONV_TO_BW(geni_se_dev->cur_ab) : geni_se_dev->cur_ab;
		geni_se_dev->pdata->usecase[new_update].vectors[0].ib  =
			CONV_TO_BW(geni_se_dev->cur_ib);
			geni_se_dev->vote_for_bw ?
			CONV_TO_BW(geni_se_dev->cur_ib) : geni_se_dev->cur_ib;
	}

	if (bus_bw_update && geni_se_dev->num_paths != 2)
@@ -887,9 +892,11 @@ static int geni_se_add_ab_ib(struct geni_se_device *geni_se_dev,

	if (geni_se_dev->num_paths == 2) {
		geni_se_dev->pdata->usecase[new_update].vectors[0].ab  =
			CONV_TO_BW(geni_se_dev->cur_ab);
			geni_se_dev->vote_for_bw ?
			CONV_TO_BW(geni_se_dev->cur_ab) : geni_se_dev->cur_ab;
		geni_se_dev->pdata->usecase[new_update].vectors[0].ib  =
			CONV_TO_BW(geni_se_dev->cur_ib);
			geni_se_dev->vote_for_bw ?
			CONV_TO_BW(geni_se_dev->cur_ib) : geni_se_dev->cur_ib;
	}

	if (bus_bw_update && geni_se_dev->num_paths != 2)
@@ -1803,6 +1810,8 @@ static int geni_se_probe(struct platform_device *pdev)
		}
	}

	geni_se_dev->vote_for_bw = of_property_read_bool(dev->of_node,
							"qcom,vote-for-bw");
	geni_se_dev->iommu_s1_bypass = of_property_read_bool(dev->of_node,
							"qcom,iommu-s1-bypass");
	geni_se_dev->bus_bw_set = default_bus_bw_set;