Author: jhb
Date: Thu Jul 21 20:43:43 2011
New Revision: 224254
URL: http://svn.freebsd.org/changeset/base/224254

Log:
  Allow non-fixed endpoints for a producer address range if the length of
  the resource covers the entire range.  Some BIOSes appear to mark
  endpoints as non-fixed incorrectly (non-fixed endpoints are supposed to
  be used in _PRS when OSPM is allowed to allocate a certain chunk of
  address space within a larger range, I don't believe it is supposed to be
  used for _CRS).
  
  Approved by:  re (kib)

Modified:
  head/sys/dev/acpica/acpi_pcib_acpi.c

Modified: head/sys/dev/acpica/acpi_pcib_acpi.c
==============================================================================
--- head/sys/dev/acpica/acpi_pcib_acpi.c        Thu Jul 21 20:06:14 2011        
(r224253)
+++ head/sys/dev/acpica/acpi_pcib_acpi.c        Thu Jul 21 20:43:43 2011        
(r224254)
@@ -207,9 +207,11 @@ acpi_pcib_producer_handler(ACPI_RESOURCE
                        length = res->Data.ExtAddress64.AddressLength;
                        break;
                }
-               if (length == 0 ||
-                   res->Data.Address.MinAddressFixed != ACPI_ADDRESS_FIXED ||
-                   res->Data.Address.MaxAddressFixed != ACPI_ADDRESS_FIXED)
+               if (length == 0)
+                       break;
+               if (min + length - 1 != max &&
+                   (res->Data.Address.MinAddressFixed != ACPI_ADDRESS_FIXED ||
+                   res->Data.Address.MaxAddressFixed != ACPI_ADDRESS_FIXED))
                        break;
                flags = 0;
                switch (res->Data.Address.ResourceType) {
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to