Loading drivers/usb/dwc3/dwc3-msm.c +15 −4 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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); } Loading Loading @@ -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); Loading Loading @@ -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); } } Loading Loading
drivers/usb/dwc3/dwc3-msm.c +15 −4 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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); } Loading Loading @@ -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); Loading Loading @@ -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); } } Loading