summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2013-12-20 02:16:12 +0100
committerDavid S. Miller <davem@davemloft.net>2013-12-20 20:48:49 -0500
commit656a7c2b1210deddf76444ecc76e058c0404ce80 (patch)
treea9c9a1b813bdc42cd41eebf335fab8591280877b
parentbea69c47f5b93b3142f8833f8a34b666d5d7d6a7 (diff)
b44: do not set PHY address to 30 for every ext PHY
b44_phy_reset() will fail for an external PHY and only work with the internal PHY, this was an old workaround when the detection of an external switch based on the PHY address failed and it is not needed any more. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/broadcom/b44.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/ethernet/broadcom/b44.c b/drivers/net/ethernet/broadcom/b44.c
index d17561bd7ca0..839dd9092b17 100644
--- a/drivers/net/ethernet/broadcom/b44.c
+++ b/drivers/net/ethernet/broadcom/b44.c
@@ -2412,8 +2412,11 @@ static int b44_init_one(struct ssb_device *sdev,
b44_chip_reset(bp, B44_CHIP_RESET_FULL);
/* do a phy reset to test if there is an active phy */
- if (b44_phy_reset(bp) < 0)
- bp->phy_addr = B44_PHY_ADDR_NO_LOCAL_PHY;
+ err = b44_phy_reset(bp);
+ if (err < 0) {
+ dev_err(sdev->dev, "phy reset failed\n");
+ goto err_out_unregister_netdev;
+ }
if (bp->flags & B44_FLAG_EXTERNAL_PHY) {
err = b44_register_phy_one(bp);