Message ID | 1611895604-4496-1-git-send-email-wcheng@codeaurora.org |
---|---|
Headers | show |
Series | Re-introduce TX FIFO resize for larger EP bursting | expand |
Hi Wesley, On Thu, Jan 28, 2021 at 08:46:43PM -0800, Wesley Cheng wrote: > In order to take advantage of the TX fifo resizing logic, manually add > these properties to the DWC3 child node by default. This will allow > the DWC3 gadget to resize the TX fifos for the IN endpoints, which > help with performance. > > Signed-off-by: Wesley Cheng <wcheng@codeaurora.org> > --- > drivers/usb/dwc3/dwc3-qcom.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/drivers/usb/dwc3/dwc3-qcom.c b/drivers/usb/dwc3/dwc3-qcom.c > index d803ee9..4ea6be3 100644 > --- a/drivers/usb/dwc3/dwc3-qcom.c > +++ b/drivers/usb/dwc3/dwc3-qcom.c > @@ -564,6 +564,7 @@ static int dwc3_qcom_clk_init(struct dwc3_qcom *qcom, int count) > > static const struct property_entry dwc3_qcom_acpi_properties[] = { > PROPERTY_ENTRY_STRING("dr_mode", "host"), > + PROPERTY_ENTRY_BOOL("tx-fifo-resize"), > {} > }; > > @@ -634,6 +635,7 @@ static int dwc3_qcom_of_register_core(struct platform_device *pdev) > struct dwc3_qcom *qcom = platform_get_drvdata(pdev); > struct device_node *np = pdev->dev.of_node, *dwc3_np; > struct device *dev = &pdev->dev; > + struct property *prop; > int ret; > > dwc3_np = of_get_child_by_name(np, "dwc3"); > @@ -642,6 +644,14 @@ static int dwc3_qcom_of_register_core(struct platform_device *pdev) > return -ENODEV; > } > > + prop = kzalloc(sizeof(*prop), GFP_KERNEL); > + if (prop) { > + prop->name = "tx-fifo-resize"; > + ret = of_add_property(dwc3_np, prop); > + if (ret < 0) > + dev_info(dev, "unable to add tx-fifo-resize prop\n"); You'll need to kfree(prop) both in case of error here as well as in the driver's .remove() callback. Maybe easier to devm_kzalloc()? Jack