This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OMAP5432, 5AJ1.5.1, "omapdss DISPC error: mgr or device is NULL"

Dear Sir,

Our project use both dpi+hdmi output, and the dpi patch is of course come from TI. 

When this message comes during our PowerKey On/Off test ( 7s on, 7s off, then continue, System is switching between suspend/resume ), the system looks like hangs, but in fact, it was busy on those continuous error messages.

This error message come from drivers/video/omap2/dss/dispc.c

     static void dispc_error_worker(struct work_struct *work)
     {
     ...
     if ((!mgr) || !mgr->device) {
*      DSSERR("mgr or device is NULL\n");
     break;
     }
     ...

After my tracing, It seems that IRQ 57 was trigger but some flags are un-handled. My debug log shows the following info:

} error! Irq57_Dispc: IrqErrMask=0x0012D640, Unhandle=0x00008000

The refer register for un-handled flags are DISPC_IRQSTATUS (0x58001018), The Bit-15 is SYNCLOSTTV_IRQ which is used by HDMI. 

The HDMI will go ON/OFF during our testing of 7s ON/7s OFF, which is request by our customer; When this error occurs, it will keep launching the dispc_error_worker() and never stop.

I have try to disable the status on Irq_Handler as below, but is was no use:

     static irqreturn_t omap_dispc_irq_handler(int irq, void *arg)
     {

     .....
*     dispc_write_reg(DISPC_IRQSTATUS, 0xFFFFFFFF);

*    dispc_read_reg(DISPC_IRQSTATUS);

     spin_unlock(&dispc.irq_lock);

     return IRQ_HANDLED;

     }

Should I handle those flags? but How? Is there anybody could help me?

May God bless you.

Kenny Tsai @ 2014/04/01