diff options
Diffstat (limited to 'target/linux')
3 files changed, 7 insertions, 7 deletions
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c b/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c index 17dd3ac6b1..07cb12c8e9 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c @@ -907,6 +907,7 @@ void __init ath79_register_eth(unsigned int id) pdata->speed = SPEED_1000; pdata->duplex = DUPLEX_FULL; pdata->switch_data = &ath79_switch_data; + pdata->use_flow_control = 1; ath79_switch_data.phy_poll_mask |= BIT(4); } @@ -951,6 +952,7 @@ void __init ath79_register_eth(unsigned int id) pdata->has_gbit = 1; pdata->duplex = DUPLEX_FULL; pdata->switch_data = &ath79_switch_data; + pdata->use_flow_control = 1; ath79_switch_data.phy_poll_mask |= BIT(4); } @@ -1015,6 +1017,7 @@ void __init ath79_register_eth(unsigned int id) pdata->speed = SPEED_1000; pdata->duplex = DUPLEX_FULL; pdata->switch_data = &ath79_switch_data; + pdata->use_flow_control = 1; ath79_switch_data.phy_poll_mask |= BIT(4); } @@ -1083,6 +1086,7 @@ void __init ath79_register_eth(unsigned int id) pdata->speed = SPEED_1000; pdata->duplex = DUPLEX_FULL; + pdata->use_flow_control = 1; /* reset the built-in switch */ ath79_device_reset_set(AR934X_RESET_ETH_SWITCH); diff --git a/target/linux/ar71xx/files/arch/mips/include/asm/mach-ath79/ag71xx_platform.h b/target/linux/ar71xx/files/arch/mips/include/asm/mach-ath79/ag71xx_platform.h index d46dc4e317..5fd352c638 100644 --- a/target/linux/ar71xx/files/arch/mips/include/asm/mach-ath79/ag71xx_platform.h +++ b/target/linux/ar71xx/files/arch/mips/include/asm/mach-ath79/ag71xx_platform.h @@ -36,6 +36,7 @@ struct ag71xx_platform_data { u8 is_ar7240:1; u8 is_ar724x:1; u8 has_ar8216:1; + u8 use_flow_control:1; struct ag71xx_switch_platform_data *switch_data; diff --git a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c index d5253609cd..0ae6acf119 100644 --- a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c +++ b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c @@ -453,16 +453,11 @@ static void ag71xx_hw_stop(struct ag71xx *ag) static void ag71xx_hw_setup(struct ag71xx *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 */ + if (pdata->use_flow_control) + init |= MAC_CFG1_TFC | MAC_CFG1_RFC; ag71xx_wr(ag, AG71XX_REG_MAC_CFG1, init); ag71xx_sb(ag, AG71XX_REG_MAC_CFG2, |