050-mcfv4e_irq_magic_bit.patch 824 B

12345678910111213141516171819202122232425262728293031
  1. From 3487b77acbb12f4174f46237f942918651b23aa7 Mon Sep 17 00:00:00 2001
  2. From: Kurt Mahan <[email protected]>
  3. Date: Tue, 15 Apr 2008 17:14:55 -0600
  4. Subject: [PATCH] Fix setting low 31 interrupts to deal with magic bit 0
  5. of the IMRL register.
  6. LTIBName: mcfv4e-irq-magic-bit
  7. Signed-off-by: Kurt Mahan <[email protected]>
  8. ---
  9. arch/m68k/coldfire/ints.c | 9 ++++++---
  10. 1 files changed, 6 insertions(+), 3 deletions(-)
  11. --- a/arch/m68k/coldfire/ints.c
  12. +++ b/arch/m68k/coldfire/ints.c
  13. @@ -420,10 +420,13 @@ void m547x_8x_irq_enable(unsigned int ir
  14. }
  15. #endif
  16. - if (irq < 32)
  17. - MCF_IMRL &= ~(1 << irq);
  18. - else
  19. + if (irq < 32) {
  20. + /* *grumble* don't set low bit of IMRL */
  21. + MCF_IMRL &= (~(1 << irq) & 0xfffffffe);
  22. + }
  23. + else {
  24. MCF_IMRH &= ~(1 << (irq - 32));
  25. + }
  26. }
  27. void m547x_8x_irq_disable(unsigned int irq)