]> git.baikalelectronics.ru Git - kernel.git/commit
USB: musb: Fix CPPI IRQs not being signaled
authorDaniel Glöckner <dg@emlix.com>
Tue, 17 Nov 2009 09:52:57 +0000 (15:22 +0530)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 1 Dec 2009 00:43:16 +0000 (16:43 -0800)
commitd295373b7c47a3c5539bc785090004cbc9dc0598
treefa199bba40a29c2f46970dca3f325354362630cd
parent763597a30f5b6d0257ee55b0493aee6f3614344b
USB: musb: Fix CPPI IRQs not being signaled

On tx channel abort a cppi interrupt is generated for a short time by
setting the lowest bit of the TCPPICOMPPTR register. It is then reset
immediately by clearing the bit. When the interrupt handler is run,
it does not detect an interrupt in the TCPPIMSKSR or RCPPIMSKSR
registers and thus exits early without writing the TCPPIEOIR register.
It appears that this inhibits further cppi interrupts until the handler
is called by chance, f.ex. from davinci_interrupt().

By moving the unmasking of the interrupt below the writes to
TCPPICOMPPTR, no interrupt is generated and no write to TCPPIEOIR is
necessary.

Signed-off-by: Daniel Glöckner <dg@emlix.com>
Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/musb/cppi_dma.c