linux/drivers/net/ethernet/freescale
Claudiu Manoil 6ce29b0e2a gianfar: Avoid unnecessary reg accesses in adjust_link()
For phy devices that don't issue interrupts upon link
state changes, phylib polls the link state resulting in
repeated calls to adjust_link(), even if the link state
didn't change.  As a result, some mac registers are
repeatedly read and written with the same values, which
is not ok.

To fix this, adjust_link() has been refactored to check
first whether the link state has changed and to take action
only if needed, updating mac registers and local state
variables.  The 'new_state' local flag, set if one of the
link params changed (link, speed or duplex), has been
rendered useless and removed by this refactoring.

Signed-off-by: Claudiu Manoil <claudiu.manoil@freescale.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-04-30 16:12:23 -04:00
..
fs_enet fs_enet: remove empty MDIO bus function 2014-03-28 01:38:02 -04:00
fec_main.c net: fec: make sure to init MAC address 2014-03-31 16:34:19 -04:00
fec_mpc52xx_phy.c net: fec_mpc52xx_phy: remove unnecessary dev_set_drvdata() 2013-08-21 12:27:04 -07:00
fec_mpc52xx.c net: ethernet: use platform_{get,set}_drvdata() 2013-05-25 21:27:58 -07:00
fec_mpc52xx.h
fec_ptp.c ptp: drivers: set the number of programmable pins. 2014-03-21 14:21:14 -04:00
fec.h fec: Implement the SIOCGHWTSTAMP ioctl 2013-11-21 17:17:37 +00:00
fsl_pq_mdio.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
gianfar_ethtool.c gianfar: Check if phydev present on ethtool -A 2014-04-24 13:36:16 -04:00
gianfar_ptp.c ptp: drivers: set the number of programmable pins. 2014-03-21 14:21:14 -04:00
gianfar.c gianfar: Avoid unnecessary reg accesses in adjust_link() 2014-04-30 16:12:23 -04:00
gianfar.h gianfar: Use Single-Queue polling for "fsl,etsec2" 2014-03-10 13:17:22 -04:00
Kconfig NET: FEC: dynamtic check DMA desc buff type 2013-01-04 15:15:39 -08:00
Makefile gianfar: Remove sysfs stubs for FIFOCFG and stashing 2014-02-18 15:03:02 -05:00
ucc_geth_ethtool.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
ucc_geth.c ucc_geth: Call dev_consume_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:02 -07:00
ucc_geth.h net: remove skb recycling 2012-10-07 00:40:54 -04:00
xgmac_mdio.c drivers: clean-up prom.h implicit includes 2013-10-09 20:04:04 -05:00