WSL2-Linux-Kernel/arch/arm
Lorenzo Pieralisi 16508469c0 ARM/PCI: Remove pci_fixup_irqs() call for bios32 host controllers
Legacy PCI host controllers (ie host controllers that set-up the PCI bus
through the ARM pci_common_init() API) are currently relying on
pci_fixup_irqs() to assign legacy PCI irqs to devices.  This is not ideal
in that pci_fixup_irqs() assigns IRQs for all PCI devices present in a given
system some of which may well be enabled by the time pci_fixup_irqs() is
called (ie a system with multiple host controllers).  With the introduction
of struct pci_host_bridge.(*map_irq) pointer it is possible to assign IRQs
for all devices originating from a PCI host bridge at probe time; this is
implemented through pci_assign_irq() that relies on the struct
pci_host_bridge.map_irq pointer to map IRQ for a given device.

The benefits this brings are twofold:

  - the IRQ for a device is assigned once at probe time
  - the IRQ assignment works also for hotplugged devices

Remove pci_fixup_irqs() call from bios32 code and rely on pci_assign_irq()
to carry out the IRQ mapping at device probe time.

The map_irq() and swizzle_irq() struct pci_host_bridge callbacks are set-up
in the struct pci_host_bridge created in the bios32 pcibios_init_hw()
function and mach-* code paths (for PCI mach implementations that require a
specific struct hw_pci.(*scan) function callback).

Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
[bhelgaas: folded in fixes from Lorenzo:
http://lkml.kernel.org/r/20170701140629.GC8977@red-moon]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Andrew Lunn <andrew@lunn.ch>
2017-07-02 16:14:29 -05:00
..
boot Sort of on the quieter side this time, which is probably due more 2017-05-10 13:38:18 -07:00
common ARM/clk: move the ICST library to drivers/clk 2017-04-07 11:58:12 +02:00
configs ARM: SoC defconfig updates 2017-05-09 09:58:15 -07:00
crypto
firmware ARM: trusted_foundations: implement prepare_idle() 2014-02-18 13:46:46 -07:00
include ARM/PCI: Convert PCI scan API to pci_scan_root_bus_bridge() 2017-06-28 15:13:55 -05:00
kernel ARM/PCI: Remove pci_fixup_irqs() call for bios32 host controllers 2017-07-02 16:14:29 -05:00
kvm KVM: arm/arm64: Move shared files to virt/kvm/arm 2017-05-04 13:57:26 +02:00
lib new helper: uaccess_kernel() 2017-03-28 16:43:25 -04:00
mach-alpine ARM: 8641/1: treewide: Replace uses of virt_to_phys with __pa_symbol 2017-02-28 11:06:10 +00:00
mach-artpec
mach-asm9260
mach-aspeed ARM: aspeed: Select pinctrl drivers 2017-01-10 22:36:06 +11:00
mach-at91 ARM: at91: move SoC detection to its own driver 2017-03-31 20:36:10 +02:00
mach-axxia ARM: 8641/1: treewide: Replace uses of virt_to_phys with __pa_symbol 2017-02-28 11:06:10 +00:00
mach-bcm
mach-berlin
mach-clps711x ARM: clps711x: remove extraneous files 2016-09-02 18:15:00 +02:00
mach-cns3xxx
mach-davinci ARM: SoC platform updates 2017-05-09 09:49:36 -07:00
mach-digicolor ARM: do away with ARCH_[WANT_OPTIONAL|REQUIRE]_GPIOLIB 2016-06-03 12:18:13 -07:00
mach-dove ARM/PCI: Convert PCI scan API to pci_scan_root_bus_bridge() 2017-06-28 15:13:55 -05:00
mach-ebsa110
mach-efm32
mach-ep93xx ARM: ep93xx: Register ts73xx-fpga manager driver for TS-7300 2017-03-17 15:10:48 +09:00
mach-exynos
mach-footbridge
mach-gemini ARM: gemini: don't select SERIAL_OF_PLATFORM 2017-03-24 22:12:42 +01:00
mach-highbank
mach-hisi
mach-imx ARM: SoC driver updates 2017-05-09 10:01:15 -07:00
mach-integrator
mach-iop13xx ARM/PCI: Convert PCI scan API to pci_scan_root_bus_bridge() 2017-06-28 15:13:55 -05:00
mach-iop32x ARM: kill off set_irq_flags usage 2015-07-28 13:58:13 +02:00
mach-iop33x
mach-ixp4xx scripts/spelling.txt: add regsiter -> register spelling mistake 2017-05-08 17:15:13 -07:00
mach-keystone
mach-ks8695
mach-lpc18xx
mach-lpc32xx
mach-mediatek
mach-meson
mach-mmp
mach-moxart irqchip/faraday: Replace moxa with ftintc010 2017-04-07 10:36:30 +01:00
mach-mv78xx0 ARM/PCI: Convert PCI scan API to pci_scan_root_bus_bridge() 2017-06-28 15:13:55 -05:00
mach-mvebu
mach-mxs ARM: mxs: add support for I2SE Duckbill 2 boards 2017-04-10 21:25:50 +08:00
mach-netx
mach-nomadik
mach-nspire
mach-omap1 ARM: OMAP: PM: Drop useless checks for PM_SUSPEND_STANDBY 2017-03-06 10:38:19 -08:00
mach-omap2 Sort of on the quieter side this time, which is probably due more 2017-05-10 13:38:18 -07:00
mach-orion5x ARM/PCI: Convert PCI scan API to pci_scan_root_bus_bridge() 2017-06-28 15:13:55 -05:00
mach-oxnas ARM: oxnas: remove redundant select CPU_V6K 2017-03-20 10:13:45 +01:00
mach-picoxcell
mach-prima2
mach-pxa ARM: pxa/raumfeld: fix compile error in rotary controller resources 2017-04-18 11:28:38 -07:00
mach-qcom
mach-realview
mach-rockchip
mach-rpc
mach-s3c24xx
mach-s3c64xx regulator: arizona-ldo1: Move pdata into a separate structure 2017-04-25 16:36:32 +01:00
mach-s5pv210 Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm 2017-02-28 11:50:53 -08:00
mach-sa1100
mach-shmobile ARM: 8660/1: shmobile: r7s72100: Enable L2 cache 2017-03-17 10:01:27 +00:00
mach-socfpga
mach-spear ARM: 8641/1: treewide: Replace uses of virt_to_phys with __pa_symbol 2017-02-28 11:06:10 +00:00
mach-sti
mach-stm32
mach-sunxi
mach-tango ARM: 8641/1: treewide: Replace uses of virt_to_phys with __pa_symbol 2017-02-28 11:06:10 +00:00
mach-tegra
mach-u300
mach-uniphier ARM: uniphier: select ARCH_HAS_RESET_CONTROLLER 2016-10-22 18:25:35 +09:00
mach-ux500 ARM: SoC: late DT updates for v4.11 2017-03-03 16:15:48 -08:00
mach-versatile ARM: stop *MIGHT_HAVE_PCI* config from being selected redundantly 2016-09-21 22:45:05 +02:00
mach-vexpress
mach-vt8500
mach-w90x900
mach-zx ARM: 8641/1: treewide: Replace uses of virt_to_phys with __pa_symbol 2017-02-28 11:06:10 +00:00
mach-zynq
mm IOMMU Updates for Linux v4.12 2017-05-09 15:15:47 -07:00
net arm: use set_memory.h header 2017-05-08 17:15:13 -07:00
nwfpe sched/headers: Move task_struct::signal and task_struct::sighand types and accessors into <linux/sched/signal.h> 2017-03-03 01:43:37 +01:00
oprofile
plat-iop clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
plat-omap
plat-orion ARM: orion5x: only call into phylib when available 2017-03-30 17:30:39 +02:00
plat-pxa ARM: pxa: remove platform dma code 2016-08-09 08:16:58 +02:00
plat-samsung
plat-versatile
probes
tools
vdso kbuild: drop FORCE from PHONY targets 2016-04-20 10:27:20 +02:00
vfp
xen xen: Implement EFI reset_system callback 2017-05-02 12:06:50 +02:00
Kconfig ARM: SoC platform updates 2017-05-09 09:49:36 -07:00
Kconfig-nommu
Kconfig.debug
Makefile