Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dcee77be2f0a7010633fb2c025db38550c4b0e72
Commit:     dcee77be2f0a7010633fb2c025db38550c4b0e72
Parent:     f54ae69bafa16434ce46bc2f1fe556bce4d23650
Author:     Jordan Crouse <[EMAIL PROTECTED]>
AuthorDate: Sat Feb 9 23:24:08 2008 +0100
Committer:  Thomas Gleixner <[EMAIL PROTECTED]>
CommitDate: Sat Feb 9 23:24:08 2008 +0100

    x86: GEODE: make sure the right MFGPT timer fired the timer tick
    
    Each AMD Geode MFGPT timer interrupt output is paired with another
    timer; esentially the interrupt goes if either timer fires.  This
    is okay, but the handlers need to be aware of this.  Make sure in
    the timer tick handler that our timer really did expire.
    
    Signed-off-by: Jordan Crouse <[EMAIL PROTECTED]>
    Signed-off-by: Andres Salomon <[EMAIL PROTECTED]>
    Signed-off-by: Ingo Molnar <[EMAIL PROTECTED]>
    Signed-off-by: Thomas Gleixner <[EMAIL PROTECTED]>
---
 arch/x86/kernel/mfgpt_32.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/mfgpt_32.c b/arch/x86/kernel/mfgpt_32.c
index 81aa9db..eeb461f 100644
--- a/arch/x86/kernel/mfgpt_32.c
+++ b/arch/x86/kernel/mfgpt_32.c
@@ -293,10 +293,14 @@ static int mfgpt_next_event(unsigned long delta, struct 
clock_event_device *evt)
        return 0;
 }
 
-/* Assume (foolishly?), that this interrupt was due to our tick */
-
 static irqreturn_t mfgpt_tick(int irq, void *dev_id)
 {
+       u16 val = geode_mfgpt_read(mfgpt_event_clock, MFGPT_REG_SETUP);
+
+       /* See if the interrupt was for us */
+       if (!(val & (MFGPT_SETUP_SETUP  | MFGPT_SETUP_CMP2 | MFGPT_SETUP_CMP1)))
+               return IRQ_NONE;
+
        /* Turn off the clock (and clear the event) */
        mfgpt_disable_timer(mfgpt_event_clock);
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to