-
Notifications
You must be signed in to change notification settings - Fork 5.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
sc16is752 infinite interrupt loop in kernel module #2676
Comments
Looks like I found a solution. Errors from LSR reads only if something placed in receiver FIFO, but what happens if there is no data in FIFO and any error occurred? It's just return true from sc16is7xx_port_irq and keep poling further in the endless loop. It seems like a wrong behavior. I added "return true" if rxlen is zero and now it works without hanging, But I think the right way is call sc16is7xx_handle_rx(port, rxlen, iir) without any check of buffer length at all. |
There are a number of users of this device. Please post your patch so I can better understand what you mean. |
patch.txt |
It still hangs. But now it takes about 5 days for. |
patch.txt |
See: #2676 Signed-off-by: Phil Elwell <[email protected]>
See: #2676 Signed-off-by: Phil Elwell <[email protected]>
Thanks - that makes much more sense. It's now in rpi-4.14.y and rpi-4.19.y. |
See: raspberrypi/linux#2676 Signed-off-by: Phil Elwell <[email protected]> Signed-off-by: ahmedradaideh <[email protected]>
See: raspberrypi/linux#2676 Signed-off-by: Phil Elwell <[email protected]> Signed-off-by: ahmedradaideh <[email protected]>
See: #2676 Signed-off-by: Phil Elwell <[email protected]>
See: #2676 Signed-off-by: Phil Elwell <[email protected]>
kernel: sc16is7xx: Don't spin if no data received See: raspberrypi/linux#2676 kernel: overlays: uart0 - return GPIOs 14 and 15 to inputs See: https://www.raspberrypi.org/forums/viewtopic.php?p=1388713#p1316977
kernel: sc16is7xx: Don't spin if no data received See: raspberrypi/linux#2676 kernel: overlays: uart0 - return GPIOs 14 and 15 to inputs See: https://www.raspberrypi.org/forums/viewtopic.php?p=1388713#p1316977
See: #2676 Signed-off-by: Phil Elwell <[email protected]>
See: #2676 Signed-off-by: Phil Elwell <[email protected]>
See: #2676 Signed-off-by: Phil Elwell <[email protected]>
See: #2676 Signed-off-by: Phil Elwell <[email protected]>
See: #2676 Signed-off-by: Phil Elwell <[email protected]>
See: #2676 Signed-off-by: Phil Elwell <[email protected]>
See: #2676 Signed-off-by: Phil Elwell <[email protected]>
See: raspberrypi/linux#2676 Signed-off-by: Phil Elwell <[email protected]>
See: #2676 Signed-off-by: Phil Elwell <[email protected]>
See: #2676 Signed-off-by: Phil Elwell <[email protected]>
See: #2676 Signed-off-by: Phil Elwell <[email protected]>
See: #2676 Signed-off-by: Phil Elwell <[email protected]>
See: #2676 Signed-off-by: Phil Elwell <[email protected]>
See: #2676 Signed-off-by: Phil Elwell <[email protected]>
See: #2676 Signed-off-by: Phil Elwell <[email protected]>
See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: #2676 Signed-off-by: Phil Elwell <[email protected]>
I made a custom board with sc16is752. Everything work fine until kernel stall at 100% CPU usage and IRQ line hangs at low state and meander on the CS line. Looks like it run in circle in the sc16is7xx_port_irq handler. It is only possible if SC16IS7XX_IIR_NO_INT_BIT in IIR is active.
Any activity on RX line make it working back again.
This situation repeats at least 2-10 hr.
The text was updated successfully, but these errors were encountered: