All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Gleixner <tglx@linutronix.de>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Linux/m68k <linux-m68k@lists.linux-m68k.org>,
	Linux Kernel Development <linux-kernel@vger.kernel.org>
Subject: Re: m68k: Convert to genirq (WIP)
Date: Tue, 31 May 2011 22:10:57 +0200 (CEST)	[thread overview]
Message-ID: <alpine.LFD.2.02.1105312208030.3078@ionos> (raw)
In-Reply-To: <BANLkTinsMhQZSeO_ujtYEJuOcAa=FRh-6g@mail.gmail.com>

Geert,

On Tue, 31 May 2011, Geert Uytterhoeven wrote:
> On Sat, May 28, 2011 at 20:32, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > Next on my list is Amiga, which will cover autovectored and chained interrupts.
> 
> Plain chained interrupts should be handled by calling irq_set_chained_handler()
> to register an irq_flow_handler_t, and let the handler call
> generic_handle_irq() for
> each successive interrupt, right?
> 
> However, on Amiga we have interrupts (IRQ_AMIGA_PORTS and
> IRQ_AMIGA_EXTER) that are a combination of chained (for the CIA interrupt
> controllers) and shared level interrupts (for motherboard hardware and
> Zorro expansion
> boards).
> But irq_set_chained_handler() sets IRQ_NOREQUEST, i.e. the interrupt cannot
> be requested anymore via request_irq(), so this rules out using it with shared
> level interrupts.
> 
> What's the preferred way to handle this? Is there are standard way, or should I
> write my own specialized irq_flow_handler_t that handles both?
> 
> In the old scheme, we just registered the chain handlers with
> request_irq(), so they
> worked nicely together with the shared level interrupts (cfr.
> arch/m68k/amiga/cia.c)

You still can setup all those handlers setup via request_irq() and
handle the demux part by calling generic_handle_irq() from the handler
which deals with that demux hardware. irq_set_chained_handler() is
merily an optimization which does not apply to potentially shared
primary interrupts.

Thanks,

	tglx

WARNING: multiple messages have this Message-ID (diff)
From: Thomas Gleixner <tglx@linutronix.de>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Linux/m68k <linux-m68k@vger.kernel.org>,
	Linux Kernel Development <linux-kernel@vger.kernel.org>
Subject: Re: m68k: Convert to genirq (WIP)
Date: Tue, 31 May 2011 22:10:57 +0200 (CEST)	[thread overview]
Message-ID: <alpine.LFD.2.02.1105312208030.3078@ionos> (raw)
In-Reply-To: <BANLkTinsMhQZSeO_ujtYEJuOcAa=FRh-6g@mail.gmail.com>

Geert,

On Tue, 31 May 2011, Geert Uytterhoeven wrote:
> On Sat, May 28, 2011 at 20:32, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > Next on my list is Amiga, which will cover autovectored and chained interrupts.
> 
> Plain chained interrupts should be handled by calling irq_set_chained_handler()
> to register an irq_flow_handler_t, and let the handler call
> generic_handle_irq() for
> each successive interrupt, right?
> 
> However, on Amiga we have interrupts (IRQ_AMIGA_PORTS and
> IRQ_AMIGA_EXTER) that are a combination of chained (for the CIA interrupt
> controllers) and shared level interrupts (for motherboard hardware and
> Zorro expansion
> boards).
> But irq_set_chained_handler() sets IRQ_NOREQUEST, i.e. the interrupt cannot
> be requested anymore via request_irq(), so this rules out using it with shared
> level interrupts.
> 
> What's the preferred way to handle this? Is there are standard way, or should I
> write my own specialized irq_flow_handler_t that handles both?
> 
> In the old scheme, we just registered the chain handlers with
> request_irq(), so they
> worked nicely together with the shared level interrupts (cfr.
> arch/m68k/amiga/cia.c)

You still can setup all those handlers setup via request_irq() and
handle the demux part by calling generic_handle_irq() from the handler
which deals with that demux hardware. irq_set_chained_handler() is
merily an optimization which does not apply to potentially shared
primary interrupts.

