media: tw686x: Fix incorrect vb2_mem_ops GFP flags
authorEzequiel Garcia <ezequiel@collabora.com>
Fri, 18 May 2018 21:07:48 +0000 (17:07 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Mon, 28 May 2018 20:21:41 +0000 (16:21 -0400)
When the driver is configured in the "memcpy" dma-mode,
it uses vb2_vmalloc_memops, which is backed by a SLAB
allocator and so shouldn't be using GFP_DMA32.

Fix it.

Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/pci/tw686x/tw686x-video.c

index c3fafa97b2d0c1dd30037ff77d72f0baeb1dc221..0ea8dd44026c34e6772b35c391aa03d15aefeffd 100644 (file)
@@ -1228,7 +1228,8 @@ int tw686x_video_init(struct tw686x_dev *dev)
                vc->vidq.timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
                vc->vidq.min_buffers_needed = 2;
                vc->vidq.lock = &vc->vb_mutex;
-               vc->vidq.gfp_flags = GFP_DMA32;
+               vc->vidq.gfp_flags = dev->dma_mode != TW686X_DMA_MODE_MEMCPY ?
+                                    GFP_DMA32 : 0;
                vc->vidq.dev = &dev->pci_dev->dev;
 
                err = vb2_queue_init(&vc->vidq);