interrupt.c 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /***************************************************************************
  2. cec/interrupt.c
  3. -------------------
  4. begin : Dec 2001
  5. copyright : (C) 2001, 2002 by Frank Mori Hess
  6. email : fmhess@users.sourceforge.net
  7. ***************************************************************************/
  8. /***************************************************************************
  9. * *
  10. * This program is free software; you can redistribute it and/or modify *
  11. * it under the terms of the GNU General Public License as published by *
  12. * the Free Software Foundation; either version 2 of the License, or *
  13. * (at your option) any later version. *
  14. * *
  15. ***************************************************************************/
  16. #include "cec.h"
  17. #include <asm/bitops.h>
  18. #include <asm/dma.h>
  19. /*
  20. * GPIB interrupt service routines
  21. */
  22. irqreturn_t cec_interrupt(int irq, void *arg PT_REGS_ARG)
  23. {
  24. gpib_board_t *board = arg;
  25. cec_private_t *priv = board->private_data;
  26. unsigned long flags;
  27. irqreturn_t retval;
  28. spin_lock_irqsave( &board->spinlock, flags );
  29. retval = nec7210_interrupt(board, &priv->nec7210_priv);
  30. spin_unlock_irqrestore( &board->spinlock, flags );
  31. return retval;
  32. }