gh_mem_notifier.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
  4. * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
  5. */
  6. #ifndef __GH_MEM_NOTIFIER_H
  7. #define __GH_MEM_NOTIFIER_H
  8. #include <linux/err.h>
  9. #include <linux/errno.h>
  10. #include <linux/gunyah/gh_rm_drv.h>
  11. #include <linux/types.h>
  12. enum gh_mem_notifier_tag {
  13. GH_MEM_NOTIFIER_TAG_DISPLAY,
  14. GH_MEM_NOTIFIER_TAG_TOUCH_PRIMARY,
  15. GH_MEM_NOTIFIER_TAG_TOUCH_SECONDARY,
  16. GH_MEM_NOTIFIER_TAG_TLMM,
  17. GH_MEM_NOTIFIER_TAG_TEST_TLMM,
  18. GH_MEM_NOTIFIER_TAG_TEST_TUIVM,
  19. GH_MEM_NOTIFIER_TAG_TEST_OEMVM,
  20. GH_MEM_NOTIFIER_TAG_EVA,
  21. GH_MEM_NOTIFIER_TAG_CAM_BASE,
  22. GH_MEM_NOTIFIER_TAG_CAM_MAX = GH_MEM_NOTIFIER_TAG_CAM_BASE + 49,
  23. GH_MEM_NOTIFIER_TAG_MAX
  24. };
  25. typedef void (*gh_mem_notifier_handler)(enum gh_mem_notifier_tag tag,
  26. unsigned long notif_type,
  27. void *entry_data, void *notif_msg);
  28. #if IS_ENABLED(CONFIG_GH_MEM_NOTIFIER)
  29. void *gh_mem_notifier_register(enum gh_mem_notifier_tag tag,
  30. gh_mem_notifier_handler notif_handler,
  31. void *data);
  32. void gh_mem_notifier_unregister(void *cookie);
  33. #else
  34. static void __maybe_unused *gh_mem_notifier_register(enum gh_mem_notifier_tag tag,
  35. gh_mem_notifier_handler notif_handler,
  36. void *data)
  37. {
  38. return ERR_PTR(-EOPNOTSUPP);
  39. }
  40. static void __maybe_unused gh_mem_notifier_unregister(void *cookie)
  41. {
  42. }
  43. #endif
  44. #endif