I am running an iMX28 Linux (Freescale 2013). After blanking the screen (echo 1 > /sys/class/graphics/fb0/blank) and subsequently un-blanking (echo 0 > /sys/class/graphics/fb0/blank), I can no longer see any graphics applications.
When the failure happens, it appears that the LCDIF DMA controller is no longer executing in spite of the fact that it seems to be configured properly.
Can anyone tell me why the DMA controller is not running?
Since LCDIF interrupts are disabled, I would expect interrupt status such as BM_LCDIF_CTRL1_VSYNC_EDGE_IRQ.
I would also expect the HW_LCDIF_CRC_STAT to be not FFFFFFF.
Here is a register dump with some "telling" annotations:
HW_LCDIF_CTRL: 000B4F21 <<<<<< Running?
HW_LCDIF_CTRL1: 01070001
HW_LCDIF_CTRL2: 00200000
HW_LCDIF_TRANSFER_COUNT: 011001E0
HW_LCDIF_CUR_BUF: 4FE00000
HW_LCDIF_NEXT_BUF: 4FE00000
HW_LCDIF_TIMING: 01010101
HW_LCDIF_VDCTRL0: 1F300002
HW_LCDIF_VDCTRL1: 00000115
HW_LCDIF_VDCTRL2: 000401EB
HW_LCDIF_VDCTRL3: 00090004
HW_LCDIF_VDCTRL4: 000401E0
HW_LCDIF_DVICTRL0: 00000000
HW_LCDIF_DVICTRL1: 00000000
HW_LCDIF_DVICTRL2: 00000000
HW_LCDIF_DVICTRL3: 00000000
HW_LCDIF_DVICTRL4: 00000000
HW_LCDIF_CSC_COEFF0: 00000000
HW_LCDIF_CSC_COEFF1: 00000000
HW_LCDIF_CSC_COEFF2: 00000000
HW_LCDIF_CSC_COEFF3: 00000000
HW_LCDIF_CSC_COEFF4: 00000000
HW_LCDIF_CSC_OFFSET: 00800010
HW_LCDIF_CSC_LIMIT: 00FF00FF
HW_LCDIF_BM_ERROR_STAT: 00000000
HW_LCDIF_CRC_STAT: FFFFFFFF <<<<<<<<< Never changes
HW_LCDIF_STAT: 95000000
HW_LCDIF_VERSION: 04000000
HW_LCDIF_DEBUG0: 2301080F
HW_LCDIF_DEBUG1: 01E00110
HW_LCDIF_DEBUG2: 4FE00000
HW_CLKCTRL_DIS_LCDIF: 00000032
HW_CLKCTRL_CLKSEQ: 00000157
HW_CLKCTRL_FRAC0: 12525513
HW_CLKCTRL_FRAC1: 00929253
Solved! Go to Solution.
GraceSi Mar 6, 2014 12:17 AM (in response to SerchMX)
Please use attached mx28_lcdif_clk_fix.patch.
Grace
GraceSi Mar 6, 2014 12:17 AM (in response to SerchMX)
Please use attached mx28_lcdif_clk_fix.patch.
Grace