1a1a98689SHans de Goede /* SPDX-License-Identifier: MIT */
2a1a98689SHans de Goede /*
3a1a98689SHans de Goede  * Copyright (C) 2020 Red Hat, Inc.
4a1a98689SHans de Goede  *
5a1a98689SHans de Goede  * Authors:
6a1a98689SHans de Goede  * Hans de Goede <hdegoede@redhat.com>
7a1a98689SHans de Goede  */
8a1a98689SHans de Goede 
9a1a98689SHans de Goede #ifndef __DRM_PRIVACY_SCREEN_MACHINE_H__
10a1a98689SHans de Goede #define __DRM_PRIVACY_SCREEN_MACHINE_H__
11a1a98689SHans de Goede 
12a1a98689SHans de Goede #include <linux/list.h>
13a1a98689SHans de Goede 
14a1a98689SHans de Goede /**
15a1a98689SHans de Goede  * struct drm_privacy_screen_lookup -  static privacy-screen lookup list entry
16a1a98689SHans de Goede  *
17a1a98689SHans de Goede  * Used for the static lookup-list for mapping privacy-screen consumer
18a1a98689SHans de Goede  * dev-connector pairs to a privacy-screen provider.
19a1a98689SHans de Goede  */
20a1a98689SHans de Goede struct drm_privacy_screen_lookup {
21a1a98689SHans de Goede 	/** @list: Lookup list list-entry. */
22a1a98689SHans de Goede 	struct list_head list;
23a1a98689SHans de Goede 	/** @dev_id: Consumer device name or NULL to match all devices. */
24a1a98689SHans de Goede 	const char *dev_id;
25a1a98689SHans de Goede 	/** @con_id: Consumer connector name or NULL to match all connectors. */
26a1a98689SHans de Goede 	const char *con_id;
27a1a98689SHans de Goede 	/** @provider: dev_name() of the privacy_screen provider. */
28a1a98689SHans de Goede 	const char *provider;
29a1a98689SHans de Goede };
30a1a98689SHans de Goede 
31a1a98689SHans de Goede void drm_privacy_screen_lookup_add(struct drm_privacy_screen_lookup *lookup);
32a1a98689SHans de Goede void drm_privacy_screen_lookup_remove(struct drm_privacy_screen_lookup *lookup);
33a1a98689SHans de Goede 
34*befe5404SHans de Goede #if IS_ENABLED(CONFIG_DRM_PRIVACY_SCREEN) && IS_ENABLED(CONFIG_X86)
35*befe5404SHans de Goede void drm_privacy_screen_lookup_init(void);
36*befe5404SHans de Goede void drm_privacy_screen_lookup_exit(void);
37*befe5404SHans de Goede #else
drm_privacy_screen_lookup_init(void)38a1a98689SHans de Goede static inline void drm_privacy_screen_lookup_init(void)
39a1a98689SHans de Goede {
40a1a98689SHans de Goede }
drm_privacy_screen_lookup_exit(void)41a1a98689SHans de Goede static inline void drm_privacy_screen_lookup_exit(void)
42a1a98689SHans de Goede {
43a1a98689SHans de Goede }
44*befe5404SHans de Goede #endif
45a1a98689SHans de Goede 
46a1a98689SHans de Goede #endif
47