Date: Mon, 21 Jul 2003 13:38:12 -0700 (PDT) From: Nate Lawson <nate@root.org> To: John Baldwin <jhb@FreeBSD.org> Cc: cvs-all@FreeBSD.org Subject: RE: cvs commit: src/sys/dev/acpica acpi_ec.c Message-ID: <20030721133301.P34741@root.org> In-Reply-To: <XFMail.20030721151049.jhb@FreeBSD.org> References: <XFMail.20030721151049.jhb@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 21 Jul 2003, John Baldwin wrote: > On 20-Jul-2003 Nate Lawson wrote: > > Modified files: > > sys/dev/acpica acpi_ec.c > > Log: > > Do not call acpi_MatchHid() for all probe cases since it accesses the > > namespace. To compensate for it only being used in the !ECDT case, use > > a more robust approach to indicate a device was probed via ECDT by setting > > the private ivar to be &acpi_ec_devclass. Without the acpi_MatchHid() call > > now, it might have been possible for a non-EC device to have had its magic > > match our previous flag. > > > > Pointed out by: takawata > > Assuming you are doing a device_add_child() to add the ec, you could add it > with the name "acpi_ec" and then only the ec driver would probe it. I do add it with that name but that doesn't prevent it from getting a duplicate probe when the namespace is evaluated (much later). The sequence with ECDT is: acpi_attach() acpi_ec_ecdt_probe() if ECDT present device_add_child("acpi_ec") device_probe_and_attach() acpi_ec_probe() if ECDT magic set in ivars done acpi_ec_attach() allocate resources ... namespace started ... walk all devices, _STA, _INI acpi_ec_probe() <===== same device as already probed above if lookup devclass finds duplicate for _UID ENXIO; don't attach again -Nate
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030721133301.P34741>