HI Marc & Stephen,

Most of engineers are out until New Year's Day.
 
LAN78xx driver uses irq_domain for phy interrupt, but smsc95xx uses polling.
Need to check flow again, you can try that comment out 
"lan78xx_setup_irq_domain" to
make dev->domain_data.phyirq = 0 which forces PHY polling.
 
Can you share if this is filed on RPI forum?
Also, it would be appreciated if you can create a ticket on Microchip site at
https://www.microchip.com/technical-support/hot-topics

Best Regards,
Woojung

> -----Original Message-----
> From: Marc Zyngier <marc.zyng...@arm.com>
> Sent: Saturday, December 29, 2018 4:42 AM
> To: Stefan Wahren <stefan.wah...@i2se.com>
> Cc: Woojung Huh - C21699 <woojung....@microchip.com>; Eric Anholt
> <e...@anholt.net>; UNGLinuxDriver <unglinuxdri...@microchip.com>;
> netdev@vger.kernel.org; linux-arm-ker...@lists.infradead.org
> Subject: Re: lan78xx: WARNING: irq 79 handler enabled interrupts
> 
> On Sat, 29 Dec 2018 00:02:57 +0000,
> Stefan Wahren <stefan.wah...@i2se.com> wrote:
> 
> Hi Stephan,
> 
> >
> > Hi,
> > while booting my Raspberry Pi 3 B+ with Linux 4.20 (arm64/defconfig)
> > i'm getting the following warning:
> >
> > [   11.005738] irq 79 handler irq_default_primary_handler+0x0/0x8 enabled
> interrupts
> 
> [...]
> 
> > This seems to come from the lan78xx driver, because i don't get this
> > warning on the RPI 3B (smsc95xx).
> >
> > What's the approach to fix this issue?  Is it just simply replace
> > spin_lock_irq() with spin_lock_irqsave() at the right places?
> 
> No, this is more pathological than that. The USB framework seems to be
> using threaded interrupts, which implies that interrupts are
> re-enabled as soon as it has run.
> 
> In turn, this driver is using handle_simple_irq() as its flow, which
> definitely expect interrupts to be disabled.
> 
> I have no insight in how this driver works, but I'm happy to help if
> someone explains the interrupt flow of this thing.
> 
>       M.
> 
> --
> Jazz is not dead, it just smell funny.

Reply via email to