66 lines · c
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 15struct drm_privacy_screen;16 17#if IS_ENABLED(CONFIG_DRM_PRIVACY_SCREEN)18struct drm_privacy_screen *drm_privacy_screen_get(struct device *dev,19 const char *con_id);20void drm_privacy_screen_put(struct drm_privacy_screen *priv);21 22int drm_privacy_screen_set_sw_state(struct drm_privacy_screen *priv,23 enum drm_privacy_screen_status sw_state);24void 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 28int drm_privacy_screen_register_notifier(struct drm_privacy_screen *priv,29 struct notifier_block *nb);30int drm_privacy_screen_unregister_notifier(struct drm_privacy_screen *priv,31 struct notifier_block *nb);32#else33static inline struct drm_privacy_screen *drm_privacy_screen_get(struct device *dev,34 const char *con_id)35{36 return ERR_PTR(-ENODEV);37}38static inline void drm_privacy_screen_put(struct drm_privacy_screen *priv)39{40}41static 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}46static 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}53static inline int drm_privacy_screen_register_notifier(struct drm_privacy_screen *priv,54 struct notifier_block *nb)55{56 return -ENODEV;57}58static inline int drm_privacy_screen_unregister_notifier(struct drm_privacy_screen *priv,59 struct notifier_block *nb)60{61 return -ENODEV;62}63#endif64 65#endif66