Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

libphy: add phy_find_first function

Many drivers do this in them manually. Now they can use this function.

Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Jiri Pirko and committed by
David S. Miller
f8f76db1 6683ece3

+17
+16
drivers/net/phy/phy_device.c
··· 277 277 EXPORT_SYMBOL(phy_device_register); 278 278 279 279 /** 280 + * phy_find_first - finds the first PHY device on the bus 281 + * @bus: the target MII bus 282 + */ 283 + struct phy_device *phy_find_first(struct mii_bus *bus) 284 + { 285 + int addr; 286 + 287 + for (addr = 0; addr < PHY_MAX_ADDR; addr++) { 288 + if (bus->phy_map[addr]) 289 + return bus->phy_map[addr]; 290 + } 291 + return NULL; 292 + } 293 + EXPORT_SYMBOL(phy_find_first); 294 + 295 + /** 280 296 * phy_prepare_link - prepares the PHY layer to monitor link status 281 297 * @phydev: target phy_device struct 282 298 * @handler: callback function for link status change notifications
+1
include/linux/phy.h
··· 452 452 u32 flags, phy_interface_t interface); 453 453 struct phy_device * phy_attach(struct net_device *dev, 454 454 const char *bus_id, u32 flags, phy_interface_t interface); 455 + struct phy_device *phy_find_first(struct mii_bus *bus); 455 456 int phy_connect_direct(struct net_device *dev, struct phy_device *phydev, 456 457 void (*handler)(struct net_device *), u32 flags, 457 458 phy_interface_t interface);