/* SPDX-License-Identifier: MIT */ /* * Copyright (C) 2020 Red Hat, Inc. * * Authors: * Hans de Goede */ #ifndef __DRM_PRIVACY_SCREEN_CONSUMER_H__ #define __DRM_PRIVACY_SCREEN_CONSUMER_H__ #include #include struct drm_privacy_screen; #if IS_ENABLED(CONFIG_DRM_PRIVACY_SCREEN) struct drm_privacy_screen *drm_privacy_screen_get(struct device *dev, const char *con_id); void drm_privacy_screen_put(struct drm_privacy_screen *priv); int drm_privacy_screen_set_sw_state(struct drm_privacy_screen *priv, enum drm_privacy_screen_status sw_state); void drm_privacy_screen_get_state(struct drm_privacy_screen *priv, enum drm_privacy_screen_status *sw_state_ret, enum drm_privacy_screen_status *hw_state_ret); int drm_privacy_screen_register_notifier(struct drm_privacy_screen *priv, struct notifier_block *nb); int drm_privacy_screen_unregister_notifier(struct drm_privacy_screen *priv, struct notifier_block *nb); #else static inline struct drm_privacy_screen *drm_privacy_screen_get(struct device *dev, const char *con_id) { return ERR_PTR(-ENODEV); } static inline void drm_privacy_screen_put(struct drm_privacy_screen *priv) { } static inline int drm_privacy_screen_set_sw_state(struct drm_privacy_screen *priv, enum drm_privacy_screen_status sw_state) { return -ENODEV; } static inline void drm_privacy_screen_get_state(struct drm_privacy_screen *priv, enum drm_privacy_screen_status *sw_state_ret, enum drm_privacy_screen_status *hw_state_ret) { *sw_state_ret = PRIVACY_SCREEN_DISABLED; *hw_state_ret = PRIVACY_SCREEN_DISABLED; } static inline int drm_privacy_screen_register_notifier(struct drm_privacy_screen *priv, struct notifier_block *nb) { return -ENODEV; } static inline int drm_privacy_screen_unregister_notifier(struct drm_privacy_screen *priv, struct notifier_block *nb) { return -ENODEV; } #endif #endif