Merge tag 'trace-v5.15-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt...
[linux-2.6-microblaze.git] / include / linux / surface_acpi_notify.h
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * Interface for Surface ACPI Notify (SAN) driver.
4  *
5  * Provides access to discrete GPU notifications sent from ACPI via the SAN
6  * driver, which are not handled by this driver directly.
7  *
8  * Copyright (C) 2019-2020 Maximilian Luz <luzmaximilian@gmail.com>
9  */
10
11 #ifndef _LINUX_SURFACE_ACPI_NOTIFY_H
12 #define _LINUX_SURFACE_ACPI_NOTIFY_H
13
14 #include <linux/notifier.h>
15 #include <linux/types.h>
16
17 /**
18  * struct san_dgpu_event - Discrete GPU ACPI event.
19  * @category: Category of the event.
20  * @target:   Target ID of the event source.
21  * @command:  Command ID of the event.
22  * @instance: Instance ID of the event source.
23  * @length:   Length of the event's payload data (in bytes).
24  * @payload:  Pointer to the event's payload data.
25  */
26 struct san_dgpu_event {
27         u8 category;
28         u8 target;
29         u8 command;
30         u8 instance;
31         u16 length;
32         u8 *payload;
33 };
34
35 int san_client_link(struct device *client);
36 int san_dgpu_notifier_register(struct notifier_block *nb);
37 int san_dgpu_notifier_unregister(struct notifier_block *nb);
38
39 #endif /* _LINUX_SURFACE_ACPI_NOTIFY_H */