Hi! > > > > I'll have to go through the patches, et8ek8 driver is probably not > > > > enough to get useful video. platform/video-bus-switch.c is needed for > > > > camera switching, then some omap3isp patches to bind flash and > > > > autofocus into the subdevice. > > > > > > > > Then, device tree support on n900 can be added. > > > > > > I briefly discussed with with Sebastian. > > > > > > Do you think the elusive support for the secondary camera is worth keeping > > > out the main camera from the DT in mainline? As long as there's a reasonable > > > way to get it working, I'd just merge that. If someone ever gets the > > > secondary camera working properly and nicely with the video bus switch, > > > that's cool, we'll somehow deal with the problem then. But frankly I don't > > > think it's very useful even if we get there: the quality is really > > > bad. > > > > Well, I am a little bit worried that /dev/video* entries will > > renumber themself when the the front camera support is merged, > > breaking userspace. > > > > But the first step is still the same: get et8ek8 support merged :-). > > Do you happen to have a patch for the DT part as well? People could more > easily test this... If you want complete/working tree for testing, it is at https://git.kernel.org/cgit/linux/kernel/git/pavel/linux-n900.git/?h=camera-v4.9 If you want userspace to go with that, there's fcam-dev. It is on gitlab: https://gitlab.com/pavelm/fcam-dev > > > > > Do all the modes work for you currently btw.? > > > > > > > > I don't think I got 5MP mode to work. Even 2.5MP mode is tricky (needs > > > > a lot of continuous memory). > > > > > > The OMAP 3 ISP has got an MMU, getting some contiguous memory is not really > > > a problem when you have a 4 GiB empty space to use. > > > > Ok, maybe it is something else. 2.5MP mode seems to work better when > > there is free memory. > > That's very odd. Do you use MMAP or USERPTR buffers btw.? I remember the > cache was different on 3430, that could be an issue as well (VIVT AFAIR, so > flushing requires making sure there are no other mappings or flushing the > entire cache). The userland code I'm using does struct v4l2_requestbuffers req; memset(&req, 0, sizeof(req)); req.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; req.memory = V4L2_MEMORY_MMAP; req.count = 8; printf("Reqbufs\n"); if (ioctl(fd, VIDIOC_REQBUFS, &req) < 0) { ... so I guess answer to your question is "MMAP". The v4l interface is at https://gitlab.com/pavelm/fcam-dev/blob/master/src/N900/V4L2Sensor.cpp . Best regards, Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Attachment:
signature.asc
Description: Digital signature