cvs commit: src/sys/dev/acpica acpi_ec.c
Nate Lawson
nate at root.org
Mon Jul 21 13:38:14 PDT 2003
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
More information about the cvs-src
mailing list