All of lore.kernel.org
 help / color / mirror / Atom feed
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Segher Boessenkool <segher@kernel.crashing.org>
Cc: Greg Kroah-Hartman <greg@kroah.com>,
	linuxppc-dev@ozlabs.org,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	linux-pci@atrey.karlin.mff.cuni.cz,
	"David S. Miller" <davem@davemloft.net>
Subject: Re: [RFC/PATCH 6/7] MPIC MSI backend
Date: Tue, 07 Nov 2006 20:16:03 +1100	[thread overview]
Message-ID: <1162890963.28571.465.camel@localhost.localdomain> (raw)
In-Reply-To: <3210FBE5-5F22-4759-A728-A98175A435D6@kernel.crashing.org>


> > Yes, I will do a cleanup pass on the MPIC code there. I think it  
> > should
> > only program the chip for polarity/sense in startup() and thus can
> > "override" the native LSI setting of that vector when the interrupt is
> > flagged as MSI without actually losing the original information.
> 
> You mean when we (in the future) reserve a range of vectors
> for MSI allocation at MPIC startup?  Sure, that works.

Not only, even with the current code... basically keep the
sense/polarity flags of the LSI intact in the irq_desc, just add the
IRQF_MSI bit to "override" them when we configure the interrupt to be an
MSI. Then, irq_chip->startup() instead of set_irq_type() does the actual
configuration of the MPIC and, seeing the IRQF_MSI flags, does the right
thing.

That way, when restoring the IRQ back to LSI, we just clear IRQF_MSI and
the old sense/polarity settings will still be there in the descriptor
and MPIC will do the right thing on the next startup().

> ["The PCIe slot" == the 16x PCIe slot on PowerMacs here, for
> the record; it isn't connected over a bridge to HT, but is
> directly connected to the CPC945 (U4) chip.]

Yup, the Attu if you prefer :-)

> There are more problems there (with this current code): the LSI
> IRQ will always be #3, which cannot be used as an MSI IRQ;

Are you sure about that ? In this case, we need a special kludge for
now. I though the MSI stuff could override any of the MPIC vectors, but
you might well be right there, it might not work with the U4 internal
ones.

> and the MSI address to use can not be found on a parent HT bridge
> (as there is none, duh).  That last problem makes the patch
> perfectly safe for the CPC945 PCIe port though :-)

Yes, I know :-) We need specific code to discover that a device is
hanging off the Attu instead of HT. I already explained it all to
Michael, it shouldn't be too hard. I even have a card setup to test it,
just didn't have time to do it just yet.

> Can't we just check here?  If not, what's the point of having
> a return code here?  although doing the check in check() might
> be conceptually nicer, sure.

Yes, nicer and avoids going all the way to allocating stuff and then
having to de-allocate.

Ben.

  reply	other threads:[~2006-11-07  9:16 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-11-07  7:21 [RFC/PATCH 0/7] Powerpc MSI Implementation Michael Ellerman
2006-11-07  7:21 ` [RFC/PATCH 1/7] Add #defines for Hypertransport MSI fields Michael Ellerman
2006-11-07  8:01   ` Segher Boessenkool
2006-11-07  7:21 ` [RFC/PATCH 2/7] Make some MSI-X #defines generic Michael Ellerman
2006-11-13 18:31   ` patch pci-make-some-msi-x-defines-generic.patch added to gregkh-2.6 tree gregkh
2006-11-07  7:21 ` [RFC/PATCH 3/7] Rip out the existing powerpc msi stubs Michael Ellerman
2006-11-07  7:21 ` [RFC/PATCH 5/7] RTAS MSI implementation Michael Ellerman
2006-11-08 20:16   ` Jake Moilanen
2006-11-08 23:35     ` Michael Ellerman
2006-11-07  7:21 ` [RFC/PATCH 4/7] Powerpc " Michael Ellerman
2006-11-07 20:07   ` Matthew Wilcox
2006-11-07 20:14     ` Russell King
2006-11-07 20:40       ` Benjamin Herrenschmidt
2006-11-07 20:44       ` Matthew Wilcox
2006-11-07 20:48         ` Russell King
2006-11-07 21:02           ` Matthew Wilcox
2006-11-07 22:25             ` Russell King
2006-11-07 22:29               ` Benjamin Herrenschmidt
2006-11-07 23:11                 ` Eric W. Biederman
2006-11-08  0:15                   ` Benjamin Herrenschmidt
2006-11-08  1:33                     ` Eric W. Biederman
2006-11-08  2:08                       ` Benjamin Herrenschmidt
2006-11-08  2:43                         ` Eric W. Biederman
2006-11-08  3:02                           ` Benjamin Herrenschmidt
2006-11-07 20:39     ` Benjamin Herrenschmidt
2006-11-07  7:21 ` [RFC/PATCH 6/7] MPIC MSI backend Michael Ellerman
2006-11-07  8:27   ` Segher Boessenkool
2006-11-07  8:42     ` Benjamin Herrenschmidt
2006-11-07  9:04       ` Segher Boessenkool
2006-11-07  9:16         ` Benjamin Herrenschmidt [this message]
2006-11-07 11:12           ` Segher Boessenkool
2006-11-07  7:21 ` [RFC/PATCH 7/7] Enable MSI on Powerpc Michael Ellerman
2006-11-07  7:41 ` [RFC/PATCH 0/7] Powerpc MSI Implementation Benjamin Herrenschmidt
2006-11-07  8:02   ` Greg KH
2006-11-08  5:18     ` Michael Ellerman
2006-11-08 10:26       ` Eric W. Biederman
2006-11-08 23:33         ` Michael Ellerman
2006-11-09  7:36           ` Segher Boessenkool
2006-11-13  6:05             ` Michael Ellerman

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=1162890963.28571.465.camel@localhost.localdomain \
    --to=benh@kernel.crashing.org \
    --cc=davem@davemloft.net \
    --cc=ebiederm@xmission.com \
    --cc=greg@kroah.com \
    --cc=linux-pci@atrey.karlin.mff.cuni.cz \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=segher@kernel.crashing.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.