Thread (28 messages) 28 messages, 2 authors, 2012-11-28

Re: [PATCH v3 1/4] ACPI: Support system notify handler via .sys_notify

From: Rafael J. Wysocki <hidden>
Date: 2012-11-28 18:23:50
Also in: lkml

On Wednesday, November 28, 2012 09:54:43 AM Toshi Kani wrote:
quoted
quoted
quoted
quoted
quoted
By using acpi_install_notify_handler(), each driver needs to walk
through the entire ACPI namespace to find its associated ACPI devices
and call it to register one by one.  I think this is more work for
non-ACPI drivers than defining acpi_driver.
I'm not really sure what you mean.  The drivers in question already know
what the relevant ACPI device nodes are (because they need them anyway
for other purposes), so they don't need to look for them specifically and
acpi_install_notify_handler() doesn't do any namespace walking.  So what
you said above simply doesn't make sense from this viewpoint.
Yes, if drivers already know the relevant ACPI devices, then walking the
ACPI namespace is not necessary.  I was referring the case like
processor_driver.c, acpi_memhotplug.c, and container.c in my statement. 
BTW, when an ACPI device is marked as non-present, which is the case
before hot-add, we do not create an acpi_device object and therefore do
not bind it with a driver.  This is why these drivers walk the ACPI
namespace and install their notify handlers regardless of device status.
So maybe we should create struct acpi_device objects in that case too?
I think it has some challenge as well.  We bind an ACPI driver with
device_register(), which calls device_add()-> kobject_add().  So, all
non-present ACPI device objects will show up in sysfs, unless we can
change the core.  This will change user interface.  There can be quite
many non-present devices in ACPI namespace depending on FW
implementation.
If additional devices appear in sysfs, that's not a problem.  If there
were fewer of them, that would be a real one. :-)

Thanks,
Rafael


-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help