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 #else 28 static inline struct drm_privacy_screen *drm_privacy_screen_get(struct device *dev, 29 const char *con_id) 30 { 31 return ERR_PTR(-ENODEV); 32 } 33 static inline void drm_privacy_screen_put(struct drm_privacy_screen *priv) 34 { 35 } 36 static inline int drm_privacy_screen_set_sw_state(struct drm_privacy_screen *priv, 37 enum drm_privacy_screen_status sw_state) 38 { 39 return -ENODEV; 40 } 41 static inline void drm_privacy_screen_get_state(struct drm_privacy_screen *priv, 42 enum drm_privacy_screen_status *sw_state_ret, 43 enum drm_privacy_screen_status *hw_state_ret) 44 { 45 *sw_state_ret = PRIVACY_SCREEN_DISABLED; 46 *hw_state_ret = PRIVACY_SCREEN_DISABLED; 47 } 48 #endif 49 50 #endif 51