Re: [GIT PULL FOR v3.16] mt9p031 fixes

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

 



Hi Enric,

On Wednesday 09 July 2014 17:56:59 Enric Balletbo Serra wrote:
> 2014-05-16 2:45 GMT+02:00 Laurent Pinchart wrote:
> > Hi Mauro,
> > 
> > The following changes since commit
> > ba0d342ecc21fbbe2f6c178f4479944d1fb34f3b:
> >   saa7134-alsa: include vmalloc.h (2014-05-13 23:05:15 -0300)
> > 
> > are available in the git repository at:
> >   git://linuxtv.org/pinchartl/media.git sensors/next
> > 
> > for you to fetch changes up to a3a7145c6cecbd9752311b8ae1e431f6755ad5f3:
> >   mt9p031: Fix BLC configuration restore when disabling test pattern
> > 
> > (2014-05-16 02:43:50 +0200)
> > 
> > ----------------------------------------------------------------
> > 
> > Laurent Pinchart (2):
> >       mt9p031: Really disable Black Level Calibration in test pattern mode
> >       mt9p031: Fix BLC configuration restore when disabling test pattern
> >  
> >  drivers/media/i2c/mt9p031.c | 53 ++++++++++++++++++++++++++++++----------
> > 
> >  1 file changed, 39 insertions(+), 14 deletions(-)
> 
> I'm trying to test omap3-isp and a board with mt9p031 sensor with
> current mainline. For now I'm using tag version 3.15 (which is close
> to current mainline). First, when I tried to use the test patterns I
> only saw a black screen, but after applying these two patches I saw an
> improvement, although I can see the test pattern correctly.
> 
> After some modifications the subdevs_group for my board is as follows:
> 
> +static struct isp_v4l2_subdevs_group igep00x0_camera_subdevs[] = {
> +       {
> +               .subdevs = cam0020_primary_subdevs,
> +               .interface = ISP_INTERFACE_PARALLEL,
> +               .bus = {
> +                       .parallel = {
> +                               /* CAM[11:0] */
> +                               .data_lane_shift = ISP_LANE_SHIFT_2,
> +                               /* Sample on falling edge */
> +                               .clk_pol = 1,
> +                       }
> +               },
> +       },
> +       { },
> +};
> 
> As I have some problems I would ask some questions, maybe you can help me.
> 
> In the past in the data_lane_shift was ISP_LANE_SHIFT_0, but now, it
> seems I should to use ISP_LANE_SHIFT_2 (CAM[11:0] - as I saw in the
> include file). ISP_LANE_SHIFT_0 is for CAM[13:0] but OMAP3 has only 12
> data bus signals. Is that right ?

Not really. The CCDC input is actually 16 bits wide. The ISP parallel bus is 
limited to 12 bits, the CSI2 receivers output up to 14 bits, and the bridge 
can merge two 8-bit samples into a 16-bit sample for YUV formats.

When using a 12 bit parallel sensor, unless you want to restrict the dynamic 
of the input image, you should use a data lane shift value of 0. This will 
cause the CAMEXT[13:0] signal to be mapped to CAM[13:0]. As the parallel bus 
is limited to 12 bits, the CAM[13:12] bits will be set to zero. When capturing 
from the CCDC output to memory each pixel will be stored on 16 bits, with bits 
[15:12] set to zero, and bits [11:0] containing image data. When forwarding 
data to the preview engine, which has an input width of 10 bits, the ISP 
driver will configure the CCDC video port to output bits [11:2] to the preview 
engine, dropping the two LSBs. 

> Another thing is I'm not able to capture the image correctly, also if
> if configure to ouput a test pattern, doesn't looks good. See as
> example [1] and [2]. Do you know what could be the problem ?
> 
> For your information these are the pipeline that I'm using :
> 
>   media-ctl -v -r -l '"mt9p031 1-005d":0->"OMAP3 ISP CCDC":0[1],
> "OMAP3 ISP CCDC":2->"OMAP3 ISP preview":0[1], "OMAP3 ISP
> preview":1->"OMAP3 ISP resizer":0[1], "OMAP3 ISP resizer":1->"OMAP3
> ISP resizer output":0[1]'
> 
>   media-ctl -v -f '"mt9p031 1-005d":0[SGRBG12 720x480], "OMAP3 ISP
> CCDC":2[SGRBG8 720x480], "OMAP3 ISP preview":1[UYVY 720x480], "OMAP3
> ISP resizer":1[UYVY 720x480]'

I would configure the pipeline with SGRBG10 at the output of the CCDC. The 
resolutions you request through the pipeline can't be achieved exactly, as the 
sensor can only perform binning/skipping to downscale. The resizer will take 
care to scale the image to the requested 720x480, but it will get distorted. 
You should use media-ctl -p to see what resolutions the above command actually 
sets, and fix the configuration with appropriate cropping if you want to keep 
the sensor aspect ratio intact.

> # Set Vertical Color Bars as test pattern
>   yavta -w '0x009f0903 9' /dev/v4l-subdev8
> 
> # Capture data with
>   yavta  -f UYVY -s 720x480 --capture=5 --skip=1 --file=image-# /dev/video6
> 
> # And convert with
>   raw2rgbpnm -s 720x480 image-00000.uyuv image-00000.pnm
> 
> Thanks in advance and any help will be appreciate.
> 
> Regards,
>   Enric
> 
> [1] http://downloads.isee.biz/pub/files/tmp/9-Vertical Color Bars.pnm
> [2] http://downloads.isee.biz/pub/files/tmp/9-Vertical Color Bars.uyvy

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