About IPU double buffer in i.MX6DQ.

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

About IPU double buffer in i.MX6DQ.

Jump to solution
1,655 Views
keitanagashima
Senior Contributor I

Dear All,

Hello. I have a question about double buffer of IPU in i.MX6DQ.

My customer's system will display with double buffer mode in Non-OS program.

And, they tested the display with double buffer mode after the initialization of IPU.

[Result]

Use the Buffer0 earlier : Success

Uses the Buffer1 earlier : Looks flickering

[Question]

When one enable the Double Buffer in IPUx_CH_DB_MODE_SEL0,

Is there limitation on the 1st display?

Ex) First time, it is necessary to use from the side of Buffer0.

Best Regards,

Keita

Labels (5)
0 Kudos
Reply
1 Solution
1,088 Views
karina_valencia
NXP Apps Support
NXP Apps Support
Re: About IPU double buffer in i.MX6DQ.

Hai Ching TsaiEmployee

hello Keita,

My understanding is there is NO limitation for selecting IPU buffers. We just need to make sure IPU buffer being updated when DMA channel doesn't use it, and set IPU_CHA_BUFn_RDY. ipu_update_channel_buffer and ipu_select_buffer of kernel source would be reference.

For customer's flickering issue, to slow down framebuffer update and to add log to watch if IPU selects the correct buffer might be a way to debug. Customer can check if buffer 1 isn't updated well or IPU picks up incorrect buffer with that.

Regards,

Max

View solution in original post

0 Kudos
Reply
3 Replies
1,088 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hi Keita,

IPU refreshes LCD in automatic way.

Please refer to sect.37.1.2.1.6 "Automatic Procedures"  i.MX6DQ Reference Manual:

"..double buffering mechanism, synchronizing read and write access to system memory, to prevent tearing effects."

You can know when frame is finished using IPUx_INT_STAT registers, please refer to sect.37.5.52 "Interrupt Status Register 1 (IPUx_INT_STAT_1)"

IPUx_INT_STAT_1, End of Frame of Channel interrupt and other events.

http://cache.freescale.com/files/32bit/doc/ref_manual/IMX6DQRM.pdf

or you should check if there is no bandwidth limitation in order to see if this is the root of the flickering

Regards

0 Kudos
Reply
1,088 Views
keitanagashima
Senior Contributor I

Dear Bio_TICFSL,

Hello. Sorry for my delay response.

The frame buffer was written with VSYNC interruption && "INT_STAT_1" =1.

In case of 1st writing is in both Buffer 0 and Buffer 1, the rewriting timing in the frame buffer doesn't change.

Then, flicker occurs only when the 1st writing is in Buffer1!

Have you confirm such a problem in freescale?

Best Regards,

Keita

0 Kudos
Reply
1,089 Views
karina_valencia
NXP Apps Support
NXP Apps Support
Re: About IPU double buffer in i.MX6DQ.

Hai Ching TsaiEmployee

hello Keita,

My understanding is there is NO limitation for selecting IPU buffers. We just need to make sure IPU buffer being updated when DMA channel doesn't use it, and set IPU_CHA_BUFn_RDY. ipu_update_channel_buffer and ipu_select_buffer of kernel source would be reference.

For customer's flickering issue, to slow down framebuffer update and to add log to watch if IPU selects the correct buffer might be a way to debug. Customer can check if buffer 1 isn't updated well or IPU picks up incorrect buffer with that.

Regards,

Max

0 Kudos
Reply