lantiq: fix dma locking problems with SMP
[openwrt/staging/chunkeey.git] / target / linux / lantiq / patches-4.4 / 0041-USB-DWC2-add-ltq-params.patch
1 --- a/drivers/usb/dwc2/platform.c
2 +++ b/drivers/usb/dwc2/platform.c
3 @@ -145,6 +145,62 @@ static int __dwc2_lowlevel_hw_enable(str
4 return ret;
5 }
6
7 +static const struct dwc2_core_params params_ltq = {
8 + .otg_cap = 2, /* non-HNP/non-SRP */
9 + .otg_ver = -1,
10 + .dma_enable = -1,
11 + .dma_desc_enable = -1,
12 + .speed = -1,
13 + .enable_dynamic_fifo = -1,
14 + .en_multiple_tx_fifo = -1,
15 + .host_rx_fifo_size = 288, /* 288 DWORDs */
16 + .host_nperio_tx_fifo_size = 128, /* 128 DWORDs */
17 + .host_perio_tx_fifo_size = 96, /* 96 DWORDs */
18 + .max_transfer_size = -1,
19 + .max_packet_count = 511,
20 + .host_channels = -1,
21 + .phy_type = -1,
22 + .phy_utmi_width = -1,
23 + .phy_ulpi_ddr = -1,
24 + .phy_ulpi_ext_vbus = -1,
25 + .i2c_enable = -1,
26 + .ulpi_fs_ls = -1,
27 + .host_support_fs_ls_low_power = -1,
28 + .host_ls_low_power_phy_clk = -1,
29 + .ts_dline = -1,
30 + .reload_ctl = -1,
31 + .ahbcfg = GAHBCFG_HBSTLEN_INCR16 << GAHBCFG_HBSTLEN_SHIFT,
32 + .uframe_sched = -1,
33 +};
34 +
35 +static const struct dwc2_core_params params_danube = {
36 + .otg_cap = 2, /* non-HNP/non-SRP */
37 + .otg_ver = -1,
38 + .dma_enable = -1,
39 + .dma_desc_enable = -1,
40 + .speed = -1,
41 + .enable_dynamic_fifo = -1,
42 + .en_multiple_tx_fifo = -1,
43 + .host_rx_fifo_size = -1,
44 + .host_nperio_tx_fifo_size = -1,
45 + .host_perio_tx_fifo_size = -1,
46 + .max_transfer_size = -1,
47 + .max_packet_count = -1,
48 + .host_channels = -1,
49 + .phy_type = -1,
50 + .phy_utmi_width = -1,
51 + .phy_ulpi_ddr = -1,
52 + .phy_ulpi_ext_vbus = -1,
53 + .i2c_enable = -1,
54 + .ulpi_fs_ls = -1,
55 + .host_support_fs_ls_low_power = -1,
56 + .host_ls_low_power_phy_clk = -1,
57 + .ts_dline = -1,
58 + .reload_ctl = -1,
59 + .ahbcfg = -1,
60 + .uframe_sched = -1,
61 +};
62 +
63 /**
64 * dwc2_lowlevel_hw_enable - enable platform lowlevel hw resources
65 * @hsotg: The driver state
66 @@ -310,6 +366,9 @@ static int dwc2_driver_remove(struct pla
67 static const struct of_device_id dwc2_of_match_table[] = {
68 { .compatible = "brcm,bcm2835-usb", .data = &params_bcm2835 },
69 { .compatible = "rockchip,rk3066-usb", .data = &params_rk3066 },
70 + { .compatible = "lantiq,ifxhcd-danube-dwc2", .data = &params_danube },
71 + { .compatible = "lantiq,ifxhcd-arx100-dwc2", .data = &params_ltq },
72 + { .compatible = "lantiq,ifxhcd-xrx200-dwc2", .data = &params_ltq },
73 { .compatible = "snps,dwc2", .data = NULL },
74 { .compatible = "samsung,s3c6400-hsotg", .data = NULL},
75 {},