Tegra 2: Spurious interrupts from UARTA (@70006000)

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

 



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)

[1] Sidenote on 8250 vs tegra-hsuart driver
  The UART blocks of the Tegra2 CPU can be configured using either the
  tegra_hsuart driver or the plain 8250 driver. Our devicetree uses 8250
  for UARTA and hsuart for the others, as an early serial console on
  UARTA only seems to work using the 8250 driver. Seemingly no spurious
  interrupts are triggered on the other ports still using the
  tegra_hsuart driver.

Currently I have two basic ideas to follow:

a) the spurious interrupts are triggered by the UART, even though the
IIR shows no available interrupts.

  - I have added a double-write of the IER when disabling the specific
  interrupt, just in case that might help. It did not.

b) the spurious interrupts continue to be triggered by the Local
Interrupt Controller (LIC), even though the UART stopped triggering it.

  - This might correlate to another issue I have seen a few (rare) times
  where spi-tegra-slink seemed to show a similar behaviour. However so
  far I was unable to further debug this as this happens very rarely.


If you have any ideas or any further information would be helpful,
please let me know!

Thanks in advance,

David Piegdon


--
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