The patch is necessary on one of my boxen, where programming the stop
sequence twice leads to PIT malfunction.
Sigh !
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Andi Kleen <ak@suse.de>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
 
        case CLOCK_EVT_MODE_SHUTDOWN:
        case CLOCK_EVT_MODE_UNUSED:
-               outb_p(0x30, PIT_MODE);
-               outb_p(0, PIT_CH0);     /* LSB */
-               outb_p(0, PIT_CH0);     /* MSB */
+               if (evt->mode == CLOCK_EVT_MODE_PERIODIC ||
+                   evt->mode == CLOCK_EVT_MODE_ONESHOT) {
+                       outb_p(0x30, PIT_MODE);
+                       outb_p(0, PIT_CH0);
+                       outb_p(0, PIT_CH0);
+               }
                break;
 
        case CLOCK_EVT_MODE_ONESHOT: