|
@@ -175,38 +175,39 @@ int mii_discover_phy(struct eth_device *dev)
|
|
#ifdef ET_DEBUG
|
|
#ifdef ET_DEBUG
|
|
printf("PHY type 0x%x pass %d type\n", phytype, pass);
|
|
printf("PHY type 0x%x pass %d type\n", phytype, pass);
|
|
#endif
|
|
#endif
|
|
- if (phytype != 0xffff) {
|
|
|
|
- phyaddr = phyno;
|
|
|
|
- phytype <<= 16;
|
|
|
|
- phytype |=
|
|
|
|
- mii_send(mk_mii_read(phyno, PHY_PHYIDR2));
|
|
|
|
|
|
+ if (phytype == 0xffff)
|
|
|
|
+ continue;
|
|
|
|
+ phyaddr = phyno;
|
|
|
|
+ phytype <<= 16;
|
|
|
|
+ phytype |=
|
|
|
|
+ mii_send(mk_mii_read(phyno, PHY_PHYIDR2));
|
|
|
|
|
|
#ifdef ET_DEBUG
|
|
#ifdef ET_DEBUG
|
|
- printf("PHY @ 0x%x pass %d\n", phyno, pass);
|
|
|
|
|
|
+ printf("PHY @ 0x%x pass %d\n", phyno, pass);
|
|
#endif
|
|
#endif
|
|
|
|
|
|
- for (i = 0; i < (sizeof(phyinfo) / sizeof(phy_info_t)); i++) {
|
|
|
|
- if (phyinfo[i].phyid == phytype) {
|
|
|
|
|
|
+ for (i = 0; (i < (sizeof(phyinfo) / sizeof(phy_info_t)))
|
|
|
|
+ && (phyinfo[i].phyid != 0); i++) {
|
|
|
|
+ if (phyinfo[i].phyid == phytype) {
|
|
#ifdef ET_DEBUG
|
|
#ifdef ET_DEBUG
|
|
- printf("phyid %x - %s\n",
|
|
|
|
- phyinfo[i].phyid,
|
|
|
|
- phyinfo[i].strid);
|
|
|
|
|
|
+ printf("phyid %x - %s\n",
|
|
|
|
+ phyinfo[i].phyid,
|
|
|
|
+ phyinfo[i].strid);
|
|
#endif
|
|
#endif
|
|
- strcpy(info->phy_name, phyinfo[i].strid);
|
|
|
|
- info->phyname_init = 1;
|
|
|
|
- found = 1;
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
|
|
+ strcpy(info->phy_name, phyinfo[i].strid);
|
|
|
|
+ info->phyname_init = 1;
|
|
|
|
+ found = 1;
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
|
|
+ }
|
|
|
|
|
|
- if (!found) {
|
|
|
|
|
|
+ if (!found) {
|
|
#ifdef ET_DEBUG
|
|
#ifdef ET_DEBUG
|
|
- printf("0x%08x\n", phytype);
|
|
|
|
|
|
+ printf("0x%08x\n", phytype);
|
|
#endif
|
|
#endif
|
|
- strcpy(info->phy_name, "unknown");
|
|
|
|
- info->phyname_init = 1;
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
|
|
+ strcpy(info->phy_name, "unknown");
|
|
|
|
+ info->phyname_init = 1;
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|