• R
    ACPI / dock: Rework the handling of notifications · 59401ccc
    Rafael J. Wysocki 提交于
    The ACPI dock driver uses register_acpi_bus_notifier() which
    installs a notifier triggered globally for all system notifications.
    That first of all is inefficient, because the dock driver is only
    interested in notifications associated with the devices it handles,
    but it has to handle all system notifies for all devices.  Moreover,
    it does that even if no docking stations are present in the system
    (CONFIG_ACPI_DOCK set is sufficient for that to happen).  Besides,
    that is inconvenient, because it requires the driver to do extra work
    for each notification to find the target dock station object.
    
    For these reasons, rework the dock driver to install a notify
    handler individually for each dock station in the system using
    acpi_install_notify_handler().  This allows the dock station
    object to be passed directly to the notify handler and makes it
    possible to simplify the dock driver quite a bit.  It also
    reduces the overhead related to the handling of all system
    notifies when CONFIG_ACPI_DOCK is set.
    Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Acked-by: NYinghai Lu <yinghai@kernel.org>
    59401ccc
dock.c 24.7 KB