opnsense-src/sys/dev/acpica
John Baldwin 183c8af32e Don't create a device_t object or parse current resources (via _CRS) for
ACPI Device() objects that do not have any device IDs available via the
_HID or _CID methods.  Without a device ID a device driver cannot attach
to the device anyway.  Namespace objects that are devices but not of
type ACPI_TYPE_DEVICE are not affected.

A few BIOSes have also attached a _CRS method to a PCI device to
allocate resources that are not managed via a BAR.  With the previous
code those resources are allocated from acpi0 directly which can interfere
with the new PCI-PCI bridge driver (since the PCI device in question may
be behind a bridge and its resources should be allocated from that
bridge's windows instead).  The resources were also orphaned and
and would end up associated with some other random device whose device_t
reused the pointer of the original ACPI-enumerated device (after it was
free'd by the ACPI PCI bus driver) in devinfo output which was confusing.
If we want to handle _CRS on PCI devices we can adjust the ACPI PCI bus
driver to do that in the future and associate the resources with the
proper device object respecting PCI-PCI bridges, etc.

Note that with this change the ACPI PCI bus driver no longer has to
delete ACPI-enumerated device_t devices that mirror PCI devices since
they should in general not exist.  There are rare cases when a BIOS
will give a PCI device a _HID (e.g. I've seen a PCI-ISA bridge given
a _HID for a system resource device).  In that case we leave both the
ACPI and PCI-enumerated device_t objects around just as in the previous
code.
2011-06-17 21:19:01 +00:00
..
Osd Merge ACPICA 20110527. 2011-05-31 19:45:58 +00:00
acpi.c Don't create a device_t object or parse current resources (via _CRS) for 2011-06-17 21:19:01 +00:00
acpi_acad.c Do not hold the ACPI A/C adapter lock when changing the power profile. 2009-09-30 17:07:49 +00:00
acpi_battery.c small cleanup of acpi battery status setting and checking 2010-12-17 16:21:30 +00:00
acpi_button.c Merge ACPICA 20101209. 2010-12-15 23:48:45 +00:00
acpi_cmbat.c small cleanup of acpi battery status setting and checking 2010-12-17 16:21:30 +00:00
acpi_cpu.c Use atomic load & store for TSC frequency. It may be overkill for amd64 but 2011-04-07 23:28:28 +00:00
acpi_dock.c Remove unused assignment. 2010-06-11 19:53:42 +00:00
acpi_ec.c Clarify the previous commit. AcpiFinishGpe() will not clear GPE for us 2011-01-04 17:06:03 +00:00
acpi_hpet.c Decrease ACPI-fast timecounter quality to 900 and increase HPET timecounter 2011-05-23 20:12:36 +00:00
acpi_hpet.h Implement new event timers infrastructure. It provides unified APIs for 2010-06-20 21:33:29 +00:00
acpi_if.m Remove PCI_SET_POWERSTATE method from acpi.c and eradicate all PCI-specific 2010-10-19 19:53:06 +00:00
acpi_isab.c Import ACPICA 20090521. 2009-06-05 18:44:36 +00:00
acpi_lid.c Merge ACPICA 20100702. 2010-07-06 20:57:28 +00:00
acpi_package.c Merge ACPICA 20100121. 2010-01-21 21:14:28 +00:00
acpi_pci.c Don't create a device_t object or parse current resources (via _CRS) for 2011-06-17 21:19:01 +00:00
acpi_pci_link.c Add a forgotten change from the previous commit. 2010-11-05 20:24:26 +00:00
acpi_pcib.c Add a new method to the PCI bridge interface, PCIB_POWER_FOR_SLEEP(). This 2010-08-17 15:44:52 +00:00
acpi_pcib_acpi.c Reimplement how PCI-PCI bridges manage their I/O windows. Previously the 2011-05-03 17:37:24 +00:00
acpi_pcib_pci.c Reimplement how PCI-PCI bridges manage their I/O windows. Previously the 2011-05-03 17:37:24 +00:00
acpi_pcibvar.h Add a new method to the PCI bridge interface, PCIB_POWER_FOR_SLEEP(). This 2010-08-17 15:44:52 +00:00
acpi_perf.c Import ACPICA 20090521. 2009-06-05 18:44:36 +00:00
acpi_powerres.c Merge ACPICA 20100121. 2010-01-21 21:14:28 +00:00
acpi_quirk.c Import ACPICA 20090521. 2009-06-05 18:44:36 +00:00
acpi_quirks Add a quirk for a motherboard whose acpi timer runs too fast. 2005-06-26 18:19:14 +00:00
acpi_resource.c Rework r218685. Copy just enough data for the resource type. 2011-02-14 20:05:37 +00:00
acpi_smbat.c small cleanup of acpi battery status setting and checking 2010-12-17 16:21:30 +00:00
acpi_smbus.h Import ACPI smart battery support. Newer systems (Acer, mostly) do not 2005-10-23 00:20:13 +00:00
acpi_thermal.c Correctly output the entire array for hw.acpi.thermal._ACx. 2011-04-19 20:44:43 +00:00
acpi_throttle.c Import ACPICA 20090521. 2009-06-05 18:44:36 +00:00
acpi_timer.c Decrease ACPI-fast timecounter quality to 900 and increase HPET timecounter 2011-05-23 20:12:36 +00:00
acpi_video.c Fix a few more SYSCTL_PROC() that were missing a CTLFLAG type specifier. 2011-01-19 00:57:58 +00:00
acpiio.h small cleanup of acpi battery status setting and checking 2010-12-17 16:21:30 +00:00
acpivar.h Move a trivial acpi_TimerDelta() to acpivar.h to make it inlineable. 2011-04-04 18:39:04 +00:00