drivers : usb: fsl: Implement usb Erratum A007798 workaround
Set TXFIFOTHRESH to adjust ddr pipeline delay for successful large usb writes Signed-off-by: Nikhil Badola <nikhil.badola@freescale.com> Reviewed-by: York Sun <yorksun@freescale.com>
This commit is contained in:
@@ -294,6 +294,10 @@ static int do_errata(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|||||||
if (has_erratum_a007075())
|
if (has_erratum_a007075())
|
||||||
puts("Work-around for Erratum A007075 enabled\n");
|
puts("Work-around for Erratum A007075 enabled\n");
|
||||||
#endif
|
#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
|
#ifdef CONFIG_SYS_FSL_ERRATUM_I2C_A004447
|
||||||
if ((SVR_SOC_VER(svr) == SVR_8548 && IS_SVR_REV(svr, 3, 1)) ||
|
if ((SVR_SOC_VER(svr) == SVR_8548 && IS_SVR_REV(svr, 3, 1)) ||
|
||||||
(SVR_REV(svr) <= CONFIG_SYS_FSL_A004447_SVR_REV))
|
(SVR_REV(svr) <= CONFIG_SYS_FSL_A004447_SVR_REV))
|
||||||
|
@@ -678,6 +678,7 @@
|
|||||||
#define CONFIG_SYS_FSL_ERRATUM_A006379
|
#define CONFIG_SYS_FSL_ERRATUM_A006379
|
||||||
#define CONFIG_SYS_FSL_ERRATUM_A007186
|
#define CONFIG_SYS_FSL_ERRATUM_A007186
|
||||||
#define CONFIG_SYS_FSL_ERRATUM_A006593
|
#define CONFIG_SYS_FSL_ERRATUM_A006593
|
||||||
|
#define CONFIG_SYS_FSL_ERRATUM_A007798
|
||||||
#define CONFIG_SYS_CCSRBAR_DEFAULT 0xfe000000
|
#define CONFIG_SYS_CCSRBAR_DEFAULT 0xfe000000
|
||||||
#define CONFIG_SYS_FSL_SFP_VER_3_0
|
#define CONFIG_SYS_FSL_SFP_VER_3_0
|
||||||
#define CONFIG_SYS_FSL_PCI_VER_3_X
|
#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);
|
in_le32(&ehci->usbmode);
|
||||||
|
|
||||||
if (SVR_SOC_VER(get_svr()) == SVR_T4240 &&
|
if (has_erratum_a007798())
|
||||||
IS_SVR_REV(get_svr(), 2, 0))
|
|
||||||
set_txfifothresh(ehci, TXFIFOTHRESH);
|
set_txfifothresh(ehci, TXFIFOTHRESH);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -139,6 +139,12 @@ static inline bool has_erratum_a007075(void)
|
|||||||
}
|
}
|
||||||
return false;
|
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
|
#else
|
||||||
static inline bool has_erratum_a006261(void)
|
static inline bool has_erratum_a006261(void)
|
||||||
{
|
{
|
||||||
@@ -150,5 +156,10 @@ static inline bool has_erratum_a007075(void)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline bool has_erratum_a007798(void)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#endif /*_ASM_FSL_USB_H_ */
|
#endif /*_ASM_FSL_USB_H_ */
|
||||||
|
Reference in New Issue
Block a user