Lines Matching refs:bus

51 	struct mii_bus *bus;  in mdiobus_alloc_size()  local
52 size_t aligned_size = ALIGN(sizeof(*bus), NETDEV_ALIGN); in mdiobus_alloc_size()
59 alloc_size = sizeof(*bus); in mdiobus_alloc_size()
61 bus = kzalloc(alloc_size, GFP_KERNEL); in mdiobus_alloc_size()
62 if (bus) { in mdiobus_alloc_size()
63 bus->state = MDIOBUS_ALLOCATED; in mdiobus_alloc_size()
65 bus->priv = (void *)bus + aligned_size; in mdiobus_alloc_size()
68 return bus; in mdiobus_alloc_size()
103 struct mii_bus **ptr, *bus; in devm_mdiobus_alloc_size() local
110 bus = mdiobus_alloc_size(sizeof_priv); in devm_mdiobus_alloc_size()
111 if (bus) { in devm_mdiobus_alloc_size()
112 *ptr = bus; in devm_mdiobus_alloc_size()
118 return bus; in devm_mdiobus_alloc_size()
129 void devm_mdiobus_free(struct device *dev, struct mii_bus *bus) in devm_mdiobus_free() argument
134 devm_mdiobus_match, bus); in devm_mdiobus_free()
148 struct mii_bus *bus = to_mii_bus(d); in mdiobus_release() local
149 BUG_ON(bus->state != MDIOBUS_RELEASED && in mdiobus_release()
151 bus->state != MDIOBUS_ALLOCATED); in mdiobus_release()
152 kfree(bus); in mdiobus_release()
245 int mdiobus_register(struct mii_bus *bus) in mdiobus_register() argument
249 if (NULL == bus || NULL == bus->name || in mdiobus_register()
250 NULL == bus->read || NULL == bus->write) in mdiobus_register()
253 BUG_ON(bus->state != MDIOBUS_ALLOCATED && in mdiobus_register()
254 bus->state != MDIOBUS_UNREGISTERED); in mdiobus_register()
256 bus->dev.parent = bus->parent; in mdiobus_register()
257 bus->dev.class = &mdio_bus_class; in mdiobus_register()
258 bus->dev.groups = NULL; in mdiobus_register()
259 dev_set_name(&bus->dev, "%s", bus->id); in mdiobus_register()
261 err = device_register(&bus->dev); in mdiobus_register()
263 pr_err("mii_bus %s failed to register\n", bus->id); in mdiobus_register()
264 put_device(&bus->dev); in mdiobus_register()
268 mutex_init(&bus->mdio_lock); in mdiobus_register()
270 if (bus->reset) in mdiobus_register()
271 bus->reset(bus); in mdiobus_register()
274 if ((bus->phy_mask & (1 << i)) == 0) { in mdiobus_register()
277 phydev = mdiobus_scan(bus, i); in mdiobus_register()
285 bus->state = MDIOBUS_REGISTERED; in mdiobus_register()
286 pr_info("%s: probed\n", bus->name); in mdiobus_register()
291 if (bus->phy_map[i]) in mdiobus_register()
292 device_unregister(&bus->phy_map[i]->dev); in mdiobus_register()
294 device_del(&bus->dev); in mdiobus_register()
299 void mdiobus_unregister(struct mii_bus *bus) in mdiobus_unregister() argument
303 BUG_ON(bus->state != MDIOBUS_REGISTERED); in mdiobus_unregister()
304 bus->state = MDIOBUS_UNREGISTERED; in mdiobus_unregister()
306 device_del(&bus->dev); in mdiobus_unregister()
308 if (bus->phy_map[i]) in mdiobus_unregister()
309 device_unregister(&bus->phy_map[i]->dev); in mdiobus_unregister()
310 bus->phy_map[i] = NULL; in mdiobus_unregister()
323 void mdiobus_free(struct mii_bus *bus) in mdiobus_free() argument
326 if (bus->state == MDIOBUS_ALLOCATED) { in mdiobus_free()
327 kfree(bus); in mdiobus_free()
331 BUG_ON(bus->state != MDIOBUS_UNREGISTERED); in mdiobus_free()
332 bus->state = MDIOBUS_RELEASED; in mdiobus_free()
334 put_device(&bus->dev); in mdiobus_free()
338 struct phy_device *mdiobus_scan(struct mii_bus *bus, int addr) in mdiobus_scan() argument
343 phydev = get_phy_device(bus, addr, false); in mdiobus_scan()
351 of_mdiobus_link_phydev(bus, phydev); in mdiobus_scan()
373 int mdiobus_read(struct mii_bus *bus, int addr, u32 regnum) in mdiobus_read() argument
379 mutex_lock(&bus->mdio_lock); in mdiobus_read()
380 retval = bus->read(bus, addr, regnum); in mdiobus_read()
381 mutex_unlock(&bus->mdio_lock); in mdiobus_read()
398 int mdiobus_write(struct mii_bus *bus, int addr, u32 regnum, u16 val) in mdiobus_write() argument
404 mutex_lock(&bus->mdio_lock); in mdiobus_write()
405 err = bus->write(bus, addr, regnum, val); in mdiobus_write()
406 mutex_unlock(&bus->mdio_lock); in mdiobus_write()