> -----Original Message----- > From: linux-media-owner@xxxxxxxxxxxxxxx [mailto:linux-media- > owner@xxxxxxxxxxxxxxx] On Behalf Of Suresh Rao > Sent: Thursday, March 19, 2009 7:59 AM > To: linux-media@xxxxxxxxxxxxxxx > Cc: Tuukka.O Toivonen > Subject: Re: ISP Configuration for RAW Bayer sensor > > Hi Tuukka, > > Thanks a lot for the patch, I will try this. > > I tried similar thing but on the sensor side and it worked, ie., I > skip the very first line from readout and get the desired format for > the ISP. Hi Suresh, I am currently working on a patch for solving these type of adjustments. The main idea is to specify from the sensor to the ISP, which is the output Raw sequence: RGGB, GRBG, BGGR, GBRG. And then adjust internal ISP reading offset to interpret the image adequately... I'll post the patch as soon as I have it ready (I'm currently busy with some other higher priority tasks for these remaining 2 weeks of the month :I) Regards, Sergio > > Thanks, > Suresh > > On Thu, Mar 19, 2009 at 1:12 PM, Tuukka.O Toivonen > <tuukka.o.toivonen@xxxxxxxxx> wrote: > > On Wednesday 18 March 2009 18:17:56 ext Suresh Rao wrote: > >> I am working with MT9V023 RAW sensor. The data format from the sensor > is > >> > >> B G B G B G B G ... > >> G R G R G R G R ... > >> B G B G B G B G ... > >> G R G R G R G R ........ [ Format 1] > > [...] > >> I want to use the ISP on the OMAP for doing interpolation and format > >> conversion to UYVY. I am able to capture the images from the sensor, > >> however I notice that the color information is missing. I dug the > >> sources and found that in the RAW capture mode ISP is getting > >> configured to input format > >> > >> G R G R G R G R ... > >> B G B G B G B G ... > >> G R G R G R G R ... > >> B G B G B G B G ... [Format 2] > >> > >> Has anyone tried sensors with BGGR ( Format 1) on OMAP? > >> > >> Can anyone give me some pointers or information on how to configure > >> ISP for BGGR (Format 1) > > > > If you can live with losing a few pixels (maybe sensor has a few extra) > > I recommend to configure ISP to crop away the topmost line. > > > > Here's couple of old _example_ patches how to configure the cropping. > > Just gives an idea where to start... > > > > - Tuukka > > > > > > diff --git a/drivers/media/video/isp/ispccdc.c > b/drivers/media/video/isp/ispccdc.c > > index 2288bc9..87870f1 100644 > > --- a/drivers/media/video/isp/ispccdc.c > > +++ b/drivers/media/video/isp/ispccdc.c > > @@ -1189,13 +1189,13 @@ int ispccdc_config_size(u32 input_w, u32 input_h, > u32 output_w, u32 output_h) > > ISPCCDC_HORZ_INFO); > > } else { > > if (ispccdc_obj.ccdc_inpfmt == CCDC_RAW) { > > - omap_writel(1 << > ISPCCDC_HORZ_INFO_SPH_SHIFT > > - | > ((ispccdc_obj.ccdcout_w - 1) > > + omap_writel(0 << > ISPCCDC_HORZ_INFO_SPH_SHIFT > > + | (ispccdc_obj.ccdcout_w > > << > ISPCCDC_HORZ_INFO_NPH_SHIFT), > > ISPCCDC_HORZ_INFO); > > } else { > > omap_writel(0 << > ISPCCDC_HORZ_INFO_SPH_SHIFT > > - | > ((ispccdc_obj.ccdcout_w - 1) > > + | (ispccdc_obj.ccdcout_w > > << > ISPCCDC_HORZ_INFO_NPH_SHIFT), > > ISPCCDC_HORZ_INFO); > > } > > @@ -1227,7 +1227,7 @@ int ispccdc_config_size(u32 input_w, u32 input_h, > u32 output_w, u32 output_h) > > ISPCCDC_VP_OUT_VERT_NUM_SHIFT), > > ISPCCDC_VP_OUT); > > omap_writel(0 << ISPCCDC_HORZ_INFO_SPH_SHIFT | > > - ((ispccdc_obj.ccdcout_w - 1) << > > + (ispccdc_obj.ccdcout_w << > > ISPCCDC_HORZ_INFO_NPH_SHIFT), > > ISPCCDC_HORZ_INFO); > > omap_writel(0 << ISPCCDC_VERT_START_SLV0_SHIFT, > > diff --git a/drivers/media/video/isp/ispccdc.c > > b/drivers/media/video/isp/ispccdc.c > > index f5957b2..6afaabf 100644 > > --- a/drivers/media/video/isp/ispccdc.c > > +++ b/drivers/media/video/isp/ispccdc.c > > @@ -478,7 +478,7 @@ EXPORT_SYMBOL(ispccdc_enable_lsc); > > **/ > > void ispccdc_config_crop(u32 left, u32 top, u32 height, u32 width) > > { > > - ispccdc_obj.ccdcin_woffset = left + ((left + 1) % 2); > > + ispccdc_obj.ccdcin_woffset = left + (left % 2); > > ispccdc_obj.ccdcin_hoffset = top + (top % 2); > > > > ispccdc_obj.crop_w = width - (width % 16); > > @@ -1166,7 +1166,7 @@ int ispccdc_config_size(u32 input_w, u32 input_h, > > u32 output_w, u32 output_h) > > ISPCCDC_FMT_VERT); > > omap_writel((ispccdc_obj.ccdcout_w << > > ISPCCDC_VP_OUT_HORZ_NUM_SHIFT) | > > - (ispccdc_obj.ccdcout_h << > > + (ispccdc_obj.ccdcout_h - 1 << > > ISPCCDC_VP_OUT_VERT_NUM_SHIFT), > > ISPCCDC_VP_OUT); > > omap_writel((((ispccdc_obj.ccdcout_h - 25) & > > > > > > > -- > 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 -- 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