In order to route video data from camera to LCD directly, which can avoid data copy in user mode to save cpu, I use mxc_v4l2_overlay.c that in the yocto test package. The fb0 shows the background and the fb1 shows the camera view.
The command is:
mxc_vl42_overlay -iw 800 -ih 480 -ow 640 -oh 480 -fg -a 1 -di /dev/video3
When enable local alpha by input parameter "-a 1", if the output width resolution that setted by input parameter "ow" is smaller than 512, everything is OK. But if "ow" is larger than 512, there is some error and the whole image on LCD will be wrong.
When error happens the log is that:
root@saic_imx6d_zpv:/# ./mxc_v4l2_overlay -iw 800 -ih 480 -ow 640 -oh 480 -fg -a 1 -di /dev/video3
g_display_width = 640, g_display_height = 480
g_display_top = 0, g_display_left = 0
mxc_cam_select_input: input(0) CSI IC MEM
sensor chip is ds90ub940_mipi_camera
sensor supported frame size:
800x480
sensor frame format: UYVY
frame_rate is 30
after late_init:0
after late_init:0
frame buffer width 0, height 0, bytesperline 0
after late_init:0
after late_init:0
imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00100000
imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00100000
imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00100000
imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00100000
imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x00800000
imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x00800000
imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00100000
imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00100000
imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x00800000
imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x00800000
imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00100000
imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x00800000
imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00100000
imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x00800000
imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00100000
imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x00800000
imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00100000
mxc_sdc_fb fb@0: timeout when waiting for flip irq
imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x00800000
imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00100000
Is there fb1 resolution limit when enable local alpha?
How to resolve this problem?
Thanks
Liu Xiang
Hi igorpadykov
Thanks for your help! I will try to increase the clock to the IPU.
Best regards
Liu Xiang
Hi , liu
Could you give me some help with imx6 driver da90ub940 . Thanks.
Hi,
what's your problem with ds90ub940?
HI, Liu,
I try to DS90UB925 + DS90UB940 + imx6 , Could you help me the linux driver with DS90UB940 , or register setting for DS90UB940 . I have finished the hardware design , and it work OK, But my display 4-same image with wrong color.
my mail mc_john@foxmail.com
thinks.
Our register settings for ds90ub940 are very simple:
ds90ub940_read_reg(0x5, &v);
ds90ub940_write_reg(0x5, v | (1 << 7));
ds90ub940_write_reg(0x6b, 0x50);
ds90ub940_set_virtual_channel(0);
I think other 2 points should be noticed:
1. input resolution of ds90ub940 should be equal to resolution of imx6's CSI
2. output lane number of ds90ub940 should be equal to lane number of imx6's CSI
Hi Liu,
ds90ub940_write_reg(0x5, v | (1 << 7)); sets I2C Pass-Through All Transaction what does it means?
How can you find out the ds90ub940 input resolution?
Hi Liu,
Could you send me the source code for function " ds90ub940_set_virtual_channel(0) .
Input only channel 0;
Output lane is 2 pares.
Hi liu
According to the i.MX6(Q) Reference Manual :
IPU_INT_STAT_10 = 0x00100000 means synchronous display error interrupt, as a
result of an error during access to a synchronous display.
From section 37.4.12.3 (Interrupt Generator) of the Reference Manual :
The table below describes the error interrupts. The panic column indicates if
this signal is part of the logic generating the ipu_panic signal. The ipu_panic
signal can be used for indicating about errors that are result of data rate
problems. Such problems may be a result of the IPU running in slower clock then
required by the use case. This signal can be used in order to indicate the
system that the IPU can't handle the desired data rate. In that case the system
may need to increase the clock to the IPU or simplify the use case.
So looks like this is performance problem.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------