freebsd-dev/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_acad.c
acpi_battery.c
acpi_button.c
acpi_cmbat.c
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
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
acpi_if.m
acpi_isab.c
acpi_lid.c
acpi_package.c
acpi_pci_link.c
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_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_pcib.c
acpi_pcibvar.h
acpi_perf.c
acpi_powerres.c
acpi_quirk.c
acpi_quirks
acpi_resource.c Rework r218685. Copy just enough data for the resource type. 2011-02-14 20:05:37 +00:00
acpi_smbat.c
acpi_smbus.h
acpi_thermal.c Correctly output the entire array for hw.acpi.thermal._ACx. 2011-04-19 20:44:43 +00:00
acpi_throttle.c
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
acpi.c Don't create a device_t object or parse current resources (via _CRS) for 2011-06-17 21:19:01 +00:00
acpiio.h
acpivar.h Move a trivial acpi_TimerDelta() to acpivar.h to make it inlineable. 2011-04-04 18:39:04 +00:00