drm_privacy_screen_machine.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /* SPDX-License-Identifier: MIT */
  2. /*
  3. * Copyright (C) 2020 Red Hat, Inc.
  4. *
  5. * Authors:
  6. * Hans de Goede <[email protected]>
  7. */
  8. #ifndef __DRM_PRIVACY_SCREEN_MACHINE_H__
  9. #define __DRM_PRIVACY_SCREEN_MACHINE_H__
  10. #include <linux/list.h>
  11. /**
  12. * struct drm_privacy_screen_lookup - static privacy-screen lookup list entry
  13. *
  14. * Used for the static lookup-list for mapping privacy-screen consumer
  15. * dev-connector pairs to a privacy-screen provider.
  16. */
  17. struct drm_privacy_screen_lookup {
  18. /** @list: Lookup list list-entry. */
  19. struct list_head list;
  20. /** @dev_id: Consumer device name or NULL to match all devices. */
  21. const char *dev_id;
  22. /** @con_id: Consumer connector name or NULL to match all connectors. */
  23. const char *con_id;
  24. /** @provider: dev_name() of the privacy_screen provider. */
  25. const char *provider;
  26. };
  27. void drm_privacy_screen_lookup_add(struct drm_privacy_screen_lookup *lookup);
  28. void drm_privacy_screen_lookup_remove(struct drm_privacy_screen_lookup *lookup);
  29. #if IS_ENABLED(CONFIG_DRM_PRIVACY_SCREEN) && IS_ENABLED(CONFIG_X86)
  30. void drm_privacy_screen_lookup_init(void);
  31. void drm_privacy_screen_lookup_exit(void);
  32. #else
  33. static inline void drm_privacy_screen_lookup_init(void)
  34. {
  35. }
  36. static inline void drm_privacy_screen_lookup_exit(void)
  37. {
  38. }
  39. #endif
  40. #endif