summaryrefslogtreecommitdiffstats
path: root/Documentation/networking
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/networking')
-rw-r--r--Documentation/networking/phy.txt18
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);