From owner-svn-src-all@FreeBSD.ORG Fri Sep 11 22:49:34 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9515E106568F; Fri, 11 Sep 2009 22:49:34 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 832F98FC0A; Fri, 11 Sep 2009 22:49:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n8BMnYDD065832; Fri, 11 Sep 2009 22:49:34 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n8BMnY0U065825; Fri, 11 Sep 2009 22:49:34 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <200909112249.n8BMnY0U065825@svn.freebsd.org> From: Jung-uk Kim Date: Fri, 11 Sep 2009 22:49:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r197105 - in head/sys: conf dev/acpica modules/acpi/acpi X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Sep 2009 22:49:34 -0000 Author: jkim Date: Fri Sep 11 22:49:34 2009 New Revision: 197105 URL: http://svn.freebsd.org/changeset/base/197105 Log: Catch up with ACPICA 20090903. Modified: head/sys/conf/files head/sys/dev/acpica/acpi.c head/sys/dev/acpica/acpi_cpu.c head/sys/dev/acpica/acpi_pcib_acpi.c head/sys/dev/acpica/acpivar.h head/sys/modules/acpi/acpi/Makefile Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Fri Sep 11 22:48:53 2009 (r197104) +++ head/sys/conf/files Fri Sep 11 22:49:34 2009 (r197105) @@ -220,6 +220,7 @@ contrib/dev/acpica/namespace/nsnames.c o contrib/dev/acpica/namespace/nsobject.c optional acpi contrib/dev/acpica/namespace/nsparse.c optional acpi contrib/dev/acpica/namespace/nspredef.c optional acpi +contrib/dev/acpica/namespace/nsrepair.c optional acpi contrib/dev/acpica/namespace/nssearch.c optional acpi contrib/dev/acpica/namespace/nsutils.c optional acpi contrib/dev/acpica/namespace/nswalk.c optional acpi @@ -260,6 +261,7 @@ contrib/dev/acpica/utilities/utdebug.c o contrib/dev/acpica/utilities/utdelete.c optional acpi contrib/dev/acpica/utilities/uteval.c optional acpi contrib/dev/acpica/utilities/utglobal.c optional acpi +contrib/dev/acpica/utilities/utids.c optional acpi contrib/dev/acpica/utilities/utinit.c optional acpi contrib/dev/acpica/utilities/utlock.c optional acpi contrib/dev/acpica/utilities/utmath.c optional acpi Modified: head/sys/dev/acpica/acpi.c ============================================================================== --- head/sys/dev/acpica/acpi.c Fri Sep 11 22:48:53 2009 (r197104) +++ head/sys/dev/acpica/acpi.c Fri Sep 11 22:49:34 2009 (r197105) @@ -864,24 +864,20 @@ static int acpi_child_pnpinfo_str_method(device_t cbdev, device_t child, char *buf, size_t buflen) { - ACPI_BUFFER adbuf = {ACPI_ALLOCATE_BUFFER, NULL}; - ACPI_DEVICE_INFO *adinfo; struct acpi_device *dinfo = device_get_ivars(child); - char *end; - int error; + ACPI_DEVICE_INFO *adinfo; - error = AcpiGetObjectInfo(dinfo->ad_handle, &adbuf); - adinfo = (ACPI_DEVICE_INFO *) adbuf.Pointer; - if (error) + if (ACPI_FAILURE(AcpiGetObjectInfo(dinfo->ad_handle, &adinfo))) { snprintf(buf, buflen, "unknown"); - else - snprintf(buf, buflen, "_HID=%s _UID=%lu", - (adinfo->Valid & ACPI_VALID_HID) ? - adinfo->HardwareId.Value : "none", - (adinfo->Valid & ACPI_VALID_UID) ? - strtoul(adinfo->UniqueId.Value, &end, 10) : 0); - if (adinfo) - AcpiOsFree(adinfo); + return (0); + } + + snprintf(buf, buflen, "_HID=%s _UID=%lu", + (adinfo->Valid & ACPI_VALID_HID) ? + adinfo->HardwareId.String : "none", + (adinfo->Valid & ACPI_VALID_UID) ? + strtoul(adinfo->UniqueId.String, NULL, 10) : 0UL); + AcpiOsFree(adinfo); return (0); } @@ -1315,31 +1311,21 @@ static uint32_t acpi_isa_get_logicalid(device_t dev) { ACPI_DEVICE_INFO *devinfo; - ACPI_BUFFER buf; ACPI_HANDLE h; - ACPI_STATUS error; - u_int32_t pnpid; + uint32_t pnpid; ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); - pnpid = 0; - buf.Pointer = NULL; - buf.Length = ACPI_ALLOCATE_BUFFER; - /* Fetch and validate the HID. */ - if ((h = acpi_get_handle(dev)) == NULL) - goto out; - error = AcpiGetObjectInfo(h, &buf); - if (ACPI_FAILURE(error)) - goto out; - devinfo = (ACPI_DEVICE_INFO *)buf.Pointer; - - if ((devinfo->Valid & ACPI_VALID_HID) != 0) - pnpid = PNP_EISAID(devinfo->HardwareId.Value); + if ((h = acpi_get_handle(dev)) == NULL || + ACPI_FAILURE(AcpiGetObjectInfo(h, &devinfo))) + return_VALUE (0); + + pnpid = (devinfo->Valid & ACPI_VALID_HID) != 0 && + devinfo->HardwareId.Length >= ACPI_EISAID_STRING_SIZE ? + PNP_EISAID(devinfo->HardwareId.String) : 0; + AcpiOsFree(devinfo); -out: - if (buf.Pointer != NULL) - AcpiOsFree(buf.Pointer); return_VALUE (pnpid); } @@ -1347,41 +1333,36 @@ static int acpi_isa_get_compatid(device_t dev, uint32_t *cids, int count) { ACPI_DEVICE_INFO *devinfo; - ACPI_BUFFER buf; + ACPI_DEVICE_ID *ids; ACPI_HANDLE h; - ACPI_STATUS error; uint32_t *pnpid; - int valid, i; + int i, valid; ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); pnpid = cids; - valid = 0; - buf.Pointer = NULL; - buf.Length = ACPI_ALLOCATE_BUFFER; /* Fetch and validate the CID */ - if ((h = acpi_get_handle(dev)) == NULL) - goto out; - error = AcpiGetObjectInfo(h, &buf); - if (ACPI_FAILURE(error)) - goto out; - devinfo = (ACPI_DEVICE_INFO *)buf.Pointer; - if ((devinfo->Valid & ACPI_VALID_CID) == 0) - goto out; - - if (devinfo->CompatibilityId.Count < count) - count = devinfo->CompatibilityId.Count; - for (i = 0; i < count; i++) { - if (strncmp(devinfo->CompatibilityId.Id[i].Value, "PNP", 3) != 0) - continue; - *pnpid++ = PNP_EISAID(devinfo->CompatibilityId.Id[i].Value); - valid++; - } + if ((h = acpi_get_handle(dev)) == NULL || + ACPI_FAILURE(AcpiGetObjectInfo(h, &devinfo))) + return_VALUE (0); + + if ((devinfo->Valid & ACPI_VALID_CID) == 0) { + AcpiOsFree(devinfo); + return_VALUE (0); + } + + if (devinfo->CompatibleIdList.Count < count) + count = devinfo->CompatibleIdList.Count; + ids = devinfo->CompatibleIdList.Ids; + for (i = 0, valid = 0; i < count; i++) + if (ids[i].Length >= ACPI_EISAID_STRING_SIZE && + strncmp(ids[i].String, "PNP", 3) == 0) { + *pnpid++ = PNP_EISAID(ids[i].String); + valid++; + } + AcpiOsFree(devinfo); -out: - if (buf.Pointer != NULL) - AcpiOsFree(buf.Pointer); return_VALUE (valid); } @@ -1389,10 +1370,14 @@ static char * acpi_device_id_probe(device_t bus, device_t dev, char **ids) { ACPI_HANDLE h; + ACPI_OBJECT_TYPE t; int i; h = acpi_get_handle(dev); - if (ids == NULL || h == NULL || acpi_get_type(dev) != ACPI_TYPE_DEVICE) + if (ids == NULL || h == NULL) + return (NULL); + t = acpi_get_type(dev); + if (t != ACPI_TYPE_DEVICE && t != ACPI_TYPE_PROCESSOR) return (NULL); /* Try to match one of the array of IDs with a HID or CID. */ @@ -1821,7 +1806,7 @@ acpi_probe_child(ACPI_HANDLE handle, UIN * placeholder object handler so we can store a device_t in an ACPI_HANDLE. */ void -acpi_fake_objhandler(ACPI_HANDLE h, UINT32 fn, void *data) +acpi_fake_objhandler(ACPI_HANDLE h, void *data) { } @@ -1910,30 +1895,18 @@ acpi_DeviceIsPresent(device_t dev) { ACPI_DEVICE_INFO *devinfo; ACPI_HANDLE h; - ACPI_BUFFER buf; - ACPI_STATUS error; - int ret; + BOOLEAN present; - ret = FALSE; - if ((h = acpi_get_handle(dev)) == NULL) + if ((h = acpi_get_handle(dev)) == NULL || + ACPI_FAILURE(AcpiGetObjectInfo(h, &devinfo))) return (FALSE); - buf.Pointer = NULL; - buf.Length = ACPI_ALLOCATE_BUFFER; - error = AcpiGetObjectInfo(h, &buf); - if (ACPI_FAILURE(error)) - return (FALSE); - devinfo = (ACPI_DEVICE_INFO *)buf.Pointer; /* If no _STA method, must be present */ - if ((devinfo->Valid & ACPI_VALID_STA) == 0) - ret = TRUE; - - /* Return true for 'present' and 'functioning' */ - if (ACPI_DEVICE_PRESENT(devinfo->CurrentStatus)) - ret = TRUE; + present = (devinfo->Valid & ACPI_VALID_STA) == 0 || + ACPI_DEVICE_PRESENT(devinfo->CurrentStatus) ? TRUE : FALSE; - AcpiOsFree(buf.Pointer); - return (ret); + AcpiOsFree(devinfo); + return (present); } /* @@ -1944,30 +1917,18 @@ acpi_BatteryIsPresent(device_t dev) { ACPI_DEVICE_INFO *devinfo; ACPI_HANDLE h; - ACPI_BUFFER buf; - ACPI_STATUS error; - int ret; + BOOLEAN present; - ret = FALSE; - if ((h = acpi_get_handle(dev)) == NULL) + if ((h = acpi_get_handle(dev)) == NULL || + ACPI_FAILURE(AcpiGetObjectInfo(h, &devinfo))) return (FALSE); - buf.Pointer = NULL; - buf.Length = ACPI_ALLOCATE_BUFFER; - error = AcpiGetObjectInfo(h, &buf); - if (ACPI_FAILURE(error)) - return (FALSE); - devinfo = (ACPI_DEVICE_INFO *)buf.Pointer; /* If no _STA method, must be present */ - if ((devinfo->Valid & ACPI_VALID_STA) == 0) - ret = TRUE; - - /* Return true for 'present', 'battery present', and 'functioning' */ - if (ACPI_BATTERY_PRESENT(devinfo->CurrentStatus)) - ret = TRUE; + present = (devinfo->Valid & ACPI_VALID_STA) == 0 || + ACPI_BATTERY_PRESENT(devinfo->CurrentStatus) ? TRUE : FALSE; - AcpiOsFree(buf.Pointer); - return (ret); + AcpiOsFree(devinfo); + return (present); } /* @@ -1977,33 +1938,26 @@ static BOOLEAN acpi_MatchHid(ACPI_HANDLE h, const char *hid) { ACPI_DEVICE_INFO *devinfo; - ACPI_BUFFER buf; - ACPI_STATUS error; - int ret, i; + BOOLEAN ret; + int i; - ret = FALSE; - if (hid == NULL || h == NULL) - return (ret); - buf.Pointer = NULL; - buf.Length = ACPI_ALLOCATE_BUFFER; - error = AcpiGetObjectInfo(h, &buf); - if (ACPI_FAILURE(error)) - return (ret); - devinfo = (ACPI_DEVICE_INFO *)buf.Pointer; + if (hid == NULL || h == NULL || + ACPI_FAILURE(AcpiGetObjectInfo(h, &devinfo))) + return (FALSE); + ret = FALSE; if ((devinfo->Valid & ACPI_VALID_HID) != 0 && - strcmp(hid, devinfo->HardwareId.Value) == 0) + strcmp(hid, devinfo->HardwareId.String) == 0) ret = TRUE; - else if ((devinfo->Valid & ACPI_VALID_CID) != 0) { - for (i = 0; i < devinfo->CompatibilityId.Count; i++) { - if (strcmp(hid, devinfo->CompatibilityId.Id[i].Value) == 0) { + else if ((devinfo->Valid & ACPI_VALID_CID) != 0) + for (i = 0; i < devinfo->CompatibleIdList.Count; i++) { + if (strcmp(hid, devinfo->CompatibleIdList.Ids[i].String) == 0) { ret = TRUE; break; } } - } - AcpiOsFree(buf.Pointer); + AcpiOsFree(devinfo); return (ret); } Modified: head/sys/dev/acpica/acpi_cpu.c ============================================================================== --- head/sys/dev/acpica/acpi_cpu.c Fri Sep 11 22:48:53 2009 (r197104) +++ head/sys/dev/acpica/acpi_cpu.c Fri Sep 11 22:49:34 2009 (r197105) @@ -940,7 +940,7 @@ acpi_cpu_idle() * get the time very close to the CPU start/stop clock logic, this * is the only reliable time source. */ - AcpiRead(&start_time, &AcpiGbl_FADT.XPmTimerBlock); + AcpiHwRead(&start_time, &AcpiGbl_FADT.XPmTimerBlock); CPU_GET_REG(cx_next->p_lvlx, 1); /* @@ -949,8 +949,8 @@ acpi_cpu_idle() * the processor has stopped. Doing it again provides enough * margin that we are certain to have a correct value. */ - AcpiRead(&end_time, &AcpiGbl_FADT.XPmTimerBlock); - AcpiRead(&end_time, &AcpiGbl_FADT.XPmTimerBlock); + AcpiHwRead(&end_time, &AcpiGbl_FADT.XPmTimerBlock); + AcpiHwRead(&end_time, &AcpiGbl_FADT.XPmTimerBlock); /* Enable bus master arbitration and disable bus master wakeup. */ if (cx_next->type == ACPI_STATE_C3 && Modified: head/sys/dev/acpica/acpi_pcib_acpi.c ============================================================================== --- head/sys/dev/acpica/acpi_pcib_acpi.c Fri Sep 11 22:48:53 2009 (r197104) +++ head/sys/dev/acpica/acpi_pcib_acpi.c Fri Sep 11 22:49:34 2009 (r197105) @@ -131,14 +131,18 @@ MODULE_DEPEND(acpi_pcib, acpi, 1, 1, 1); static int acpi_pcib_acpi_probe(device_t dev) { - static char *pcib_ids[] = { "PNP0A03", "PNP0A08", NULL }; + ACPI_DEVICE_INFO *devinfo; + ACPI_HANDLE h; + int root; - if (acpi_disabled("pcib") || - ACPI_ID_PROBE(device_get_parent(dev), dev, pcib_ids) == NULL) + if (acpi_disabled("pcib") || (h = acpi_get_handle(dev)) == NULL || + ACPI_FAILURE(AcpiGetObjectInfo(h, &devinfo))) return (ENXIO); - - if (pci_cfgregopen() == 0) + root = (devinfo->Flags & ACPI_PCI_ROOT_BRIDGE) != 0; + AcpiOsFree(devinfo); + if (!root || pci_cfgregopen() == 0) return (ENXIO); + device_set_desc(dev, "ACPI Host-PCI bridge"); return (0); } Modified: head/sys/dev/acpica/acpivar.h ============================================================================== --- head/sys/dev/acpica/acpivar.h Fri Sep 11 22:48:53 2009 (r197104) +++ head/sys/dev/acpica/acpivar.h Fri Sep 11 22:49:34 2009 (r197105) @@ -254,7 +254,7 @@ __ACPI_BUS_ACCESSOR(acpi, magic, ACPI, M __ACPI_BUS_ACCESSOR(acpi, private, ACPI, PRIVATE, void *) __ACPI_BUS_ACCESSOR(acpi, flags, ACPI, FLAGS, int) -void acpi_fake_objhandler(ACPI_HANDLE h, UINT32 fn, void *data); +void acpi_fake_objhandler(ACPI_HANDLE h, void *data); static __inline device_t acpi_get_device(ACPI_HANDLE handle) { Modified: head/sys/modules/acpi/acpi/Makefile ============================================================================== --- head/sys/modules/acpi/acpi/Makefile Fri Sep 11 22:48:53 2009 (r197104) +++ head/sys/modules/acpi/acpi/Makefile Fri Sep 11 22:49:34 2009 (r197105) @@ -37,16 +37,16 @@ SRCS+= exprep.c exregion.c exresnte.c ex SRCS+= exstoren.c exstorob.c exsystem.c exutils.c SRCS+= hwacpi.c hwgpe.c hwregs.c hwsleep.c hwtimer.c hwvalid.c hwxface.c SRCS+= nsaccess.c nsalloc.c nsdump.c nseval.c nsinit.c nsload.c nsnames.c -SRCS+= nsobject.c nsparse.c nspredef.c nssearch.c nsutils.c nswalk.c -SRCS+= nsxfeval.c nsxfname.c nsxfobj.c +SRCS+= nsobject.c nsparse.c nspredef.c nsrepair.c nssearch.c nsutils.c +SRCS+= nswalk.c nsxfeval.c nsxfname.c nsxfobj.c SRCS+= psargs.c psloop.c psopcode.c psparse.c psscope.c pstree.c psutils.c SRCS+= pswalk.c psxface.c SRCS+= rsaddr.c rscalc.c rscreate.c rsdump.c rsinfo.c rsio.c rsirq.c rslist.c SRCS+= rsmemory.c rsmisc.c rsutils.c rsxface.c SRCS+= tbfadt.c tbfind.c tbinstal.c tbutils.c tbxface.c tbxfroot.c SRCS+= utalloc.c utcache.c utcopy.c utdebug.c utdelete.c uteval.c utglobal.c -SRCS+= utinit.c utlock.c utmath.c utmisc.c utmutex.c utobject.c utresrc.c -SRCS+= utstate.c utxface.c +SRCS+= utids.c utinit.c utlock.c utmath.c utmisc.c utmutex.c utobject.c +SRCS+= utresrc.c utstate.c utxface.c # OSPM layer and core hardware drivers SRCS+= acpi.c acpi_button.c acpi_isab.c acpi_package.c acpi_pci.c acpi_pcib.c