cdsprm_cxlimit.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
  4. */
  5. #ifndef __QCOM_CDSPRM_LIMITS_H__
  6. #define __QCOM_CDSPRM_LIMITS_H__
  7. enum cdsprm_npu_corner {
  8. CDSPRM_NPU_CLK_OFF = 0,
  9. CDSPRM_NPU_MIN_SVS,
  10. CDSPRM_NPU_LOW_SVS,
  11. CDSPRM_NPU_SVS,
  12. CDSPRM_NPU_SVS_L1,
  13. CDSPRM_NPU_NOM,
  14. CDSPRM_NPU_NOM_L1,
  15. CDSPRM_NPU_TURBO,
  16. CDSPRM_NPU_TURBO_L1,
  17. };
  18. struct cdsprm_npu_limit_cbs {
  19. int (*set_corner_limit)(enum cdsprm_npu_corner);
  20. };
  21. enum cdsprm_compute_priority {
  22. CDSPRM_COMPUTE_HVX_MAX = 1,
  23. CDSPRM_COMPUTE_AIX_MAX = 2,
  24. CDSPRM_COMPUTE_HVX_OVER_AIX = 3,
  25. CDSPRM_COMPUTE_AIX_OVER_HVX = 4,
  26. CDSPRM_COMPUTE_BALANCED = 5,
  27. };
  28. int cdsprm_compute_core_set_priority(enum cdsprm_compute_priority);
  29. /* For NPU driver */
  30. /**
  31. * cdsprm_cxlimit_npu_limit_register() - Register NPU corner limit method with
  32. * cdspprm cxlimit driver.
  33. * @arg: cdsprm_npu_limit_cbs structure with set_corner_limit method defined
  34. *
  35. * Note: To be called from NPU driver only.
  36. */
  37. int cdsprm_cxlimit_npu_limit_register(const struct cdsprm_npu_limit_cbs *arg);
  38. /**
  39. * cdsprm_cxlimit_npu_limit_deregister() - deregister NPU corner limit
  40. * notification from cdsprm cxlimit driver.
  41. *
  42. * Note: To be called from NPU driver only.
  43. */
  44. int cdsprm_cxlimit_npu_limit_deregister(void);
  45. /**
  46. * cdsprm_cxlimit_npu_activity_notify() - Notify NPU activity status to
  47. * cdsprm cxlimit driver.
  48. * @arg: b_enabled 0 - After NPU activity stop
  49. * 1 - Before NPU activity start
  50. *
  51. * Note: To be called from NPU driver only.
  52. */
  53. int cdsprm_cxlimit_npu_activity_notify(unsigned int b_enabled);
  54. /**
  55. * cdsprm_cxlimit_npu_corner_notify() - Notify cdsprm cxlimit driver of NPU
  56. * corner request.
  57. * @arg: enum cdsprm_npu_corner - NPU corner value.
  58. * CDSPRM_NPU_CLK_OFF for clock off notification.
  59. *
  60. * Note: To be called from NPU driver only.
  61. */
  62. enum cdsprm_npu_corner cdsprm_cxlimit_npu_corner_notify(enum cdsprm_npu_corner);
  63. /* For Camera driver */
  64. /**
  65. * cdsprm_cxlimit_camera_activity_notify() - Notify cdsprm cxlimit driver of
  66. * Camera activity
  67. * @arg: b_enabled 0 - After Camera activity stop
  68. * 1 - Before Camera activity start
  69. *
  70. * Note: To be called from Camera driver only.
  71. */
  72. int cdsprm_cxlimit_camera_activity_notify(unsigned int b_enabled);
  73. #endif