All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lee Revell <rlrevell@joe-job.com>
To: Robert Hancock <hancockr@shaw.ca>
Cc: linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2.6.16] Shared interrupts sometimes lost
Date: Sun, 09 Apr 2006 14:24:36 -0400	[thread overview]
Message-ID: <1144607077.22490.204.camel@mindpipe> (raw)
In-Reply-To: <44394EA6.3000309@shaw.ca>

On Sun, 2006-04-09 at 12:12 -0600, Robert Hancock wrote:
> Lee Revell wrote: 
> > Isn't a more typical IRQ handler:
> > 
> > while (events = read_register(INTERRUPTS) != 0) {
> >       ...handle each bit in events and ACK it...
> > }
> 
> That would be less efficient, it would read the register twice or more
> if any events have been set, and reading device registers can be 
> expensive. In the unlikely event the event was set while inside the
> ISR the interrupt should be asserted again so there is no need to do
> this. 

OK.  FWIW I am looking at the emu10k1 driver (though I've seen this in
others).  The OSS driver has this comment:

    /*
     ** NOTE :
     ** We do a 'while loop' here cos on certain machines, with both
     ** playback and recording going on at the same time, IRQs will
     ** stop coming in after a while. Checking IPND indeed shows that
     ** there are interrupts pending but the PIC says no IRQs pending.
     ** I suspect that some boards need edge-triggered IRQs but are not
     ** getting that condition if we don't completely clear the IPND
     ** (make sure no more interrupts are pending).
     ** - Eric
     */

The ALSA driver preserves the while loop but omits the comment :-/

Lee




  reply	other threads:[~2006-04-09 18:24 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <5Zd5E-3vi-7@gated-at.bofh.it>
2006-04-08 14:10 ` [PATCH 2.6.16] Shared interrupts sometimes lost Robert Hancock
2006-04-09  9:48   ` How to correct ELCR? - was " Neil Brown
2006-04-09 15:48     ` Francois Romieu
2006-04-09 22:28       ` Neil Brown
2006-04-11 17:07     ` Pavel Machek
2006-04-12  4:01       ` Neil Brown
     [not found] ` <5ZoDL-3rE-7@gated-at.bofh.it>
2006-04-09 18:12   ` Robert Hancock
2006-04-09 18:24     ` Lee Revell [this message]
2006-04-08  4:10 Neil Brown
2006-04-08 16:31 ` Lee Revell
2006-04-09  6:02   ` Neil Brown
2006-04-11 17:07 ` Pavel Machek
2006-04-12  0:01   ` Neil Brown
2006-04-13  5:41     ` Pavel Machek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1144607077.22490.204.camel@mindpipe \
    --to=rlrevell@joe-job.com \
    --cc=hancockr@shaw.ca \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.