Re: [PATCH] OMAP: DSS2: Have separate irq handlers for DISPC and DSI

archit taneja
2011-02-18T11:04:07Z

Hi,

On Friday 18 February 2011 03:30 PM, Valkeinen, Tomi wrote:

<snip>
> Well, if DSS_IRQSTATUS doesn't work as I described above, in the worst
> case we will just run a few more lines of code in the irq handler, as we
> check for registered interrupts. But that would only happen if either
> DISPC or DSI has no interrupts enabled, which is... never?
>
> So I think it should work fine anyway.
>
> Tomi

I tried to read IRQSTATUS registers in 2 the cases:

With DSS_IRQSTATUS:

[ 51.166503] DSS_IRQSTATUS 2 -> DSI
[ 51.170135] DSS_IRQSTATUS 2 -> DSI
[ 51.173095] DSI_IRQSTATUS 20001 -> TE_TRIGGER | VC0_IRQ
[ 51.208282] DSS_IRQSTATUS 1 -> DISPC
[ 51.211242] DISPC_IRQSTATUS 81
[ 51.214508] DSS_IRQSTATUS 2 -> FRAMEDONE | GFX_END_WINDOW
[ 51.217437] DSI_IRQSTATUS 20001 -> TE_TRIGGER | VC0_IRQ

The cat /proc/interrupts increments by 2 for every manual update call.

Without DSS_IRQSTATUS:

Doing a ./upd (from omapfb-tests) on 3430sdp with Taal:

[ 77.060668] DISPC irqstatus 0
[ 77.064270] DSI irqstatus 20001-> TE_TRIGGER | VC0_IRQ
[ 77.104888] DISPC irqstatus 81 -> FRAMEDONE | GFX_END_WINDOW
[ 77.108154] DSI irqstatus 20001 -> TE_TRIGGER | VC0_IRQ

VC0_IRQSTATUS came as 0x24 -> BTA_ACK | PACKET_SENT

The cat /proc/interrupts increments by 2 for every manual update call as
before.

One strange thing I see though is the increment with and without printks
in the irq handler in both the cases. I always see increments of 2 when
I put prints. I see 3 when I don't. That's a bit peculiar.

Behavior looks as expected. I guess we can go without DSS_IRQSTATUS
then. Should I send out a patch? Also, should we remove DSS_IRQSTATUS in
totality from the code now?

Archit