aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c4
-rw-r--r--target/linux/ar71xx/files/arch/mips/include/asm/mach-ath79/ag71xx_platform.h1
-rw-r--r--target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c9
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,