Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Jun 2011 21:19:01 +0000 (UTC)
From:      John Baldwin <jhb@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/dev/acpica acpi.c acpi_pci.c
Message-ID:  <201106172119.p5HLJEhO002214@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
jhb         2011-06-17 21:19:01 UTC

  FreeBSD src repository

  Modified files:
    sys/dev/acpica       acpi.c acpi_pci.c 
  Log:
  SVN rev 223207 on 2011-06-17 21:19:01Z by jhb
  
  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.
  
  Revision  Changes    Path
  1.303     +32 -0     src/sys/dev/acpica/acpi.c
  1.39      +6 -20     src/sys/dev/acpica/acpi_pci.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201106172119.p5HLJEhO002214>