]> git.baikalelectronics.ru Git - kernel.git/commit
tg3: Fix firmware event timeouts
authorMatt Carlson <mcarlson@broadcom.com>
Fri, 15 Aug 2008 21:10:04 +0000 (14:10 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 15 Aug 2008 21:10:04 +0000 (14:10 -0700)
commit55f011589864d309d17dc62f008e5d3c39bab891
tree8b20fe7ea098ff1f6d04282adc82b779e403e02b
parent5924ec3ebf746f8cb042c4c08d8fcafd1f5c01f8
tg3: Fix firmware event timeouts

The git commit c24a7b61b51c1ff97b14de414f63960a0fe35a42 ("tg3: Add
link state reporting to UMP firmware") introduced code that waits for
previous firmware events to be serviced before attempting to submit a
new event.  Unfortunately that patch contained a bug that cause the
driver to wait 2.5 seconds, rather than 2.5 milliseconds as intended.
This patch fixes that bug.

This bug revealed that not all firmware versions service driver events
though.  Since we do not know which versions of the firmware do and don't
service these events, the driver needs some way to minimize the effects
of the delay.  This patch solves the problem by recording a jiffies
timestamp when it submits an event to the hardware.  If the jiffies
counter shows that 2.5 milliseconds have already passed, a wait is not
needed and the driver can proceed to submit a new 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