summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/freescale/fman/Peripherals/FM
diff options
context:
space:
mode:
authorMandy Lavi <mandy.lavi@freescale.com>2015-02-22 17:17:32 (GMT)
committerHonghua Yin <Hong-Hua.Yin@freescale.com>2015-03-23 02:57:42 (GMT)
commitc3a52d1e1ef3484c0ecc1c937abd19262a859049 (patch)
tree9fd35391aab5ea82074c22276d60e5e1c1ed775b /drivers/net/ethernet/freescale/fman/Peripherals/FM
parentec7f1bf74013559bae9fd7740f990a563c7b09b0 (diff)
downloadlinux-fsl-qoriq-c3a52d1e1ef3484c0ecc1c937abd19262a859049.tar.xz
fmd: memac: distinguish TX_FIFO_SECTIONS for t1024
t1024 requires for its 10g "best effort" port a different value for TX_FIFO_SECTIONS[TX_AVAIL] than other 10g ports in other devices: 0x60 instead of 0x19 Change-Id: I06fa4166fdff7ef39c02ebe4d97807230ae01f3d Signed-off-by: Mandy Lavi <mandy.lavi@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/31540 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Igal Liberman <Igal.Liberman@freescale.com> Reviewed-by: Honghua Yin <Hong-Hua.Yin@freescale.com>
Diffstat (limited to 'drivers/net/ethernet/freescale/fman/Peripherals/FM')
-rw-r--r--drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/fman_memac.c8
-rw-r--r--drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c9
2 files changed, 13 insertions, 4 deletions
diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/fman_memac.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/fman_memac.c
index a79c208..00995a1 100644
--- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/fman_memac.c
+++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/fman_memac.c
@@ -156,6 +156,7 @@ int fman_memac_init(struct memac_regs *regs,
struct memac_cfg *cfg,
enum enet_interface enet_interface,
enum enet_speed enet_speed,
+ bool slow_10g_if,
uint32_t exceptions)
{
uint32_t tmp;
@@ -216,8 +217,13 @@ int fman_memac_init(struct memac_regs *regs,
tmp = 0;
if (enet_interface == E_ENET_IF_XGMII ||
enet_interface == E_ENET_IF_XFI) {
- tmp |= (TX_FIFO_SECTIONS_TX_AVAIL_10G |
+ if(slow_10g_if) {
+ tmp |= (TX_FIFO_SECTIONS_TX_AVAIL_SLOW_10G |
TX_FIFO_SECTIONS_TX_EMPTY_DEFAULT_10G);
+ } else {
+ tmp |= (TX_FIFO_SECTIONS_TX_AVAIL_10G |
+ TX_FIFO_SECTIONS_TX_EMPTY_DEFAULT_10G);
+ }
} else {
tmp |= (TX_FIFO_SECTIONS_TX_AVAIL_1G |
TX_FIFO_SECTIONS_TX_EMPTY_DEFAULT_1G);
diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c
index 24913de..8782ad2 100644
--- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c
+++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c
@@ -885,7 +885,7 @@ static t_Error MemacInit(t_Handle h_Memac)
t_EnetAddr ethAddr;
e_FmMacType portType;
t_Error err;
-
+ bool slow_10g_if = FALSE;
if (p_Memac->macId == 3) /* This is a quick WA */
g_MemacRegs = p_Memac->p_MemMap;
@@ -893,8 +893,10 @@ static t_Error MemacInit(t_Handle h_Memac)
SANITY_CHECK_RETURN_ERROR(p_Memac->p_MemacDriverParam, E_INVALID_STATE);
SANITY_CHECK_RETURN_ERROR(p_Memac->fmMacControllerDriver.h_Fm, E_INVALID_HANDLE);
- /* not needed! */
- /*FM_GetRevision(p_Memac->fmMacControllerDriver.h_Fm, &p_Memac->fmMacControllerDriver.fmRevInfo);*/
+ FM_GetRevision(p_Memac->fmMacControllerDriver.h_Fm, &p_Memac->fmMacControllerDriver.fmRevInfo);
+ if (p_Memac->fmMacControllerDriver.fmRevInfo.majorRev == 6 &&
+ p_Memac->fmMacControllerDriver.fmRevInfo.minorRev == 4)
+ slow_10g_if = TRUE;
CHECK_INIT_PARAMETERS(p_Memac, CheckInitParameters);
@@ -918,6 +920,7 @@ static t_Error MemacInit(t_Handle h_Memac)
p_Memac->p_MemacDriverParam,
enet_interface,
enet_speed,
+ slow_10g_if,
p_Memac->exceptions);
#ifdef FM_RX_FIFO_CORRUPT_ERRATA_10GMAC_A006320