Thanks,

	tglx

  reply	other threads:[~2011-05-31 20:10 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-28 18:32 m68k: Convert to genirq (WIP) Geert Uytterhoeven
2011-05-28 18:32 ` Geert Uytterhoeven
2011-05-31  8:35 ` Geert Uytterhoeven
2011-05-31  8:35 ` Geert Uytterhoeven
2011-05-31  9:50 ` Thomas Gleixner
2011-05-31  9:50   ` Thomas Gleixner
2011-05-31 19:54 ` Geert Uytterhoeven
2011-05-31 19:54   ` Geert Uytterhoeven
2011-05-31 20:10   ` Thomas Gleixner [this message]
2011-05-31 20:10     ` Thomas Gleixner
2011-06-03 11:20 ` Finn Thain
2011-06-03 11:20   ` Finn Thain
2011-06-03 11:33   ` Geert Uytterhoeven
2011-06-03 11:33     ` Geert Uytterhoeven
2011-06-05  6:27   ` Brad Boyer
2011-06-05  6:27     ` Brad Boyer
2011-06-05  7:45     ` Geert Uytterhoeven
2011-06-05  7:45     ` Geert Uytterhoeven
2011-08-10  9:59     ` Geert Uytterhoeven
2011-08-10  9:59     ` Geert Uytterhoeven
2011-08-10 10:53       ` Finn Thain
2011-08-10 10:53         ` Finn Thain
2011-08-10 16:19         ` Brad Boyer
2011-08-10 16:19           ` Brad Boyer
2011-08-26  9:52         ` Geert Uytterhoeven
2011-08-26  9:52           ` Geert Uytterhoeven
2011-08-26 11:21           ` Finn Thain
2011-08-26 11:21             ` Finn Thain
2011-08-26 11:32             ` Geert Uytterhoeven
2011-08-26 11:32               ` Geert Uytterhoeven
2011-08-26 16:09             ` Brad Boyer
2011-08-26 16:09               ` Brad Boyer
2011-06-04 17:56 ` Geert Uytterhoeven
2011-06-04 17:56 ` Geert Uytterhoeven
2011-06-15 19:44   ` Geert Uytterhoeven
2011-06-16 19:30     ` Geert Uytterhoeven
2011-06-16 19:30       ` Geert Uytterhoeven
2011-06-16 20:03       ` Thomas Gleixner
2011-06-16 20:03         ` Thomas Gleixner
2011-06-17  3:45       ` Finn Thain
2011-06-17  3:45       ` Finn Thain
2011-06-17  5:01         ` Geert Uytterhoeven
2011-06-17  5:01           ` Geert Uytterhoeven
2011-08-08 13:08         ` Geert Uytterhoeven
2011-08-10 10:48           ` Finn Thain
2011-08-10 10:48             ` Finn Thain
2011-08-08 13:08         ` Geert Uytterhoeven
2011-06-15 19:44   ` Geert Uytterhoeven
2011-06-16 19:45 ` Geert Uytterhoeven
2011-06-16 19:45   ` Geert Uytterhoeven
2011-06-16 21:10   ` Michael Schmitz
2011-06-17 17:25     ` Andreas Schwab
2011-06-17 17:25       ` Andreas Schwab
2011-06-16 21:10   ` Michael Schmitz
2011-06-17 17:22   ` Andreas Schwab
2011-06-17 17:22   ` Andreas Schwab
2011-06-19 10:17     ` Geert Uytterhoeven
2011-06-19 10:17     ` Geert Uytterhoeven
2011-06-19 11:19       ` Andreas Schwab
2011-06-19 11:19       ` Andreas Schwab
2011-06-19 13:36         ` Geert Uytterhoeven
2011-06-19 13:36         ` Geert Uytterhoeven
2011-06-19 13:58           ` Andreas Schwab
2011-06-19 13:58             ` Andreas Schwab

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=alpine.LFD.2.02.1105312208030.3078@ionos \
    --to=tglx@linutronix.de \
    --cc=geert@linux-m68k.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-m68k@lists.linux-m68k.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.