I am using ADV212 in encoding mode. I set EIRQIE = 0x0402 to enable SWFLG0 and CODE FIFO THR in the initial routine. Then the IRQ asserted, and I got 0x040F in EIRQFLG and 0xFF82 in SWFLG. After that I cleared the EIRQFLG by wrote 0xFFFF to it. But the I found the IRQ doesn't goes high, so I checked the EIRQFLG and found 0x000F there. Next, I read the CODE FIFO and found EIRQFLG asserted. It seems that the fifo is empty and full at the same time.
By the way, correct timing of read&write to ADV212 can be confirmed. FFTHRC is set 0x0100.