Re: [PATCH 2/6] V4L2 soc_camera driver for PXA27x processors
- Date: Thu, 14 Feb 2008 08:43:19 +0100 (CET)
- From: Guennadi Liakhovetski <g.liakhovetski@xxxxxx>
- Subject: Re: [PATCH 2/6] V4L2 soc_camera driver for PXA27x processors
On Thu, 14 Feb 2008, eric miao wrote:
> readability, compare:
>
> DRCMR68 = dma_chan_y | DRCMR_MAPVLD;
>
> and
>
> DRCMR(drcmr_y) = dma_chan_y | DRCMR_MAPVLD;
>
> And another thing if you take a look into pxa-regs.h about those DRCMRx
> register definitions, it's currently a mess. People uses different ways to
> reference DRCMR
>
> 1. DRCMRxx directly, like in your driver
> 2. DRCMRRXSSDR - named DRCMR register
> 3. DRCMR(xx)
>
> among these three, I like DRCMR(x) best for the reason I have stated
> above. Now most drivers are moving toward that way, once we get
> all those reference to DRCMR fixed, we will only define one macro
>
> DRCMR(xx) and remove all DRCMRxx and DRCMRXXXXX
Ah, sure, sorry, misunderstood you the first time. Will replace.
> > > 3. by using only Y dma channel, the driver is dropping the capability
> > > of the hardware to convert interleaved YCbCr data to planar format,
> > > what is your plan for that capability?
> >
> > This driver so far presents what I had to implement and what I could test.
> > I didn't have any YCbCr cameras, so, as long as someone gets a task of
> > supporting them and the necessary hardware, it'll have to be implemented
> > too. I guess, what I could do now at most, is look in the datasheet and
> > see if I can prepare the driver to facilitate those future extensions.
> >
>
> I have boards with YCbCr sensors here, yet I don't know if I will have
> time to test this :-(. So yes, you may prepare for that, and let's see
> if we can extend that.
Well, as I do not have access to any of this hardware, I would prefer to
first commit the driver without any support for these, and then review
patches for them separately. How does this sound?
> > example in my case, the platform supported 8 and 10 bit modes, and a
> > method to dynamically switch between those. So, my .flags look like
> >
> > + .flags = PXA_CAMERA_MASTER | PXA_CAMERA_DATAWIDTH_8 | PXA_CAMERA_DATAWIDTH_10 |
> > + PXA_CAMERA_PCLK_EN | PXA_CAMERA_MCLK_EN,
> >
> > (see the [PATCH 6/6]). And the switching is transparent - it is activated
> > upon setting of an 8- or 16-bit pixel format.
> >
>
> Mmm... this is really cool. I didn't know any sensor that needs width
> change at run-time. Usually, it's fixed. Two common types of sensors:
>
> 1. YCbCr sensors - usually comes with 8-bit interleaved pixel format
> and
> 2. raw sensors - usually comes with 10-bit RGGB output
>
> There are some smart sensors with different output protocol, but
> most of them I know mimics the YCbCr output, except for JPEG,
> which is usually specially handled.
>
> So I'm really curious what exact sensor you are using?
Ok, I'm not going to disclose any secrets, if I just point you to the
patch-series:-) If you looked at it, you would see, that both cameras I
submitted with it are normal raw 10-bit cameras. And they just use an
external I2C GPIO extender to switch to 8 bits. And the discovery is again
performed based upon the platform data.
> One sensor at any given time, Yes. The QCI can handle only _one_
> sensor, the others are just put to idle and disconnected. Usually, the
> switching is controlled by external analog switch, for example. And
> this is common requirement, say when one needs one sensor for
> high resolution and another one for low resolution, as commonly
> seen on high-end mobile devices.
>
> The connections might or might not be same. So it would be nice
> if the sensor can provide output format information to the camera driver.
>
> Switching of sensors is board specific, so the platform data should
> really provide some kind of switching callback functions if possible.
Yeah, this is going to be a mess... Currently to set a specific video
format an ioctl is passed from the v4l2 layer to the video driver, which
is in this case the soc_camera.c. This then calls back into the camera
driver and into the interface driver (pxa_camera.c). Now we'll have to
also call back into the platform code... Wow.
But, I think, we'll have to do it differently. The two cameras you mention
are two separate video-devices with my framework. So, the application will
have to go to /dev/video1 from /dev/video0. And, perhaps, the camera
driver (not the interface driver, like pxa-camera) will have to call back
into the platform layer to activate the respective controller. How does
this sound?
Thanks
Guennadi
---
Guennadi Liakhovetski
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@xxxxxxxxxx?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list