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 Goedestatic inline void drm_privacy_screen_lookup_init(void) 39a1a98689SHans de Goede { 40a1a98689SHans de Goede } drm_privacy_screen_lookup_exit(void)41a1a98689SHans de Goedestatic 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