Lines Matching refs:fixup
435 struct phy_fixup *fixup = kzalloc(sizeof(*fixup), GFP_KERNEL); in phy_register_fixup() local
437 if (!fixup) in phy_register_fixup()
440 strscpy(fixup->bus_id, bus_id, sizeof(fixup->bus_id)); in phy_register_fixup()
441 fixup->phy_uid = phy_uid; in phy_register_fixup()
442 fixup->phy_uid_mask = phy_uid_mask; in phy_register_fixup()
443 fixup->run = run; in phy_register_fixup()
446 list_add_tail(&fixup->list, &phy_fixup_list); in phy_register_fixup()
477 struct phy_fixup *fixup; in phy_unregister_fixup() local
484 fixup = list_entry(pos, struct phy_fixup, list); in phy_unregister_fixup()
486 if ((!strcmp(fixup->bus_id, bus_id)) && in phy_unregister_fixup()
487 phy_id_compare(fixup->phy_uid, phy_uid, phy_uid_mask)) { in phy_unregister_fixup()
488 list_del(&fixup->list); in phy_unregister_fixup()
489 kfree(fixup); in phy_unregister_fixup()
517 static int phy_needs_fixup(struct phy_device *phydev, struct phy_fixup *fixup) in phy_needs_fixup() argument
519 if (strcmp(fixup->bus_id, phydev_name(phydev)) != 0) in phy_needs_fixup()
520 if (strcmp(fixup->bus_id, PHY_ANY_ID) != 0) in phy_needs_fixup()
523 if (!phy_id_compare(phydev->phy_id, fixup->phy_uid, in phy_needs_fixup()
524 fixup->phy_uid_mask)) in phy_needs_fixup()
525 if (fixup->phy_uid != PHY_ANY_UID) in phy_needs_fixup()
534 struct phy_fixup *fixup; in phy_scan_fixups() local
537 list_for_each_entry(fixup, &phy_fixup_list, list) { in phy_scan_fixups()
538 if (phy_needs_fixup(phydev, fixup)) { in phy_scan_fixups()
539 int err = fixup->run(phydev); in phy_scan_fixups()