| From ccc048c244b5b6dd848113931676773657cf7fc3 Mon Sep 17 00:00:00 2001 |
| From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> |
| Date: Fri, 20 Dec 2013 01:39:52 +0300 |
| Subject: sh_eth: add PHY IRQ to platform data |
| |
| Allow the platform code to pass PHY's IRQ to the driver. Print this IRQ along |
| with the other PHY datails in sh_eth_phy_init(). |
| |
| Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| (cherry picked from commit 18be099badcfc4a12f058addc55c4270d5a8bec8) |
| (Queued by David Miller for v3.14 but not yet in Linus's tree) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| drivers/net/ethernet/renesas/sh_eth.c | 6 ++++-- |
| include/linux/sh_eth.h | 1 + |
| 2 files changed, 5 insertions(+), 2 deletions(-) |
| |
| diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c |
| index 7f6dc6d8642e..2b8ef6ec0025 100644 |
| --- a/drivers/net/ethernet/renesas/sh_eth.c |
| +++ b/drivers/net/ethernet/renesas/sh_eth.c |
| @@ -1685,8 +1685,8 @@ static int sh_eth_phy_init(struct net_device *ndev) |
| return PTR_ERR(phydev); |
| } |
| |
| - dev_info(&ndev->dev, "attached phy %i to driver %s\n", |
| - phydev->addr, phydev->drv->name); |
| + dev_info(&ndev->dev, "attached PHY %d (IRQ %d) to driver %s\n", |
| + phydev->addr, phydev->irq, phydev->drv->name); |
| |
| mdp->phydev = phydev; |
| |
| @@ -2544,6 +2544,8 @@ static int sh_mdio_init(struct net_device *ndev, int id, |
| |
| for (i = 0; i < PHY_MAX_ADDR; i++) |
| mdp->mii_bus->irq[i] = PHY_POLL; |
| + if (pd->phy_irq > 0) |
| + mdp->mii_bus->irq[pd->phy] = pd->phy_irq; |
| |
| /* register mdio bus */ |
| ret = mdiobus_register(mdp->mii_bus); |
| diff --git a/include/linux/sh_eth.h b/include/linux/sh_eth.h |
| index 15b2ea9381bd..8c3dc4cf838c 100644 |
| --- a/include/linux/sh_eth.h |
| +++ b/include/linux/sh_eth.h |
| @@ -7,6 +7,7 @@ enum {EDMAC_LITTLE_ENDIAN, EDMAC_BIG_ENDIAN}; |
| |
| struct sh_eth_plat_data { |
| int phy; |
| + int phy_irq; |
| int edmac_endian; |
| phy_interface_t phy_interface; |
| void (*set_mdio_gate)(void *addr); |
| -- |
| 1.8.5.rc3 |
| |