mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2024-12-11 17:34:57 +00:00
0206a400cf
This patch improves the default configuration of DWC2 on lantiq SoCs somewhat: * Set maximum packet count to largest allowed value by the DWC2 (511) * Use 16-bit DMA bursts * Divide fifo buffers more evenly Default fifo buffer sizes from original ltq-hcd driver seem really irrational. For example according to DWC2 data book rxfifo size of 240 will not fit even a single full length USB packet. On the other hand non-periodic tx fifo size of 240 is more than enough to fit one complete packet. Change the sizes around to improve the situation and to fix some issues especially with isochronous USB transfers. Signed-off-by: Antti Seppälä <a.seppala@gmail.com> SVN-Revision: 47563
47 lines
1.5 KiB
Diff
47 lines
1.5 KiB
Diff
--- a/drivers/usb/dwc2/platform.c
|
|
+++ b/drivers/usb/dwc2/platform.c
|
|
@@ -107,6 +107,34 @@ static const struct dwc2_core_params par
|
|
.uframe_sched = -1,
|
|
};
|
|
|
|
+static const struct dwc2_core_params params_ltq = {
|
|
+ .otg_cap = 2, /* non-HNP/non-SRP */
|
|
+ .otg_ver = -1,
|
|
+ .dma_enable = -1,
|
|
+ .dma_desc_enable = -1,
|
|
+ .speed = -1,
|
|
+ .enable_dynamic_fifo = -1,
|
|
+ .en_multiple_tx_fifo = -1,
|
|
+ .host_rx_fifo_size = 288, /* 288 DWORDs */
|
|
+ .host_nperio_tx_fifo_size = 128, /* 128 DWORDs */
|
|
+ .host_perio_tx_fifo_size = 96, /* 96 DWORDs */
|
|
+ .max_transfer_size = -1,
|
|
+ .max_packet_count = 511,
|
|
+ .host_channels = -1,
|
|
+ .phy_type = -1,
|
|
+ .phy_utmi_width = -1,
|
|
+ .phy_ulpi_ddr = -1,
|
|
+ .phy_ulpi_ext_vbus = -1,
|
|
+ .i2c_enable = -1,
|
|
+ .ulpi_fs_ls = -1,
|
|
+ .host_support_fs_ls_low_power = -1,
|
|
+ .host_ls_low_power_phy_clk = -1,
|
|
+ .ts_dline = -1,
|
|
+ .reload_ctl = -1,
|
|
+ .ahbcfg = GAHBCFG_HBSTLEN_INCR16 << GAHBCFG_HBSTLEN_SHIFT,
|
|
+ .uframe_sched = -1,
|
|
+};
|
|
+
|
|
/**
|
|
* dwc2_driver_remove() - Called when the DWC_otg core is unregistered with the
|
|
* DWC_otg driver
|
|
@@ -133,6 +161,8 @@ static int dwc2_driver_remove(struct pla
|
|
static const struct of_device_id dwc2_of_match_table[] = {
|
|
{ .compatible = "brcm,bcm2835-usb", .data = ¶ms_bcm2835 },
|
|
{ .compatible = "rockchip,rk3066-usb", .data = ¶ms_rk3066 },
|
|
+ { .compatible = "lantiq,ifxhcd-arx100-dwc2", .data = ¶ms_ltq },
|
|
+ { .compatible = "lantiq,ifxhcd-xrx200-dwc2", .data = ¶ms_ltq },
|
|
{ .compatible = "snps,dwc2", .data = NULL },
|
|
{ .compatible = "samsung,s3c6400-hsotg", .data = NULL},
|
|
{},
|