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

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

Merge "dwc3-msm: Add default-bus-vote property to select default USB bus voting"

parents 824c1bd9 568e69ee
Loading
Loading
Loading
Loading
+15 −4
Original line number Diff line number Diff line
@@ -296,6 +296,7 @@ struct dwc3_msm {
	unsigned int		max_power;
	bool			charging_disabled;
	enum dwc3_drd_state	drd_state;
	enum bus_vote		default_bus_vote;
	enum bus_vote		override_bus_vote;
	u32			bus_perf_client;
	struct msm_bus_scale_pdata	*bus_scale_table;
@@ -2338,7 +2339,7 @@ static int dwc3_msm_update_bus_bw(struct dwc3_msm *mdwc, enum bus_vote bv)
	 * from userspace.
	 */
	if (bv >= mdwc->bus_scale_table->num_usecases)
		bv_index = BUS_VOTE_NOMINAL;
		bv_index = mdwc->default_bus_vote;
	else if (bv == BUS_VOTE_NONE)
		bv_index = BUS_VOTE_NONE;

@@ -2568,7 +2569,7 @@ static int dwc3_msm_resume(struct dwc3_msm *mdwc)
	if (mdwc->in_host_mode && mdwc->max_rh_port_speed == USB_SPEED_HIGH)
		dwc3_msm_update_bus_bw(mdwc, BUS_VOTE_SVS);
	else
		dwc3_msm_update_bus_bw(mdwc, BUS_VOTE_NOMINAL);
		dwc3_msm_update_bus_bw(mdwc, mdwc->default_bus_vote);

	/* Vote for TCXO while waking up USB HSPHY */
	ret = clk_prepare_enable(mdwc->xo_clk);
@@ -3364,7 +3365,7 @@ static ssize_t bus_vote_store(struct device *dev,
			&& (mdwc->max_rh_port_speed == USB_SPEED_HIGH))
			bv = BUS_VOTE_SVS;
		else
			bv = BUS_VOTE_NOMINAL;
			bv = mdwc->default_bus_vote;

		dwc3_msm_update_bus_bw(mdwc, bv);
	}
@@ -3633,10 +3634,20 @@ static int dwc3_msm_probe(struct platform_device *pdev)
		goto put_dwc3;
	}

	/* use default as nominal bus voting */
	mdwc->default_bus_vote = BUS_VOTE_NOMINAL;
	ret = of_property_read_u32(node, "qcom,default-bus-vote",
			&mdwc->default_bus_vote);

	mdwc->bus_scale_table = msm_bus_cl_get_pdata(pdev);
	if (mdwc->bus_scale_table) {
		mdwc->bus_perf_client =
			msm_bus_scale_register_client(mdwc->bus_scale_table);

		/* default_bus_vote is out of range, use nominal bus voting */
		if (mdwc->default_bus_vote >=
				mdwc->bus_scale_table->num_usecases)
			mdwc->default_bus_vote = BUS_VOTE_NOMINAL;
	}

	dwc = platform_get_drvdata(mdwc->dwc3);
@@ -3881,7 +3892,7 @@ static int dwc3_msm_host_notifier(struct notifier_block *nb,
			dev_dbg(mdwc->dev, "set core clk rate %ld\n",
				mdwc->core_clk_rate);
			mdwc->max_rh_port_speed = USB_SPEED_UNKNOWN;
			dwc3_msm_update_bus_bw(mdwc, BUS_VOTE_NOMINAL);
			dwc3_msm_update_bus_bw(mdwc, mdwc->default_bus_vote);
		}
	}