From: Jesse Huang Search PHY address form 0, only for device ID 0x0200 (IP100A). Other device are from PHY address 1. Signed-off-by: Jesse Huang Cc: Jeff Garzik Signed-off-by: Andrew Morton --- drivers/net/sundance.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletion(-) diff -puN drivers/net/sundance.c~sundance-phy-address-form-0-only-for-device-id-0x0200 drivers/net/sundance.c --- a/drivers/net/sundance.c~sundance-phy-address-form-0-only-for-device-id-0x0200 +++ a/drivers/net/sundance.c @@ -559,7 +559,11 @@ static int __devinit sundance_probe1 (st * It seems some phys doesn't deal well with address 0 being accessed * first, so leave address zero to the end of the loop (32 & 31). */ - for (phy = 1; phy <= 32 && phy_idx < MII_CNT; phy++) { + if (sundance_pci_tbl[np->chip_id].device == 0x0200) + phy = 0; + else + phy = 1; + for (; phy <= 32 && phy_idx < MII_CNT; phy++) { int phyx = phy & 0x1f; int mii_status = mdio_read(dev, phyx, MII_BMSR); if (mii_status != 0xffff && mii_status != 0x0000) { _