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_CONSUMER_H__ 10 #define __DRM_PRIVACY_SCREEN_CONSUMER_H__ 11 12 #include <linux/device.h> 13 #include <drm/drm_connector.h> 14 15 struct drm_privacy_screen; 16 17 #if IS_ENABLED(CONFIG_DRM_PRIVACY_SCREEN) 18 struct drm_privacy_screen *drm_privacy_screen_get(struct device *dev, 19 const char *con_id); 20 void drm_privacy_screen_put(struct drm_privacy_screen *priv); 21 22 int drm_privacy_screen_set_sw_state(struct drm_privacy_screen *priv, 23 enum drm_privacy_screen_status sw_state); 24 void drm_privacy_screen_get_state(struct drm_privacy_screen *priv, 25 enum drm_privacy_screen_status *sw_state_ret, 26 enum drm_privacy_screen_status *hw_state_ret); 27 28 int drm_privacy_screen_register_notifier(struct drm_privacy_screen *priv, 29 struct notifier_block *nb); 30 int drm_privacy_screen_unregister_notifier(struct drm_privacy_screen *priv, 31 struct notifier_block *nb); 32 #else 33 static inline struct drm_privacy_screen *drm_privacy_screen_get(struct device *dev, 34 const char *con_id) 35 { 36 return ERR_PTR(-ENODEV); 37 } 38 static inline void drm_privacy_screen_put(struct drm_privacy_screen *priv) 39 { 40 } 41 static inline int drm_privacy_screen_set_sw_state(struct drm_privacy_screen *priv, 42 enum drm_privacy_screen_status sw_state) 43 { 44 return -ENODEV; 45 } 46 static inline void drm_privacy_screen_get_state(struct drm_privacy_screen *priv, 47 enum drm_privacy_screen_status *sw_state_ret, 48 enum drm_privacy_screen_status *hw_state_ret) 49 { 50 *sw_state_ret = PRIVACY_SCREEN_DISABLED; 51 *hw_state_ret = PRIVACY_SCREEN_DISABLED; 52 } 53 static inline int drm_privacy_screen_register_notifier(struct drm_privacy_screen *priv, 54 struct notifier_block *nb) 55 { 56 return -ENODEV; 57 } 58 static inline int drm_privacy_screen_unregister_notifier(struct drm_privacy_screen *priv, 59 struct notifier_block *nb) 60 { 61 return -ENODEV; 62 } 63 #endif 64 65 #endif 66
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.