phylib: Allow early-out in phy_change
authorAnatolij Gustschin <agust@denx.de>
Tue, 7 Apr 2009 02:01:42 +0000 (02:01 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 13 Apr 2009 21:51:23 +0000 (14:51 -0700)
commita8729eb302a5b5da8b0b4d29582c42648a2e0f12
tree88af13216c6c7ae1b7a802e65996f6a0db447a4b
parent140bc92903287cff4545e358c1651e4b7312cbd3
phylib: Allow early-out in phy_change

Marvell 88E1121R Dual PHY device can be hardware-configured
to use shared interrupt pin for both PHY ports. For such
PHY configurations using shared PHY interrupt phy_interrupt()
handler will also schedule a work for PHY port which didn't
cause an interrupt.

This patch adds a possibility for PHY drivers to provide
did_interrupt() function which reports if the PHY (or a PHY
port in a multi-PHY device) generated an interrupt. This
function is called in phy_change() as phy_change() shouldn't
proceed if it is invoked for a PHY which didn't cause an
interrupt. So check for interrupt originator in phy_change()
to allow early-out.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/phy.c
include/linux/phy.h