Lines Matching full:pd
367 struct phy_desc *pd = NULL;
370 TAILQ_FOREACH(pd, &sc->phy_desc_head, phy_desc_list) {
371 if (pd->lmacid == lmacid)
375 return (pd);
383 struct phy_desc *pd;
388 pd = get_phy_desc(sc, lmacid);
389 if (pd == NULL) {
396 mii_sc = device_get_softc(pd->miibus);
443 struct phy_desc *pd;
449 pd = get_phy_desc(sc, lmacid);
451 if (pd == NULL) {
452 pd = malloc(sizeof(*pd), M_THUNDER_MDIO, (M_NOWAIT | M_ZERO));
453 if (pd == NULL)
455 pd->ifp = if_alloc(IFT_ETHER);
456 pd->lmacid = lmacid;
459 err = mii_attach(dev, &pd->miibus, pd->ifp,
465 if_free(pd->ifp);
466 free(pd, M_THUNDER_MDIO);
471 TAILQ_INSERT_TAIL(&sc->phy_desc_head, pd, phy_desc_list);
481 struct phy_desc *pd;
486 pd = get_phy_desc(sc, lmacid);
487 if (pd == NULL) {
493 TAILQ_REMOVE(&sc->phy_desc_head, pd, phy_desc_list);
498 if_free(pd->ifp);
500 free(pd, M_THUNDER_MDIO);