Greg,
Patch 5 in this series seems to explain the best what is happening here:
With the following changes, we fix all in one:
Do the setup, one time, at probe time
Add the IRQF_ONESHOT, ack the interrupt in the threaded handler
Remove the interrupt handler
Set the correct value for the LAG register
Remove all the irq_enabled stuff in the code as the interruption handling is fixed
Remove the 3ms delay
Reorder the initialization routine to be in the right order
We can't revert anything because the breakage was there since the driver was introduced.
So the driver was broken in 4.14, why not just use 4.19 instead? This isn't a 4.14 regression, it's something that obviously no one has noticed for a year now, so why backport these big patches to 4.14 now?
thanks,
greg k-h
This was caught during our functional tests. No direct complains, but, since it included a trace, and there was a fix for it, I thought it could be accepted for upstream v4.14 (it is included in other v4.14 kernels, like Android's).
thanks!