tg3: Add link state reporting to UMP firmware
authorMatt Carlson <mcarlson@broadcom.com>
Fri, 2 May 2008 23:49:29 +0000 (16:49 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 2 May 2008 23:49:29 +0000 (16:49 -0700)
commit7c5026aa9b81dd45df8d3f4e0be73e485976a8b6
tree09b0e14566d630f1b8d3225b6fda0c2a862519e9
parent109115e1991824b88306b374b763d6857b292aeb
tg3: Add link state reporting to UMP firmware

All variants of the 5714, 5715, and 5780 offer a feature called the
"Universal Management Port".  This feature is implemented in firmware
and is largely transparent to the driver, except...

It turns out that the UMP firmware needs to know the current status
of the link.  Because the firmware cannot touch the PHY registers while
the driver is in control of the device, it needs the driver to report
link status changes through an additional handshaking mechanism.
Without this handshake, it has been observed in the field that the UMP
firmware will not operate correctly.

This patch implements the new handshake with the UMP firmware.  Since
the handshake uses the same mechanism ASF heartbeats use, code was
added to detect and wait for completion of a pending previous event.

Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/tg3.c
drivers/net/tg3.h