diff options
author | Christoph Muellner <christoph.muellner@theobroma-systems.com> | 2018-03-15 19:13:37 +0100 |
---|---|---|
committer | Christoph Muellner <christoph.muellner@theobroma-systems.com> | 2018-05-15 18:37:28 +0200 |
commit | 51803b4004e64ecba1e53ac766641934e32516e5 (patch) | |
tree | ba7e776e582b7e259193778e997bc17407f7745e /drivers/net/ethernet/apm | |
parent | 24534b3511828c66215fdf1533d77a7bf2e1fdb2 (diff) |
[noupstream] Add gryphon support.
* arm64: dts: apm: Add serial 1 to shadowcat.dts
* arm64: dts: Add apm-gryphon.dts
* drivers: xgene: Allow to run the ethernet controller in MAC-to-MAC mode.
Signed-off-by: Christoph Muellner <christoph.muellner@theobroma-systems.com>
Diffstat (limited to 'drivers/net/ethernet/apm')
-rw-r--r-- | drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 4 | ||||
-rw-r--r-- | drivers/net/ethernet/apm/xgene/xgene_enet_main.h | 1 | ||||
-rw-r--r-- | drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c | 11 |
3 files changed, 14 insertions, 2 deletions
diff --git a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c index 3b889efddf78..029ec75e5498 100644 --- a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c +++ b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c @@ -1765,6 +1765,10 @@ static int xgene_enet_get_resources(struct xgene_enet_pdata *pdata) return -ENODEV; } + ret = device_property_read_u32(dev, "mac-to-mac-speed", &pdata->mac_to_mac_speed); + if (ret) + pdata->mac_to_mac_speed = 0; + ret = xgene_get_tx_delay(pdata); if (ret) return ret; diff --git a/drivers/net/ethernet/apm/xgene/xgene_enet_main.h b/drivers/net/ethernet/apm/xgene/xgene_enet_main.h index 985768596900..b257c0d7fa49 100644 --- a/drivers/net/ethernet/apm/xgene/xgene_enet_main.h +++ b/drivers/net/ethernet/apm/xgene/xgene_enet_main.h @@ -250,6 +250,7 @@ struct xgene_enet_pdata { u32 pause_autoneg; bool tx_pause; bool rx_pause; + u32 mac_to_mac_speed; }; struct xgene_indirect_ctl { diff --git a/drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c b/drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c index b1a83fdbefb8..4134da1aa2e2 100644 --- a/drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c +++ b/drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c @@ -349,7 +349,8 @@ static void xgene_sgmac_init(struct xgene_enet_pdata *p) if (!(p->enet_id == XGENE_ENET2 && p->mdio_driver)) xgene_sgmac_reset(p); - xgene_sgmii_enable_autoneg(p); + if (p->mac_to_mac_speed == 0) + xgene_sgmii_enable_autoneg(p); xgene_sgmac_set_speed(p); xgene_sgmac_set_mac_addr(p); @@ -548,7 +549,13 @@ static void xgene_enet_link_state(struct work_struct *work) struct net_device *ndev = p->ndev; u32 link, poll_interval; - link = xgene_enet_link_status(p); + if (p->mac_to_mac_speed == 0) { + link = xgene_enet_link_status(p); + } else { + p->phy_speed = p->mac_to_mac_speed; + link = 1; + } + if (link) { if (!netif_carrier_ok(ndev)) { netif_carrier_on(ndev); |