1*a1a98689SHans de Goede /* SPDX-License-Identifier: MIT */ 2*a1a98689SHans de Goede /* 3*a1a98689SHans de Goede * Copyright (C) 2020 Red Hat, Inc. 4*a1a98689SHans de Goede * 5*a1a98689SHans de Goede * Authors: 6*a1a98689SHans de Goede * Hans de Goede <hdegoede@redhat.com> 7*a1a98689SHans de Goede */ 8*a1a98689SHans de Goede 9*a1a98689SHans de Goede #ifndef __DRM_PRIVACY_SCREEN_CONSUMER_H__ 10*a1a98689SHans de Goede #define __DRM_PRIVACY_SCREEN_CONSUMER_H__ 11*a1a98689SHans de Goede 12*a1a98689SHans de Goede #include <linux/device.h> 13*a1a98689SHans de Goede #include <drm/drm_connector.h> 14*a1a98689SHans de Goede 15*a1a98689SHans de Goede struct drm_privacy_screen; 16*a1a98689SHans de Goede 17*a1a98689SHans de Goede #if IS_ENABLED(CONFIG_DRM_PRIVACY_SCREEN) 18*a1a98689SHans de Goede struct drm_privacy_screen *drm_privacy_screen_get(struct device *dev, 19*a1a98689SHans de Goede const char *con_id); 20*a1a98689SHans de Goede void drm_privacy_screen_put(struct drm_privacy_screen *priv); 21*a1a98689SHans de Goede 22*a1a98689SHans de Goede int drm_privacy_screen_set_sw_state(struct drm_privacy_screen *priv, 23*a1a98689SHans de Goede enum drm_privacy_screen_status sw_state); 24*a1a98689SHans de Goede void drm_privacy_screen_get_state(struct drm_privacy_screen *priv, 25*a1a98689SHans de Goede enum drm_privacy_screen_status *sw_state_ret, 26*a1a98689SHans de Goede enum drm_privacy_screen_status *hw_state_ret); 27*a1a98689SHans de Goede #else 28*a1a98689SHans de Goede static inline struct drm_privacy_screen *drm_privacy_screen_get(struct device *dev, 29*a1a98689SHans de Goede const char *con_id) 30*a1a98689SHans de Goede { 31*a1a98689SHans de Goede return ERR_PTR(-ENODEV); 32*a1a98689SHans de Goede } 33*a1a98689SHans de Goede static inline void drm_privacy_screen_put(struct drm_privacy_screen *priv) 34*a1a98689SHans de Goede { 35*a1a98689SHans de Goede } 36*a1a98689SHans de Goede static inline int drm_privacy_screen_set_sw_state(struct drm_privacy_screen *priv, 37*a1a98689SHans de Goede enum drm_privacy_screen_status sw_state) 38*a1a98689SHans de Goede { 39*a1a98689SHans de Goede return -ENODEV; 40*a1a98689SHans de Goede } 41*a1a98689SHans de Goede static inline void drm_privacy_screen_get_state(struct drm_privacy_screen *priv, 42*a1a98689SHans de Goede enum drm_privacy_screen_status *sw_state_ret, 43*a1a98689SHans de Goede enum drm_privacy_screen_status *hw_state_ret) 44*a1a98689SHans de Goede { 45*a1a98689SHans de Goede *sw_state_ret = PRIVACY_SCREEN_DISABLED; 46*a1a98689SHans de Goede *hw_state_ret = PRIVACY_SCREEN_DISABLED; 47*a1a98689SHans de Goede } 48*a1a98689SHans de Goede #endif 49*a1a98689SHans de Goede 50*a1a98689SHans de Goede #endif 51