On Thu, 2012-06-28 at 16:49 +0530, Chandrabhanu Mahapatra wrote: > On Thursday 28 June 2012 04:20 PM, Tomi Valkeinen wrote: > > On Thu, 2012-06-28 at 15:10 +0530, Chandrabhanu Mahapatra wrote: > >> + [OMAP_DSS_CHANNEL_DIGIT] = { > >> + .name = "DIGIT", > >> + .vsync_irq = DISPC_IRQ_EVSYNC_ODD | DISPC_IRQ_EVSYNC_EVEN, > >> + .framedone_irq = DISPC_IRQ_FRAMEDONETV, > > There's a problem with this one. FRAMEDONETV is a new thing, appeared in > > omap4. So for this we need a system to select the data depending on the > > DSS version. > > > > I suggest you remove the framedone_irq entry for now, and keep the old > > code to handle the framedone irq. Let's add it later when we can handle > > the differences between omap versions. > > > > Or actually, looking at the code, perhaps you can keep the framedone_irq > > field, but set it to 0 for DIGIT mgr. This would keep the functionality > > the same as it is now, because there's only one place in dispc.c where > > we use FRAMEDONETV, and your patch doesn't touch it. In other places we > > presume that TV out does not have FRAMEDONE interrupt (i.e. the irq > > number is 0). > The purpose of FRAMEDONETV IRQ as seen from dispc_mgr_enable_digit_out() > looks as to interrupt when active frame related to HDMI is done and so > DISPC is disabled. I think I misinterpreted and used it here. Can > please explain the exact purpose of DISPC_IRQ_FRAMEDONETV? Yes, FRAMEDONE, for both LCD and TV outputs tells us that the DISPC output has finished sending the last frame, when the output is being disabled. So your use here is correct, except that the interrupt is not present on omap2/3. Thus we cannot have it in this common table. If you set the field to 0 in this table, everything should work as before. If you look at the dispc_mgr_get_framedone_irq() code, you see that it returns 0 for DIGIT channel. Tomi
Attachment:
signature.asc
Description: This is a digitally signed message part