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()
250 int __mdiobus_register(struct mii_bus *bus, struct module *owner) in __mdiobus_register() argument
254 if (NULL == bus || NULL == bus->name || in __mdiobus_register()
255 NULL == bus->read || NULL == bus->write) in __mdiobus_register()
258 BUG_ON(bus->state != MDIOBUS_ALLOCATED && in __mdiobus_register()
259 bus->state != MDIOBUS_UNREGISTERED); in __mdiobus_register()
261 bus->owner = owner; in __mdiobus_register()
262 bus->dev.parent = bus->parent; in __mdiobus_register()
263 bus->dev.class = &mdio_bus_class; in __mdiobus_register()
264 bus->dev.groups = NULL; in __mdiobus_register()
265 dev_set_name(&bus->dev, "%s", bus->id); in __mdiobus_register()
267 err = device_register(&bus->dev); in __mdiobus_register()
269 pr_err("mii_bus %s failed to register\n", bus->id); in __mdiobus_register()
270 put_device(&bus->dev); in __mdiobus_register()
274 mutex_init(&bus->mdio_lock); in __mdiobus_register()
276 if (bus->reset) in __mdiobus_register()
277 bus->reset(bus); in __mdiobus_register()
280 if ((bus->phy_mask & (1 << i)) == 0) { in __mdiobus_register()
283 phydev = mdiobus_scan(bus, i); in __mdiobus_register()
291 bus->state = MDIOBUS_REGISTERED; in __mdiobus_register()
292 pr_info("%s: probed\n", bus->name); in __mdiobus_register()
297 struct phy_device *phydev = bus->phy_map[i]; in __mdiobus_register()
303 device_del(&bus->dev); in __mdiobus_register()
308 void mdiobus_unregister(struct mii_bus *bus) in mdiobus_unregister() argument
312 BUG_ON(bus->state != MDIOBUS_REGISTERED); in mdiobus_unregister()
313 bus->state = MDIOBUS_UNREGISTERED; in mdiobus_unregister()
316 struct phy_device *phydev = bus->phy_map[i]; in mdiobus_unregister()
322 device_del(&bus->dev); in mdiobus_unregister()
334 void mdiobus_free(struct mii_bus *bus) in mdiobus_free() argument
337 if (bus->state == MDIOBUS_ALLOCATED) { in mdiobus_free()
338 kfree(bus); in mdiobus_free()
342 BUG_ON(bus->state != MDIOBUS_UNREGISTERED); in mdiobus_free()
343 bus->state = MDIOBUS_RELEASED; in mdiobus_free()
345 put_device(&bus->dev); in mdiobus_free()
349 struct phy_device *mdiobus_scan(struct mii_bus *bus, int addr) in mdiobus_scan() argument
354 phydev = get_phy_device(bus, addr, false); in mdiobus_scan()
362 of_mdiobus_link_phydev(bus, phydev); in mdiobus_scan()
387 int mdiobus_read_nested(struct mii_bus *bus, int addr, u32 regnum) in mdiobus_read_nested() argument
393 mutex_lock_nested(&bus->mdio_lock, SINGLE_DEPTH_NESTING); in mdiobus_read_nested()
394 retval = bus->read(bus, addr, regnum); in mdiobus_read_nested()
395 mutex_unlock(&bus->mdio_lock); in mdiobus_read_nested()
411 int mdiobus_read(struct mii_bus *bus, int addr, u32 regnum) in mdiobus_read() argument
417 mutex_lock(&bus->mdio_lock); in mdiobus_read()
418 retval = bus->read(bus, addr, regnum); in mdiobus_read()
419 mutex_unlock(&bus->mdio_lock); in mdiobus_read()
439 int mdiobus_write_nested(struct mii_bus *bus, int addr, u32 regnum, u16 val) in mdiobus_write_nested() argument
445 mutex_lock_nested(&bus->mdio_lock, SINGLE_DEPTH_NESTING); in mdiobus_write_nested()
446 err = bus->write(bus, addr, regnum, val); in mdiobus_write_nested()
447 mutex_unlock(&bus->mdio_lock); in mdiobus_write_nested()
464 int mdiobus_write(struct mii_bus *bus, int addr, u32 regnum, u16 val) in mdiobus_write() argument
470 mutex_lock(&bus->mdio_lock); in mdiobus_write()
471 err = bus->write(bus, addr, regnum, val); in mdiobus_write()
472 mutex_unlock(&bus->mdio_lock); in mdiobus_write()