Re: atomisp current issues

From: Mauro Carvalho Chehab
Date: Wed Nov 03 2021 - 12:54:37 EST


Em Wed, 3 Nov 2021 15:41:05 +0100
Hans Verkuil <hverkuil-cisco@xxxxxxxxx> escreveu:

> On 03/11/2021 14:54, Mauro Carvalho Chehab wrote:
> > Hi,
> >
> > From what I've seen so far, those are the main issues with regards to V4L2 API,
> > in order to allow a generic V4L2 application to work with it.
> >
> > MMAP support
> > ============
> >
> > Despite having some MMAP code on it, the current implementation is broken.
> > Fixing it is not trivial, as it would require fixing the HMM support on it,
> > which does several tricks.
> >
> > The best would be to replace it by something simpler. If this is similar
> > enough to IPU3, perhaps one idea would be to replace the HMM code on it by
> > videodev2 + IPU3 HMM code.
> >
> > As this is not trivial, I'm postponing such task. If someone has enough
> > time, it would be great to have this fixed.
> >
> > From my side, I opted to add support for USERPTR on camorama:
> >
> > https://github.com/alessio/camorama
> >
> > As this is something I wanted to do anyway, and it allowed me to cleanup
> > several things in camorama's code.
> >
> > Support for USERPTR is not autodetected. So, this should be selected
>
> You can autodetect this: the capabilities field returned by VIDIOC_REQBUFS
> or VIDIOC_CREATE_BUFS will indicate support for this. This works with any
> vb2-based driver.
>
> Just thought I should mention this...

Yeah, surely the app could try it, but:

1. As libv4l doesn't support USERPTR, such detection should happen
early inside camorama code;

2. Atomisp does have support for MMAP, but it is broken.
(this is the most relevant reason)

Ok, we could change it to return -ENOIOCTLCMD for mmap, and add
a basic logic at camorama that would try to call REQBUFS in order
to verify if -ENOIOCTLCMD is returned.

Perhaps one more item to our todo list, if nobody fixes MMAP before
that.

Regards,
Mauro