Re: OMAP3 Bridge Problems

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

 



Hi Lane,

On Monday 09 August 2010 15:38:56 Lane Brooks wrote:
> On 08/09/2010 03:25 AM, Laurent Pinchart wrote:
> > On Monday 09 August 2010 00:56:27 Lane Brooks wrote:
> >> On 08/08/2010 04:29 PM, Laurent Pinchart wrote:
> >>> On Thursday 05 August 2010 20:53:50 Lane Brooks wrote:
> >>> 
> >>> [snip]
> >>> 
> >>>> I was able to get YUV CCDC capture mode working with rather minimal
> >>>> effort. Attached is a patch with the initial effort. Can you comment?
> >>> 
> >>> Writing to the ISPCCDC_SYN_MODE register should be moved to
> >>> ccdc_configure(). Just move the switch statement there right after the
> >>> 
> >>> 	format =&ccdc->formats[CCDC_PAD_SINK];
> >>> 
> >>> line (without the ispctrl_val settings), it should be enough.
> >>> 
> >>>> +		isp_reg_writel(isp, ispctrl_val, OMAP3_ISP_IOMEM_MAIN,
> >>>> +			       ISP_CTRL);
> >>> 
> >>> The ISP_CTRL register should be written in isp_select_bridge_input()
> >>> only. As you correctly mention, whether the data is in little endian or
> >>> big endian format should come from platform data, so I think it's fine
> >>> to force board files to set the isp->pdata->parallel.bridge field to
> >>> the correct value.
> >> 
> >> Putting the bridge settings in the platform data is tricky because they
> >> need to change depending on the selected format. For example, for my
> >> board, when in SGRBG mode, the bridge needs disabled. When in YUV16
> >> mode, however, I need need to select BIG/LITTLE endian depending on
> >> whether it is YUYV or UYVY or ...
> > 
> > Ah right... So your sensor can output both Bayer and YUV data ? What
> > sensor is that BTW ?
> 
> Aptina MT9T111. It can even output JPEG.
> 
> >> I am not quite sure how to capture that in the platform data without
> >> enumerating every supported format code in the platform data. The
> >> current patch knows (based on the OMAP TRM) that YUV16 mode requires
> >> the bridge to be enabled. So in the platform data I specify the bridge
> >> state for SGBRG mode and force the bridge to BIG endian in YUV16 mode.
> >> This leaves the sensor to switch the phasing based on YUYV, YVYU, etc.
> >> mode.  I am not sure who should be in charge of doing byte swapping in
> >> general, but if the input and output modes are the same, then big
> >> endian should be used to avoid a byte swap. In other words, the mode is
> >> completely determinable based on the formats, so perhaps I should
> >> implement it that way. If the input and output port require a byte
> >> swap, then go little endian, otherwise go big endian.
> > 
> > OK I understand. The best solution (for now) would then be to modify
> > isp_configure_bridge(). I wrote a few patches that modify how platform
> > data is handled, but I can't commit them at the moment (they depend on
> > other patches that I still need to clean up).
> > 
> >> The reason why I put both writes to the ISPCTRL and SYN_MODE registers
> >> where I did. Moving them to other places will require querying the
> >> selected format code. Is that what you want as well?
> > 
> > For SYN_MODE, definitely. For ISPCTRL, you can hack
> > isp_configure_bridge() to retrieve the current CCDC input format, and
> > we'll write a proper fix right after I commit my platform data
> > restructuring patches.
> 
> I'll wait for your patches then. Let me know.

The omap3camera repository is now deprecated. Please use

http://meego.gitorious.org/maemo-multimedia/omap3isp-rx51

where you will find the latest patches based on 2.6.35. Have fun :-)

I will be on holidays next week, so I won't be able to provide assistance 
before week 37.

-- 
Regards,

Laurent Pinchart
--
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


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux