diff options
author | Iyappan Subramanian <isubramanian@apm.com> | 2014-11-03 11:59:55 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-11-04 17:08:42 -0500 |
commit | c3f4465d272fa94d5a077c502e83d3e712ec8d62 (patch) | |
tree | a18dc1bcc307b3fa4c63a7d113d053ee0ea6ceb3 /drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c | |
parent | dtb: xgene: fix: Backward compatibility with older firmware (diff) | |
download | linux-dev-c3f4465d272fa94d5a077c502e83d3e712ec8d62.tar.xz linux-dev-c3f4465d272fa94d5a077c502e83d3e712ec8d62.zip |
drivers: net: xgene: Backward compatibility with older firmware
This patch adds support when used with older firmware (<= 1.13.28).
- Added xgene_ring_mgr_init() to check whether ring manager is initialized
- Calling xgene_ring_mgr_init() from xgene_port_ops.reset()
- To handle errors, changed the return type of xgene_port_ops.reset()
Signed-off-by: Iyappan Subramanian <isubramanian@apm.com>
Signed-off-by: Keyur Chudgar <kchudgar@apm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c')
-rw-r--r-- | drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c b/drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c index c22f32622fa9..f5d4f68c288c 100644 --- a/drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c +++ b/drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c @@ -311,14 +311,19 @@ static void xgene_sgmac_tx_disable(struct xgene_enet_pdata *p) xgene_sgmac_rxtx(p, TX_EN, false); } -static void xgene_enet_reset(struct xgene_enet_pdata *p) +static int xgene_enet_reset(struct xgene_enet_pdata *p) { + if (!xgene_ring_mgr_init(p)) + return -ENODEV; + clk_prepare_enable(p->clk); clk_disable_unprepare(p->clk); clk_prepare_enable(p->clk); xgene_enet_ecc_init(p); xgene_enet_config_ring_if_assoc(p); + + return 0; } static void xgene_enet_cle_bypass(struct xgene_enet_pdata *p, |