Skip to content

Commit

Permalink
phylib: Add interrupt source check function to M88E1121R driver
Browse files Browse the repository at this point in the history
Add did_interrupt() function to check if a PHY port
really caused an interrupt. This is needed in the case
of shared PHY interrupt pin configuration to stop
interrupt event processing for PHY ports which didn't
cause an interrupt.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Anatolij Gustschin authored and David S. Miller committed Apr 13, 2009
1 parent a8729eb commit dcd07be
Showing 1 changed file with 13 additions and 0 deletions.
13 changes: 13 additions & 0 deletions drivers/net/phy/marvell.c
Original file line number Diff line number Diff line change
Expand Up @@ -458,6 +458,18 @@ static int marvell_read_status(struct phy_device *phydev)
return 0;
}

static int m88e1121_did_interrupt(struct phy_device *phydev)
{
int imask;

imask = phy_read(phydev, MII_M1011_IEVENT);

if (imask & MII_M1011_IMASK_INIT)
return 1;

return 0;
}

static struct phy_driver marvell_drivers[] = {
{
.phy_id = 0x01410c60,
Expand Down Expand Up @@ -520,6 +532,7 @@ static struct phy_driver marvell_drivers[] = {
.read_status = &marvell_read_status,
.ack_interrupt = &marvell_ack_interrupt,
.config_intr = &marvell_config_intr,
.did_interrupt = &m88e1121_did_interrupt,
.driver = { .owner = THIS_MODULE },
},
{
Expand Down

0 comments on commit dcd07be

Please sign in to comment.