/* Description: When a PHY interrupt occurs, the handler disables interrupts, and schedules a work task to clear the interrupt.  */
static irqreturn_t phy_interrupt(int irq, void *phy_dat)
/* Description: When a PHY interrupt occurs, the handler disables interrupts, and schedules a work task to clear the interrupt.  */
static irqreturn_t phy_interrupt(int irq, void *phy_dat)
{
	struct phy_device *phydev = phy_dat;
	if (PHY_HALTED == phydev->state)
		return IRQ_NONE;
	disable_irq_nosync(irq);
	atomic_inc(&phydev->irq_disable);
	schedule_work(&phydev->phy_queue);
	return IRQ_HANDLED;
}