On Sun, Oct 25, 2020 at 09:17:58AM +0100, Michael Walle wrote:
> Am 2020-10-24 14:14, schrieb Ioana Ciornei:
> > - Every PHY driver gains a .handle_interrupt() implementation that, for
> >   the most part, would look like below:
> > 
> >     irq_status = phy_read(phydev, INTR_STATUS);
> >     if (irq_status < 0) {
> >             phy_error(phydev);
> >             return IRQ_NONE;
> >     }
> > 
> >     if (irq_status == 0)
> >             return IRQ_NONE;
> > 
> >     phy_trigger_machine(phydev);
> > 
> >     return IRQ_HANDLED;
> 
> Would it make sense to provide this (default) version inside the core?
> Simple PHY drivers then just could set the callback to this function.
> (There must be some property for the INTR_STATUS, which is likely to
> be different between different PHYs, though).

Yes, the interrupt status register's address differs even between PHYs
from the same vendor so making this somehow into a default handler would
mean to add even another callback that actually reads the register.

For simple PHY drivers, the .handle_interrupt() implementation would
mean 15-20 lines of code for a much more straightforward implementation.
I think that's fair.

Ioana

Reply via email to