ar71xx: enable flow control for ethernet MACs with built-in switch
Should fix LAN speed issues on some devices Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
c536da365b
commit
1beb5bec64
1 changed files with 9 additions and 1 deletions
|
@ -453,9 +453,17 @@ static void ag71xx_hw_stop(struct ag71xx *ag)
|
||||||
static void ag71xx_hw_setup(struct ag71xx *ag)
|
static void ag71xx_hw_setup(struct ag71xx *ag)
|
||||||
{
|
{
|
||||||
struct ag71xx_platform_data *pdata = ag71xx_get_pdata(ag);
|
struct ag71xx_platform_data *pdata = ag71xx_get_pdata(ag);
|
||||||
|
struct ag71xx_mdio_platform_data *mpdata;
|
||||||
|
u32 init = MAC_CFG1_INIT;
|
||||||
|
|
||||||
|
if (pdata->mii_bus_dev && ag->pdev->id == 0) {
|
||||||
|
mpdata = pdata->mii_bus_dev->platform_data;
|
||||||
|
if (mpdata && mpdata->builtin_switch)
|
||||||
|
init |= MAC_CFG1_TFC | MAC_CFG1_RFC;
|
||||||
|
}
|
||||||
|
|
||||||
/* setup MAC configuration registers */
|
/* setup MAC configuration registers */
|
||||||
ag71xx_wr(ag, AG71XX_REG_MAC_CFG1, MAC_CFG1_INIT);
|
ag71xx_wr(ag, AG71XX_REG_MAC_CFG1, init);
|
||||||
|
|
||||||
ag71xx_sb(ag, AG71XX_REG_MAC_CFG2,
|
ag71xx_sb(ag, AG71XX_REG_MAC_CFG2,
|
||||||
MAC_CFG2_PAD_CRC_EN | MAC_CFG2_LEN_CHECK);
|
MAC_CFG2_PAD_CRC_EN | MAC_CFG2_LEN_CHECK);
|
||||||
|
|
Loading…
Reference in a new issue