V4L/DVB (11142): au0828: fix oops on ARM platform when allocating transfer buffers
authorDevin Heitmueller <dheitmueller@linuxtv.org>
Mon, 23 Mar 2009 02:42:26 +0000 (23:42 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 30 Mar 2009 15:43:32 +0000 (12:43 -0300)
Add missing URB_NO_TRANSFER_DMA_MAP flag, since the use of consistent memory
is not permitted for DMA on the ARM platform.

Thanks to Paul Thomas <pthomas8589@gmail.com> for providing sample ARM
hardware that was experiencing the oops (tested on the at91rm9200 based
LinuxStamp).

Thanks to David Brownell <david-b@pacbell.net> for providing insight into the
ARM memory architecture.

Signed-off-by: Devin Heitmueller <dheitmueller@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/au0828/au0828-video.c

index d3a388af46e71245ab3aaef71cb33adf874263ed..f7ad4958b94e507c8635f5bfdb853fc073dd6572 100644 (file)
@@ -267,7 +267,7 @@ int au0828_init_isoc(struct au0828_dev *dev, int max_packets,
                                 au0828_irq_callback, dma_q, 1);
 
                urb->number_of_packets = max_packets;
-               urb->transfer_flags = URB_ISO_ASAP;
+               urb->transfer_flags = URB_ISO_ASAP | URB_NO_TRANSFER_DMA_MAP;
 
                k = 0;
                for (j = 0; j < max_packets; j++) {