2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-25 21:54:06 +08:00
linux-next/drivers/eisa
Yinghai Lu c5fb301ae8 EISA/PCI: Init EISA early, before PNP
Matthew reported kernels fail the pci_eisa probe and are later successful
with the virtual_eisa_root_init force probe without slot0.

The reason for that is: PNP probing is before pci_eisa_init gets called
as pci_eisa_init is called via pci_driver.

pnp 00:0f has 0xc80 - 0xc84 reserved.
[    9.700409] pnp 00:0f: [io  0x0c80-0x0c84]

so eisa_probe will fail from pci_eisa_init
				==>eisa_root_register
					==>eisa_probe path.
as force_probe is not set in pci_eisa_root, it will bail early when
slot0 is not probed and initialized.

Try to use subsys_initcall_sync instead, and will keep following sequence:
	pci_subsys_init
	pci_eisa_init_early
	pnpacpi_init/isapnp_init

After this patch EISA can be initialized properly, and PNP overlapping
resource will not be reserved.
[   10.104434] system 00:0f: [io  0x0c80-0x0c84] could not be reserved

Reported-by: Matthew Whitehead <mwhitehe@redhat.com>
Tested-by: Matthew Whitehead <mwhitehe@redhat.com>
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: stable@vger.kernel.org
2013-04-01 12:02:05 -06:00
..
.gitignore
eisa-bus.c eisa: fix coding style for eisa bus code 2010-03-06 11:26:32 -08:00
eisa.ids eisa: Fix spelling of "asynchronous". 2012-11-19 14:30:25 +01:00
Kconfig x86: allow more than 8 cpus to be used on 32-bit 2009-01-30 00:20:22 +01:00
Makefile driver core: remove DEVICE_NAME_SIZE define 2008-07-21 21:54:53 -07:00
pci_eisa.c EISA/PCI: Init EISA early, before PNP 2013-04-01 12:02:05 -06:00
virtual_root.c eisa: remove driver_data direct access of struct device 2009-06-15 21:30:26 -07:00