fb1 resolution limit when enable local alpha in imx6q

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

fb1 resolution limit when enable local alpha in imx6q

1,466 Views
feixiang
Contributor I

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

Labels (1)
0 Kudos
8 Replies

899 Views
feixiang
Contributor I

Hi igorpadykov

Thanks for your help! I will try to  increase the clock to the IPU.

Best regards
Liu Xiang

0 Kudos

899 Views
wanbenzhou
Contributor II

Hi , liu

Could you give me some help with imx6 driver da90ub940 .  Thanks. 

0 Kudos

899 Views
feixiang
Contributor I

Hi,

what's your problem with ds90ub940?

0 Kudos

899 Views
wanbenzhou
Contributor II

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.

0 Kudos

899 Views
feixiang
Contributor I

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 

0 Kudos

899 Views
ieio
Contributor IV

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?

0 Kudos

899 Views
wanbenzhou
Contributor II

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.

0 Kudos

899 Views
igorpadykov
NXP Employee
NXP Employee

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

0 Kudos