aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZoltan Herpai <wigyori@uid0.hu>2016-10-12 00:25:31 +0200
committerGitHub <noreply@github.com>2016-10-12 00:25:31 +0200
commit7f0cba3eb9b5ab3a575875593777f269363c4d42 (patch)
tree429c4f8fe8958660a2018be53612522c4dfe5bb5
parent9d73574fd9eb9829e5d8a03813001843a210a551 (diff)
parent9c840109de4494b3ecc29917090deb13518338ad (diff)
downloadmaster-187ad058-7f0cba3eb9b5ab3a575875593777f269363c4d42.tar.gz
master-187ad058-7f0cba3eb9b5ab3a575875593777f269363c4d42.tar.bz2
master-187ad058-7f0cba3eb9b5ab3a575875593777f269363c4d42.zip
Merge pull request #126 from wigyori/master
ar71xx: backport flow-control related patches
-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,