66 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* 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
 |