Re: Tegra 2: Spurious interrupts from UARTA (@70006000)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 06/13/2018 04:08 PM, Dmitry Osipenko wrote:
On Tuesday, 12 June 2018 17:14:52 MSK David R. Piegdon wrote:
Hello,

Currently I am debugging an issue on a Toradex Colibri T20 Module
(Tegra2) using kernel 4.9.86 of our own make. This also happens using
a current 4.17 kernel.
I would greatly appreciate any help / pointers on this subject.

When using the UARTA (@70006000) block with the plain 8250 driver [1]
(devicetree: compatible="nvidia,tegra20-uart") we get spurious
interrupts on the corresponding irq line. These seem to correlate with
the driver shortly enabling the IER_THRI (tx queue empty interrupt)
of the 8250 and then disabling it again almost right away, as the
tx queue is empty and no data is available for transmit.
This happens every one in a while, but when it happens, the interrupts
get triggered continuously until the kernel switches to polling.
When resetting the serial port (e.g. close&open) it seems to properly
work again and interrupts are used again.
During the failure, somehow the interrupt continues to be triggered,
even though the IIR register shows no active interrupts (IIR == 0xC1)


Hello David,

TRM says "IS_STA: Interrupt Pending if ZERO" for BIT(1) of UART_IIR_FCR_0
register, this matches the UART standard that kernel follows by checking
whether UART_IIR_NO_INT bit is set in the serial8250_handle_irq(). That bit is
zero in your case, meaning that interrupt is asserted.


Good Evening David,

Just to make sure, you have explicitly defined the functions for UARTA and all spare functions right? According to the TRM, if you don't have the functions explicitly defined, and a function is assigned to both the primary and alternate pingroups, or two functions assigned to the same pingroup, you can get unpredictable behavior.


--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [ARM Kernel]     [Linux ARM]     [Linux ARM MSM]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux