1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-22 11:17:19 +00:00
freebsd/sys/dev/acpica
John Baldwin 9debb53220 According to the ACPI spec, the bus number of the child PCI bus of a host
to PCI bridge can be read be evaluating the _BBN method of the host to PCI
device.  Unfortunately, there appear to be some lazy/ignorant/moronic/
whatever BIOS writers that return 0 for _BBN for all host to PCI bridges in
the system.  On a system with a single host to PCI bridge this is not a
problem as the child bus of that single bridge will be bus 0 anyway.
However, on systems with multiple host to PCI bridges and l/i/m/w BIOS
writers this is a major problem resulting in all but the first host to
PCI bridge failing to attach.  So, this adds a workaround.

If the _BBN of a host to PCI bridge is zero and pcib0 already exists
and is not us, the we use _ADR to look up our PCI function and slot
(we currently assume we are on bus 0) and use that to call
host_pcib_get_busno() to try and extract our bus number from config
registers on the host to PCI bridge device.  If that fails, then we make
an evil assumption that ACPI's _SB_ namespace lays out the host to PCI
bridges in ascending order and use our pcib unit number as our bus
number.

Approved by:	re
2002-11-22 18:11:13 +00:00
..
Osd Invoke 3 ACPI task threads as default if option ACPI_MAX_THREADS is 2002-10-31 17:58:39 +00:00
acpi_acad.c Add status initialization code for acpi_cmbat and acpi_acad, 2002-11-03 10:49:24 +00:00
acpi_battery.c Catch up to changes in acpivar.h to add support for using ACPI on 2002-10-16 17:28:53 +00:00
acpi_button.c Add device(power/sleep button and lid) wake function from sleeping state. 2002-07-22 12:52:54 +00:00
acpi_cmbat.c Add status initialization code for acpi_cmbat and acpi_acad, 2002-11-03 10:49:24 +00:00
acpi_cpu.c Catch up to changes in acpivar.h to add support for using ACPI on 2002-10-16 17:28:53 +00:00
acpi_ec.c Add new loader tunable hw.acpi.ec.event_driven so that we control 2002-10-24 10:56:33 +00:00
acpi_lid.c Catch up to changes in acpivar.h to add support for using ACPI on 2002-10-16 17:28:53 +00:00
acpi_pci_link.c Don't examine ACPI_STA_ENABLE bit of device's_STA object on initial 2002-10-31 20:43:02 +00:00
acpi_pci.c - Make pci_load_vendor_data() static and do it during MOD_LOAD instead of 2002-09-04 03:13:16 +00:00
acpi_pcib_acpi.c According to the ACPI spec, the bus number of the child PCI bus of a host 2002-11-22 18:11:13 +00:00
acpi_pcib_pci.c Make sure that ACPI PCI driver probe routine call pci_cfgregopen() 2002-10-05 02:16:49 +00:00
acpi_pcib.c Add a missing newline to the end of a device_printf(). 2002-10-29 19:08:55 +00:00
acpi_pcibvar.h Add code for ACPI PCI link object manipulation. 2002-10-05 02:01:05 +00:00
acpi_powerres.c Catch up to changes in acpivar.h to add support for using ACPI on 2002-10-16 17:28:53 +00:00
acpi_resource.c Oops, missed this one. Fix a printf format error on 64 bit systems 2002-10-04 00:35:22 +00:00
acpi_thermal.c Catch up to changes in acpivar.h to add support for using ACPI on 2002-10-16 17:28:53 +00:00
acpi_timer.c struct timecounter is defined in sys/time.h on 4-stable. 2002-10-16 17:27:40 +00:00
acpi.c Interpret new loader tunable "hw.acpi.verbose" to turn 2002-10-31 20:23:41 +00:00
acpica_support.c Resolve conflicts arising from the ACPI CA 20020611 import. 2002-07-09 17:54:02 +00:00
acpica_support.h Add S4BIOS sleep (BIOS hibernation) and DSDT overriding support. 2001-11-06 15:00:30 +00:00
acpiio.h Fix wrong member variable ordering of struct acpi_bif. 2002-08-09 07:08:53 +00:00
acpivar.h Invoke 3 ACPI task threads as default if option ACPI_MAX_THREADS is 2002-10-31 17:58:39 +00:00