From owner-freebsd-current@FreeBSD.ORG Tue Jul 12 18:31:13 2005 Return-Path: X-Original-To: freebsd-current@freebsd.org Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E18F816A41F for ; Tue, 12 Jul 2005 18:31:12 +0000 (GMT) (envelope-from jhb@FreeBSD.org) Received: from mv.twc.weather.com (mv.twc.weather.com [65.212.71.225]) by mx1.FreeBSD.org (Postfix) with ESMTP id 302F443D53 for ; Tue, 12 Jul 2005 18:31:12 +0000 (GMT) (envelope-from jhb@FreeBSD.org) Received: from [10.50.40.201] (Not Verified[65.202.103.25]) by mv.twc.weather.com with NetIQ MailMarshal (v6, 0, 3, 8) id ; Tue, 12 Jul 2005 14:45:17 -0400 From: John Baldwin To: freebsd-current@freebsd.org Date: Tue, 12 Jul 2005 10:27:12 -0400 User-Agent: KMail/1.8 References: <4.3.2.7.2.20050711121036.02caa348@mail.qconline.com> <200507111626.25124.jhb@FreeBSD.org> <42D2F177.3070101@root.org> In-Reply-To: <42D2F177.3070101@root.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200507121027.14113.jhb@FreeBSD.org> Cc: Harry Coin , Nate Lawson Subject: Re: mss.c pcm fix to ' attach returned 6 ' load failure for v5.x acpi and up X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Jul 2005 18:31:13 -0000 On Monday 11 July 2005 06:23 pm, Nate Lawson wrote: > John Baldwin wrote: > > Also, can you upload your acpidump somewhere and provide a URL? I'm > > curious if you have ACPI devices like thermal zones that don't have > > _HID's and only have _CIDs. In fact, here's a patch to fix > > acpi_get_logicalid() in that case. Give this a try first and let me know > > if it fixes it. > > I would rather you directly call acpi_isa_get_compatid() rather than > duplicating its logic here. There's no guarantee that the first CID > will match the single ID passed in. There is no passed in ID. For the common use of this function in almost all ISA drivers, it just needs to return != 0 for PNP devices. > -Nate > > > Index: acpi.c > > =================================================================== > > RCS file: /usr/cvs/src/sys/dev/acpica/acpi.c,v > > retrieving revision 1.214 > > diff -u -r1.214 acpi.c > > --- acpi.c 3 Jun 2005 20:12:12 -0000 1.214 > > +++ acpi.c 11 Jul 2005 20:23:14 -0000 > > @@ -1138,6 +1138,7 @@ > > ACPI_HANDLE h; > > ACPI_STATUS error; > > u_int32_t pnpid; > > + int i; > > > > ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); > > > > @@ -1153,8 +1154,24 @@ > > goto out; > > devinfo = (ACPI_DEVICE_INFO *)buf.Pointer; > > > > - if ((devinfo->Valid & ACPI_VALID_HID) != 0) > > + if ((devinfo->Valid & ACPI_VALID_HID) != 0) { > > pnpid = PNP_EISAID(devinfo->HardwareId.Value); > > + goto out; > > + } > > + > > + /* > > + * If we don't have a HID but do have at least one CID, return the > > first + * CID. This is so that ISA drivers that use > > isa_get_logicalid() to + * determine if a device is a PnP device or > > not will work correctly. + */ > > + if ((devinfo->Valid & ACPI_VALID_CID) != 0) { > > + for (i = 0; i < devinfo->CompatibilityId.Count; i++) { > > + if (strncmp(devinfo->CompatibilityId.Id[i].Value, "PNP", 3) != 0) > > + continue; > > + pnpid = PNP_EISAID(devinfo->CompatibilityId.Id[i].Value); > > + goto out; > > + } > > + } > > > > out: > > if (buf.Pointer != NULL) -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org