mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-22 23:04:43 +00:00
net: phy: Threaded interrupts allow some simplification
The PHY interrupts are now handled in a threaded interrupt handler, which can sleep. The work queue is no longer needed, phy_change() can be called directly. phy_mac_interrupt() still needs to be safe to call in interrupt context, so keep the work queue, and use a helper to call phy_change(). Signed-off-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c974bdbc3e
commit
664fcf123a
3 changed files with 30 additions and 22 deletions
|
@ -343,7 +343,7 @@ struct phy_c45_device_ids {
|
|||
* giving up on the current attempt at acquiring a link
|
||||
* irq: IRQ number of the PHY's interrupt (-1 if none)
|
||||
* phy_timer: The timer for handling the state machine
|
||||
* phy_queue: A work_queue for the interrupt
|
||||
* phy_queue: A work_queue for the phy_mac_interrupt
|
||||
* attached_dev: The attached enet driver's device instance ptr
|
||||
* adjust_link: Callback for the enet controller to respond to
|
||||
* changes in the link state.
|
||||
|
@ -802,7 +802,8 @@ int phy_driver_register(struct phy_driver *new_driver, struct module *owner);
|
|||
int phy_drivers_register(struct phy_driver *new_driver, int n,
|
||||
struct module *owner);
|
||||
void phy_state_machine(struct work_struct *work);
|
||||
void phy_change(struct work_struct *work);
|
||||
void phy_change(struct phy_device *phydev);
|
||||
void phy_change_work(struct work_struct *work);
|
||||
void phy_mac_interrupt(struct phy_device *phydev, int new_link);
|
||||
void phy_start_machine(struct phy_device *phydev);
|
||||
void phy_stop_machine(struct phy_device *phydev);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue