Thread (181 messages) 181 messages, 8 authors, 2009-11-28

Re: [RFC PATCH 11/19] powerpc: gamecube/wii: flipper interrupt controller support

From: Segher Boessenkool <hidden>
Date: 2009-11-26 23:59:57

quoted
quoted
quoted
Maybe using FLIPPER (or GAMECUBE_FLIPPER) instead of  
GAMECUBE_COMMON
is a good name?
I'd prefer to not use a name that implies a specific hardware to
describe two (mostly) similar but different hardwares.
Hollywood is 100% compatible to Flipper though.
No. There's no ARAM for example :)
ARAM is an external device.
quoted
quoted
quoted
quoted
+/*
+ * Each interrupt has a corresponding bit in both
+ * the Interrupt Cause (ICR) and Interrupt Mask (IMR) registers.
+ *
+ * Enabling/disabling an interrupt line involves asserting/ 
clearing
+ * the corresponding bit in IMR. ACK'ing a request simply  
involves
+ * asserting the corresponding bit in ICR.
+ */
I looked it up in YAGCD; it says that _reading_ the ICR reg already
acks all interrupts (and clears the bits), you never write this reg!
YAGCD is not always right. You should not take it as _the truth_.
Oh I know.  But I have no better source of information.  Well I could
actually test it, that's very easy using OF :-)  Let's do that.
quoted
quoted
No, it acks just a single IRQ.
No it doesn't.  Say IRQs 1 and 3 are asserted, so the reg contains  
0x0a.
Now you want to ack IRQ1; set_bit() will write 0x0a | 0x02, not  
just 0x02.
Let me rephrase it. No it should just ack a single IRQ :)

So then this is working by accident.
If that's the case, I guess it works because the interrupt is not  
cleared at the source and the ICR is set again immediately for any  
pending interrupt?
Probably, yes.  Also, you will not often have more than one interrupt
pending anyway (on the legacy PIC).


Segher
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help