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