Re: [RFC/PATCH 0/6] DSPBRIDGE: fix mem+cache API issues

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, May 18, 2010 at 3:53 PM, Ohad Ben-Cohen <ohad@xxxxxxxxxx> wrote:
> On Tue, May 18, 2010 at 3:24 PM, Felipe Contreras
> <felipe.contreras@xxxxxxxxx> wrote:
>>>> Cool. I actually tried your patches to render to the framebuffer, and
>>>> everything seemed to work fine. I didn't check for error codes or
>>>> anything, so I'm not sure what's going on.
>>>
>>> How is the framebuffer mmap'ed ?
>>
>> mmap(NULL, self->mem_info.size, PROT_WRITE, MAP_SHARED, self->overlay_fd, 0);
>>
>>> Can you please tell me more about this scenario ?
>>> (applications + drivers involved).
>>
>> I use gst-omapfb[1], and then it's very easy with a gst-launch command
>
> Ok, thanks. I think I know why it worked for you -
> The framebuffer is mmap'ed as uncacheable on ARM (check out
> fb_pgprotect in fbmem.c),
> which makes the whole dspbridge cache manipulations on it redundant.
> In our case the cache operations silently failed, but it didn't matter.

Indeed, although it's not uncacheable, it's writecombine. That explains a lot.

> We can probably just return whenever a dspbridge DMA operation will be
> requested on VM_IO buffers (unless there are other VM_IO dspbrdige use
> cases which are different).

I don't know what VM_IO means, but essentially we don't want to go
find each and page when we know the memory is contiguous. Although the
fact that the memory is writecombine would help us avoid unnecessary
flushes as well :)

A few updates:
1) libomxil-ti doesn't use the flush/inv ioctls at all... all buffers
are mapped/unmapped
2) I said only 4 buffers are mapped at a time. Actually, it's more
like 8 * 3 + 1. Most of these are 4K, although only a few bytes are
used.
4) I'm already doing the changes needed in gst-dsp.

Cheers.

-- 
Felipe Contreras
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux