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