diff --git a/drivers/media/platform/rockchip/ispp/common.c b/drivers/media/platform/rockchip/ispp/common.c index 7427c2fc7bbb..ebd31d319a1c 100644 --- a/drivers/media/platform/rockchip/ispp/common.c +++ b/drivers/media/platform/rockchip/ispp/common.c @@ -79,7 +79,7 @@ int rkispp_allow_buffer(struct rkispp_device *dev, attrs |= DMA_ATTR_FORCE_CONTIGUOUS; buf->size = PAGE_ALIGN(buf->size); mem_priv = g_ops->alloc(dev->hw_dev->dev, attrs, buf->size, - DMA_BIDIRECTIONAL, GFP_KERNEL); + DMA_BIDIRECTIONAL, GFP_KERNEL | GFP_DMA32); if (IS_ERR_OR_NULL(mem_priv)) { ret = -ENOMEM; goto err; @@ -411,7 +411,7 @@ static int rkispp_alloc_page_dummy_buf(struct rkispp_device *dev, u32 size) struct sg_table *sg = NULL; int ret = -ENOMEM; - page = alloc_pages(GFP_KERNEL, 0); + page = alloc_pages(GFP_KERNEL | GFP_DMA32, 0); if (!page) goto err; diff --git a/drivers/media/platform/rockchip/ispp/stats.c b/drivers/media/platform/rockchip/ispp/stats.c index 97ffb186dee9..5f0601ce708a 100644 --- a/drivers/media/platform/rockchip/ispp/stats.c +++ b/drivers/media/platform/rockchip/ispp/stats.c @@ -308,7 +308,7 @@ static int rkispp_stats_init_vb2_queue(struct vb2_queue *q, q->dev = stats_vdev->dev->hw_dev->dev; if (stats_vdev->dev->hw_dev->is_dma_contig) q->dma_attrs = DMA_ATTR_FORCE_CONTIGUOUS; - + q->gfp_flags = GFP_DMA32; return vb2_queue_init(q); } diff --git a/drivers/media/platform/rockchip/ispp/stream.c b/drivers/media/platform/rockchip/ispp/stream.c index 4ef93d571689..62b8fb40f021 100644 --- a/drivers/media/platform/rockchip/ispp/stream.c +++ b/drivers/media/platform/rockchip/ispp/stream.c @@ -1843,6 +1843,7 @@ static int rkispp_init_vb2_queue(struct vb2_queue *q, q->allow_cache_hints = 1; if (stream->isppdev->hw_dev->is_dma_contig) q->dma_attrs = DMA_ATTR_FORCE_CONTIGUOUS; + q->gfp_flags = GFP_DMA32; return vb2_queue_init(q); }