All of lore.kernel.org
 help / color / mirror / Atom feed
From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: ARM PCI controller registration and representation using device tree?
Date: Sun, 3 Jun 2012 02:41:52 +0000	[thread overview]
Message-ID: <201206030241.52775.arnd@arndb.de> (raw)
In-Reply-To: <20120602143448.GA1624@n2100.arm.linux.org.uk>

On Saturday 02 June 2012, Russell King - ARM Linux wrote:
> I think we have to keep the existing strategy of having struct hw_pci and
> its pci_sys_data, registering each bus separately with its own individual
> swizzle and map_irq functions depending on how the bus hardware is setup.

Actually, I think we won't need to call pci_fixup_irqs for DT at all, so
there won't be host specific swizzle and map_irq functions. AFAICT the
interrupt-map property can handle all possible cases, it certainly does
so for a large number of obscure buses on powerpc.

Please have a look at drivers/of/of_pci_irq.c to see if you can spot
anything missing in there. The interrupt-map lets you define a mapping
from a bus-specific interrupt number to a global one, with an address/mask
of the bus/dev/fn ID of the device(s) it applies to. For anything with
default swizzling, we just provide the map for the root dev, while those
devices that require a more complex mapping need to list each IRQ line
that is connected differently. See arch/powerpc/boot/dts/mpc5121ads.dts
for an example with a nonstandard mapping.

> Also rememer that the PCI configuration space accessor functions are highly
> PCI host bridge specific.

Right. We can have a default ones for mmconfig and PIO 0xcfc in drivers/pci,
but I think most will have a separate one on ARM.

	Arnd

WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
To: Russell King - ARM Linux <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>
Cc: devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
	Florian Fainelli
	<florian-p3rKhJxN3npAfugRpC6u6w@public.gmane.org>,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Subject: Re: ARM PCI controller registration and representation using device tree?
Date: Sun, 3 Jun 2012 02:41:52 +0000	[thread overview]
Message-ID: <201206030241.52775.arnd@arndb.de> (raw)
In-Reply-To: <20120602143448.GA1624-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>

On Saturday 02 June 2012, Russell King - ARM Linux wrote:
> I think we have to keep the existing strategy of having struct hw_pci and
> its pci_sys_data, registering each bus separately with its own individual
> swizzle and map_irq functions depending on how the bus hardware is setup.

Actually, I think we won't need to call pci_fixup_irqs for DT at all, so
there won't be host specific swizzle and map_irq functions. AFAICT the
interrupt-map property can handle all possible cases, it certainly does
so for a large number of obscure buses on powerpc.

Please have a look at drivers/of/of_pci_irq.c to see if you can spot
anything missing in there. The interrupt-map lets you define a mapping
from a bus-specific interrupt number to a global one, with an address/mask
of the bus/dev/fn ID of the device(s) it applies to. For anything with
default swizzling, we just provide the map for the root dev, while those
devices that require a more complex mapping need to list each IRQ line
that is connected differently. See arch/powerpc/boot/dts/mpc5121ads.dts
for an example with a nonstandard mapping.

> Also rememer that the PCI configuration space accessor functions are highly
> PCI host bridge specific.

Right. We can have a default ones for mmconfig and PIO 0xcfc in drivers/pci,
but I think most will have a separate one on ARM.

	Arnd

  reply	other threads:[~2012-06-03  2:41 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-02 14:18 ARM PCI controller registration and representation using device tree? Florian Fainelli
2012-06-02 14:18 ` Florian Fainelli
2012-06-02 14:34 ` Russell King - ARM Linux
2012-06-02 14:34   ` Russell King - ARM Linux
2012-06-03  2:41   ` Arnd Bergmann [this message]
2012-06-03  2:41     ` Arnd Bergmann
2012-06-03  7:55     ` Russell King - ARM Linux
2012-06-03  7:55       ` Russell King - ARM Linux
2012-06-03 11:54       ` Arnd Bergmann
2012-06-03 11:54         ` Arnd Bergmann
2012-06-02 20:48 ` Rob Herring
2012-06-02 20:48   ` Rob Herring
2012-06-03  5:56 ` Arnd Bergmann
2012-06-03  5:56   ` Arnd Bergmann

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=201206030241.52775.arnd@arndb.de \
    --to=arnd@arndb.de \
    --cc=linux-arm-kernel@lists.infradead.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.