linux/drivers/net/ethernet
Petri Gynther 8d88c6ebb3 net: bcmgenet: enable MoCA link state change detection
Currently, MoCA fixed PHYs are always in link-up state, regardless of
whether the link is actually up or not.

Add code to properly detect MoCA link state changes and to reflect the
new state in MoCA fixed PHY. Only GENET V3 and V4 MACs are capable of
detecting MoCA link state changes.

The code works as follows:
1. GENET MAC detects MoCA link state change and issues UMAC_IRQ_LINK_UP
   or UMAC_IRQ_LINK_DOWN interrupt.
2. Link up/down interrupt is processed in bcmgenet_irq_task(), which
   calls phy_mac_interrupt().
3. phy_mac_interrupt() updates the fixed PHY phydev->link and kicks
   the PHY state machine.
4. PHY state machine proceeds to read the fixed PHY link status
   register.
5. When the fixed PHY link status register is being read, the new
   function bcmgenet_fixed_phy_link_update() gets called. It copies
   the fixed PHY phydev->link value to the fixed PHY status->link.
6. PHY state machine receives the new link state of the fixed PHY.
7. MoCA fixed PHY link state now correctly reflects the real MoCA
   hardware link state.

Signed-off-by: Petri Gynther <pgynther@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-04-01 13:40:18 -04:00
..
3com drivers/net: Use setup_timer and mod_timer 2015-02-11 19:40:12 -08:00
8390 net: 8390: axnet_cs: Use setup_timer and mod_timer 2015-03-01 13:40:23 -05:00
adaptec
adi ptp: blackfin: use helpers for converting ns to timespec. 2015-03-31 17:19:19 -04:00
aeroflex net: greth: constify of_device_id array 2015-03-17 15:00:22 -04:00
agere et131x: use msecs_to_jiffies for conversions 2015-02-11 19:37:43 -08:00
allwinner ethernet: codespell comment spelling fixes 2015-03-08 22:54:22 -04:00
alteon
altera Altera TSE: constify of_device_id array 2015-03-17 15:00:21 -04:00
amd ptp: xgbe: convert to the 64 bit get/set time methods. 2015-03-31 12:01:16 -04:00
apm drivers: net: xgene: Add separate tx completion ring 2015-03-27 14:18:48 -07:00
apple net: ethernet: apple: constify of_device_id array 2015-03-17 15:00:22 -04:00
arc
atheros ethernet: codespell comment spelling fixes 2015-03-08 22:54:22 -04:00
broadcom net: bcmgenet: enable MoCA link state change detection 2015-04-01 13:40:18 -04:00
brocade ethernet: codespell comment spelling fixes 2015-03-08 22:54:22 -04:00
cadence net/macb: unify peripheral version testing 2015-03-31 16:51:17 -04:00
calxeda ethernet: codespell comment spelling fixes 2015-03-08 22:54:22 -04:00
chelsio cxgb4: fix boolreturn.cocci warnings 2015-03-29 12:15:56 -07:00
cirrus ethernet: codespell comment spelling fixes 2015-03-08 22:54:22 -04:00
cisco Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-03-03 21:16:48 -05:00
davicom
dec Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-03-20 18:51:09 -04:00
dlink
emulex be2net: bump up the driver version to 10.6.0.1 2015-03-29 12:34:01 -07:00
faraday
freescale ptp: fec: use helpers for converting ns to timespec. 2015-03-31 17:19:19 -04:00
fujitsu
hisilicon net: hip04: add missing MODULE_LICENSE 2015-02-02 18:51:03 -08:00
hp
i825xx
ibm Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-03-20 18:51:09 -04:00
icplus
intel ptp: ixgbe: use helpers for converting ns to timespec. 2015-03-31 17:19:19 -04:00
marvell ethernet: codespell comment spelling fixes 2015-03-08 22:54:22 -04:00
mellanox ptp: mlx4: use helpers for converting ns to timespec. 2015-03-31 17:19:19 -04:00
micrel ethernet: Use eth_<foo>_addr instead of memset 2015-03-03 17:01:36 -05:00
microchip
moxa ethernet: codespell comment spelling fixes 2015-03-08 22:54:22 -04:00
myricom myri10ge: Delete an unnecessary check before the function call "kfree" 2015-02-05 00:25:10 -08:00
natsemi
neterion ethernet: codespell comment spelling fixes 2015-03-08 22:54:22 -04:00
nuvoton
nvidia
nxp
octeon netdev: octeon_mgmt: constify of_device_id array 2015-03-17 15:00:22 -04:00
oki-semi ethernet: codespell comment spelling fixes 2015-03-08 22:54:22 -04:00
packetengines ethernet: codespell comment spelling fixes 2015-03-08 22:54:22 -04:00
pasemi net: pasemi: Use setup_timer and mod_timer 2015-03-01 13:40:23 -05:00
qlogic net: Move check for multiple vlans to drivers 2015-03-29 13:33:22 -07:00
qualcomm ethernet: codespell comment spelling fixes 2015-03-08 22:54:22 -04:00
rdc
realtek r8169: Fix trivial typo in rtl_check_firmware 2015-02-24 16:26:07 -05:00
renesas sh_eth: Mitigate lost statistics updates 2015-03-04 15:40:54 -05:00
rocker rocker: add support for phys_port_name 2015-03-18 22:30:35 -04:00
samsung ethernet: codespell comment spelling fixes 2015-03-08 22:54:22 -04:00
seeq
sfc ptp: sfc: convert to the 64 bit get/set time methods. 2015-03-31 12:01:18 -04:00
sgi
silan
sis
smsc net: smc91x: Remove an unused variable 2015-03-31 16:41:12 -04:00
stmicro ptp: stmmac: use helpers for converting ns to timespec. 2015-03-31 17:19:19 -04:00
sun ethernet: codespell comment spelling fixes 2015-03-08 22:54:22 -04:00
tehuti
ti ptp: cpts: use helpers for converting ns to timespec. 2015-03-31 17:19:19 -04:00
tile ptp: tilegx: convert to the 64 bit get/set time methods. 2015-03-31 12:01:18 -04:00
toshiba ethernet: codespell comment spelling fixes 2015-03-08 22:54:22 -04:00
tundra
via via-velocity: constify of_device_id array 2015-03-17 15:00:24 -04:00
wiznet Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-03-20 18:51:09 -04:00
xilinx ethernet: Use bool function returns of true/false instead of 1/0 2015-03-31 14:09:49 -04:00
xircom
xscale Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-03-03 21:16:48 -05:00
dnet.c
dnet.h
ec_bhf.c
ethoc.c net: ethoc: constify of_device_id array 2015-03-17 15:00:21 -04:00
fealnx.c
jme.c
jme.h
Kconfig
korina.c
lantiq_etop.c
Makefile
netx-eth.c