Lines Matching refs:fp

54 	struct fixed_phy *fp;  in fixed_phy_change_carrier()  local
59 list_for_each_entry(fp, &fmb->phys, node) { in fixed_phy_change_carrier()
60 if (fp->addr == phydev->mdio.addr) { in fixed_phy_change_carrier()
61 fp->no_carrier = !new_carrier; in fixed_phy_change_carrier()
69 static void fixed_phy_update(struct fixed_phy *fp) in fixed_phy_update() argument
71 if (!fp->no_carrier && fp->link_gpiod) in fixed_phy_update()
72 fp->status.link = !!gpiod_get_value_cansleep(fp->link_gpiod); in fixed_phy_update()
78 struct fixed_phy *fp; in fixed_mdio_read() local
80 list_for_each_entry(fp, &fmb->phys, node) { in fixed_mdio_read()
81 if (fp->addr == phy_addr) { in fixed_mdio_read()
86 s = read_seqcount_begin(&fp->seqcount); in fixed_mdio_read()
87 fp->status.link = !fp->no_carrier; in fixed_mdio_read()
89 if (fp->link_update) in fixed_mdio_read()
90 fp->link_update(fp->phydev->attached_dev, in fixed_mdio_read()
91 &fp->status); in fixed_mdio_read()
93 fixed_phy_update(fp); in fixed_mdio_read()
94 state = fp->status; in fixed_mdio_read()
95 } while (read_seqcount_retry(&fp->seqcount, s)); in fixed_mdio_read()
120 struct fixed_phy *fp; in fixed_phy_set_link_update() local
125 list_for_each_entry(fp, &fmb->phys, node) { in fixed_phy_set_link_update()
126 if (fp->addr == phydev->mdio.addr) { in fixed_phy_set_link_update()
127 fp->link_update = link_update; in fixed_phy_set_link_update()
128 fp->phydev = phydev; in fixed_phy_set_link_update()
143 struct fixed_phy *fp; in fixed_phy_add_gpiod() local
149 fp = kzalloc(sizeof(*fp), GFP_KERNEL); in fixed_phy_add_gpiod()
150 if (!fp) in fixed_phy_add_gpiod()
153 seqcount_init(&fp->seqcount); in fixed_phy_add_gpiod()
158 fp->addr = phy_addr; in fixed_phy_add_gpiod()
159 fp->status = *status; in fixed_phy_add_gpiod()
160 fp->link_gpiod = gpiod; in fixed_phy_add_gpiod()
162 fixed_phy_update(fp); in fixed_phy_add_gpiod()
164 list_add_tail(&fp->node, &fmb->phys); in fixed_phy_add_gpiod()
181 struct fixed_phy *fp, *tmp; in fixed_phy_del() local
183 list_for_each_entry_safe(fp, tmp, &fmb->phys, node) { in fixed_phy_del()
184 if (fp->addr == phy_addr) { in fixed_phy_del()
185 list_del(&fp->node); in fixed_phy_del()
186 if (fp->link_gpiod) in fixed_phy_del()
187 gpiod_put(fp->link_gpiod); in fixed_phy_del()
188 kfree(fp); in fixed_phy_del()
383 struct fixed_phy *fp, *tmp; in fixed_mdio_bus_exit() local
389 list_for_each_entry_safe(fp, tmp, &fmb->phys, node) { in fixed_mdio_bus_exit()
390 list_del(&fp->node); in fixed_mdio_bus_exit()
391 kfree(fp); in fixed_mdio_bus_exit()