diff options
-rw-r--r-- | drivers/net/ethernet/broadcom/b44.c | 6 | ||||
-rw-r--r-- | drivers/net/ethernet/broadcom/b44.h | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/ethernet/broadcom/b44.c b/drivers/net/ethernet/broadcom/b44.c index 5c05d150f67b..09e9e97558b8 100644 --- a/drivers/net/ethernet/broadcom/b44.c +++ b/drivers/net/ethernet/broadcom/b44.c @@ -2206,6 +2206,12 @@ static int b44_init_one(struct ssb_device *sdev, goto err_out_powerdown; } + if (bp->phy_addr == B44_PHY_ADDR_NO_PHY) { + dev_err(sdev->dev, "No PHY present on this MAC, aborting\n"); + err = -ENODEV; + goto err_out_powerdown; + } + bp->mii_if.dev = dev; bp->mii_if.mdio_read = b44_mii_read; bp->mii_if.mdio_write = b44_mii_write; diff --git a/drivers/net/ethernet/broadcom/b44.h b/drivers/net/ethernet/broadcom/b44.h index 57e535768d25..4b0c5d2fa598 100644 --- a/drivers/net/ethernet/broadcom/b44.h +++ b/drivers/net/ethernet/broadcom/b44.h @@ -282,6 +282,7 @@ struct ring_info { #define B44_MCAST_TABLE_SIZE 32 #define B44_PHY_ADDR_NO_LOCAL_PHY 30 /* no local phy regs */ +#define B44_PHY_ADDR_NO_PHY 31 /* no phy present at all */ #define B44_MDC_RATIO 5000000 #define B44_STAT_REG_DECLARE \ |