• Martin Blumenstingl's avatar
    net: phy: icplus: implement .did_interrupt for IP101A/G · f7e290fb
    Martin Blumenstingl authored
    The IP101A_G_IRQ_CONF_STATUS register has bits to detect which
    interrupts have fired. Implement the .did_interrupt callback to let the
    PHY core know whether the interrupt was for this specific PHY.
    
    This is useful for debugging interrupt problems with 32-pin IP101GR PHYs
    where the interrupt line is shared with the RX_ERR (receive error
    status) signal. The default values are:
    - RX_ERR is enabled by default (LOW means that there is no receive
      error)
    - the PHY's interrupt line is configured "active low" by default
    
    Without any additional changes there is a flood of interrupts if the
    RX_ERR/INTR32 signal is configured in RX_ERR mode (which is the
    default). Having a did_interrupt ensures that the PHY core returns
    IRQ_NONE instead of endlessly triggering the PHY state machine.
    Additionally the kernel will report this after a while:
      irq 28: nobody cared (try booting with the "irqpoll" option)
    Signed-off-by: default avatarMartin Blumenstingl <martin.blumenstingl@googlemail.com>
    Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    f7e290fb
icplus.c 6.47 KB