Hello,
On 1/8/2013 11:15 AM, Federico Vaga wrote:
> > @@ -165,7 +161,8 @@ static void *vb2_dc_alloc(void *alloc_ctx, unsigned
> > long size)>
> > /* align image size to PAGE_SIZE */
> > size = PAGE_ALIGN(size);
> >
> > - buf->vaddr = dma_alloc_coherent(dev, size, &buf->dma_addr,
GFP_KERNEL);
> > + buf->vaddr = dma_alloc_coherent(dev, size, &buf->dma_addr,
> > +
GFP_KERNEL | conf->mem_flags);
>
> I think we can add GFP_DMA flag unconditionally to the vb2_dc_contig
> allocator.
> It won't hurt existing clients as most of nowadays platforms doesn't
> have DMA
> zone (GFP_DMA is ignored in such case), but it should fix the issues
> with some
> older and non-standard systems.
I did not set GFP_DMA fixed in the allocator because I do not want to brake
something in the future. On x86 platform GFP_DMA allocates under 16MB and this
limit can be too strict. When many other drivers use GFP_DMA we can saturate
this tiny zone.
As you said, this fix the issue with _older_ and _non-standard_ (like sta2x11)
systems. But this fix has effect on every other standard and new systems.
That's why I preferred to set the flag optionally.
Ok, then I would simply pass the flags from the driver without any
alternation
in the allocator itself, so drivers can pass 'GFP_KERNEL' or
'GFP_KERNEL | GFP_DMA' depending on their preference. Please also update
all
the existing clients of vb2_dma_dc allocator.
Best regards
--
Marek Szyprowski
Samsung Poland R&D Center
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html