linux/drivers/platform/surface
Maximilian Luz 4b38a1dcf3 platform/surface: aggregator: Allow enabling of events without notifiers
We can already enable and disable SAM events via one of two ways: either
via a (non-observer) notifier tied to a specific event group, or a
generic event enable/disable request. In some instances, however,
neither method may be desirable.

The first method will tie the event enable request to a specific
notifier, however, when we want to receive notifications for multiple
event groups of the same target category and forward this to the same
notifier callback, we may receive duplicate events, i.e. one event per
registered notifier. The second method will bypass the internal
reference counting mechanism, meaning that a disable request will
disable the event regardless of any other client driver using it, which
may break the functionality of that driver.

To address this problem, add new functions that allow enabling and
disabling of events via the event reference counting mechanism built
into the controller, without needing to register a notifier.

This can then be used in combination with observer notifiers to process
multiple events of the same target category without duplication in the
same callback function.

Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
Link: https://lore.kernel.org/r/20210604134755.535590-3-luzmaximilian@gmail.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2021-06-16 17:47:53 +02:00
..
aggregator platform/surface: aggregator: Allow enabling of events without notifiers 2021-06-16 17:47:53 +02:00
Kconfig platform/surface: dtx: Add support for native SSAM devices 2021-03-17 18:39:38 +01:00
Makefile platform/surface: Add DTX driver 2021-03-17 18:39:38 +01:00
surface3_button.c platform/surface: Move Surface 3 Button driver to platform/surface 2020-10-27 12:51:24 +01:00
surface3_power.c platform/surface: Move Surface 3 Power OpRegion driver to platform/surface 2020-10-27 12:51:24 +01:00
surface3-wmi.c platform/surface: surface3-wmi: Fix variable 'status' set but not used compiler warning 2021-02-04 13:23:55 +01:00
surface_acpi_notify.c platform/surface: fix potential integer overflow on shift of a int 2021-01-13 10:25:10 +01:00
surface_aggregator_cdev.c platform/surface: aggregator_cdev: Add comments regarding unchecked allocation size 2021-01-13 10:30:21 +01:00
surface_aggregator_registry.c platform/surface: aggregator_registry: Consolidate node groups for 5th- and 6th-gen devices 2021-06-16 17:47:50 +02:00
surface_dtx.c platform/surface: dtx: Add missing mutex_destroy() call in failure path 2021-06-16 17:47:52 +02:00
surface_gpe.c platform/surface: surface_gpe: Fix non-PM_SLEEP build warnings 2021-01-04 15:54:27 +01:00
surface_hotplug.c platform/surface: Add Surface Hot-Plug driver 2021-02-08 16:59:21 +01:00
surface_platform_profile.c platform/surface: aggregator: Make SSAM_DEFINE_SYNC_REQUEST_x define static functions 2021-03-08 11:33:28 +01:00
surfacepro3_button.c platform: x86: ACPI: Get rid of ACPICA message printing 2021-03-08 11:33:39 +01:00