| /* SPDX-License-Identifier: MIT */ |
| /* |
| * Copyright (C) 2020 Red Hat, Inc. |
| * |
| * Authors: |
| * Hans de Goede <hdegoede@redhat.com> |
| */ |
| |
| #ifndef __DRM_PRIVACY_SCREEN_CONSUMER_H__ |
| #define __DRM_PRIVACY_SCREEN_CONSUMER_H__ |
| |
| #include <linux/device.h> |
| #include <drm/drm_connector.h> |
| |
| 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 |