@@ -1835,8 +1835,6 @@ static void dwc3_get_properties(struct dwc3 *dwc)
18351835 dwc -> tx_thr_num_pkt_prd = tx_thr_num_pkt_prd ;
18361836 dwc -> tx_max_burst_prd = tx_max_burst_prd ;
18371837
1838- dwc -> imod_interval = 0 ;
1839-
18401838 dwc -> tx_fifo_resize_max_num = tx_fifo_resize_max_num ;
18411839}
18421840
@@ -1854,21 +1852,19 @@ static void dwc3_check_params(struct dwc3 *dwc)
18541852 unsigned int hwparam_gen =
18551853 DWC3_GHWPARAMS3_SSPHY_IFC (dwc -> hwparams .hwparams3 );
18561854
1857- /* Check for proper value of imod_interval */
1858- if (dwc -> imod_interval && !dwc3_has_imod (dwc )) {
1859- dev_warn (dwc -> dev , "Interrupt moderation not supported\n" );
1860- dwc -> imod_interval = 0 ;
1861- }
1862-
18631855 /*
1856+ * Enable IMOD for all supporting controllers.
1857+ *
1858+ * Particularly, DWC_usb3 v3.00a must enable this feature for
1859+ * the following reason:
1860+ *
18641861 * Workaround for STAR 9000961433 which affects only version
18651862 * 3.00a of the DWC_usb3 core. This prevents the controller
18661863 * interrupt from being masked while handling events. IMOD
18671864 * allows us to work around this issue. Enable it for the
18681865 * affected version.
18691866 */
1870- if (!dwc -> imod_interval &&
1871- DWC3_VER_IS (DWC3 , 300 A ))
1867+ if (dwc3_has_imod ((dwc )))
18721868 dwc -> imod_interval = 1 ;
18731869
18741870 /* Check the maximum_speed parameter */
0 commit comments