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