diff options
-rw-r--r-- | Documentation/networking/phy.txt | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/Documentation/networking/phy.txt b/Documentation/networking/phy.txt index bdec0f700bc1..7ecba4fd6cca 100644 --- a/Documentation/networking/phy.txt +++ b/Documentation/networking/phy.txt @@ -210,12 +210,16 @@ Letting the PHY Abstraction Layer do Everything Lastly, once the controller is ready to handle network traffic, you call phy_start(phydev). This tells the PAL that you are ready, and configures the - PHY to connect to the network. If you want to handle your own interrupts, - just set phydev->irq to PHY_IGNORE_INTERRUPT before you call phy_start. - Similarly, if you don't want to use interrupts, set phydev->irq to PHY_POLL. + PHY to connect to the network. If the MAC interrupt of your network driver + also handles PHY status changes, just set phydev->irq to PHY_IGNORE_INTERRUPT + before you call phy_start and use phy_mac_interrupt() from the network + driver. If you don't want to use interrupts, set phydev->irq to PHY_POLL. + phy_start() enables the PHY interrupts (if applicable) and starts the + phylib state machine. When you want to disconnect from the network (even if just briefly), you call - phy_stop(phydev). + phy_stop(phydev). This function also stops the phylib state machine and + disables PHY interrupts. Pause frames / flow control @@ -271,11 +275,9 @@ Doing it all yourself A convenience function to print out the PHY status neatly. - int phy_start_interrupts(struct phy_device *phydev); - int phy_stop_interrupts(struct phy_device *phydev); + void phy_request_interrupt(struct phy_device *phydev); - Requests the IRQ for the PHY interrupts, then enables them for - start, or disables then frees them for stop. + Requests the IRQ for the PHY interrupts. struct phy_device * phy_attach(struct net_device *dev, const char *phy_id, phy_interface_t interface); |