Commit f3dff695 authored by Nikhil Badola's avatar Nikhil Badola Committed by York Sun
Browse files

drivers : usb: fsl: Implement usb Erratum A007798 workaround



Set TXFIFOTHRESH to adjust ddr pipeline delay for successful large
usb writes
Signed-off-by: default avatarNikhil Badola <nikhil.badola@freescale.com>
Reviewed-by: default avatarYork Sun <yorksun@freescale.com>
parent c26c80a1
......@@ -294,6 +294,10 @@ static int do_errata(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
if (has_erratum_a007075())
puts("Work-around for Erratum A007075 enabled\n");
#endif
#ifdef CONFIG_SYS_FSL_ERRATUM_A007798
if (has_erratum_a007798())
puts("Work-around for Erratum A007798 enabled\n");
#endif
#ifdef CONFIG_SYS_FSL_ERRATUM_I2C_A004447
if ((SVR_SOC_VER(svr) == SVR_8548 && IS_SVR_REV(svr, 3, 1)) ||
(SVR_REV(svr) <= CONFIG_SYS_FSL_A004447_SVR_REV))
......
......@@ -678,6 +678,7 @@
#define CONFIG_SYS_FSL_ERRATUM_A006379
#define CONFIG_SYS_FSL_ERRATUM_A007186
#define CONFIG_SYS_FSL_ERRATUM_A006593
#define CONFIG_SYS_FSL_ERRATUM_A007798
#define CONFIG_SYS_CCSRBAR_DEFAULT 0xfe000000
#define CONFIG_SYS_FSL_SFP_VER_3_0
#define CONFIG_SYS_FSL_PCI_VER_3_X
......
......@@ -130,8 +130,7 @@ int ehci_hcd_init(int index, enum usb_init_type init,
in_le32(&ehci->usbmode);
if (SVR_SOC_VER(get_svr()) == SVR_T4240 &&
IS_SVR_REV(get_svr(), 2, 0))
if (has_erratum_a007798())
set_txfifothresh(ehci, TXFIFOTHRESH);
return 0;
......
......@@ -139,6 +139,12 @@ static inline bool has_erratum_a007075(void)
}
return false;
}
static inline bool has_erratum_a007798(void)
{
return SVR_SOC_VER(get_svr()) == SVR_T4240 &&
IS_SVR_REV(get_svr(), 2, 0);
}
#else
static inline bool has_erratum_a006261(void)
{
......@@ -150,5 +156,10 @@ static inline bool has_erratum_a007075(void)
return false;
}
static inline bool has_erratum_a007798(void)
{
return false;
}
#endif
#endif /*_ASM_FSL_USB_H_ */
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment