diff options
author | Felix Fietkau <nbd@openwrt.org> | 2015-01-18 00:53:53 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2015-01-18 00:53:53 +0000 |
commit | bdc0750191660af3ecefbc52327978af1cd93407 (patch) | |
tree | d9c3e27c665764f79bdc79a464d786909bd808d7 /target/linux/generic/files/drivers/net/phy/ar8216.h | |
parent | 2f43d3dcba06977877fcab7682be8ecd22c1df5d (diff) | |
download | upstream-bdc0750191660af3ecefbc52327978af1cd93407.tar.gz upstream-bdc0750191660af3ecefbc52327978af1cd93407.tar.bz2 upstream-bdc0750191660af3ecefbc52327978af1cd93407.zip |
ar8216: introduce enable_eee swconfig attribute to control 802.3az EEE per port
Users reported network issues with AR8327 which turned out to be caused
by EEE not working correctly with certain link partners (ticket 14597).
The workaround was to disable EEE on all ports (changeset 41577).
The issue was with certain link partners only, therefore this patch
allows to control usage of EEE per port via swconfig.
Still the default is to initially disable EEE on all ports.
Successfully tested on a TL-WDR4900 (AR8327 rev.4)
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
SVN-Revision: 44021
Diffstat (limited to 'target/linux/generic/files/drivers/net/phy/ar8216.h')
-rw-r--r-- | target/linux/generic/files/drivers/net/phy/ar8216.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.h b/target/linux/generic/files/drivers/net/phy/ar8216.h index d3d044324e..4089a17059 100644 --- a/target/linux/generic/files/drivers/net/phy/ar8216.h +++ b/target/linux/generic/files/drivers/net/phy/ar8216.h @@ -371,6 +371,7 @@ struct ar8xxx_chip { void (*vtu_load_vlan)(struct ar8xxx_priv *priv, u32 vid, u32 port_mask); void (*phy_fixup)(struct ar8xxx_priv *priv, int phy); void (*set_mirror_regs)(struct ar8xxx_priv *priv); + int (*sw_hw_apply)(struct switch_dev *dev); const struct ar8xxx_mib_desc *mib_decs; unsigned num_mibs; @@ -487,6 +488,14 @@ int ar8xxx_sw_get_port_link(struct switch_dev *dev, int port, struct switch_port_link *link); int +ar8xxx_sw_set_port_reset_mib(struct switch_dev *dev, + const struct switch_attr *attr, + struct switch_val *val); +int +ar8xxx_sw_get_port_mib(struct switch_dev *dev, + const struct switch_attr *attr, + struct switch_val *val); +int ar8216_wait_bit(struct ar8xxx_priv *priv, int reg, u32 mask, u32 val); static inline struct ar8xxx_priv * |