qcom_glink.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef _LINUX_RPMSG_QCOM_GLINK_H
  3. #define _LINUX_RPMSG_QCOM_GLINK_H
  4. #include <linux/device.h>
  5. struct qcom_glink;
  6. struct qcom_glink_mem_entry;
  7. #if IS_ENABLED(CONFIG_RPMSG_QCOM_GLINK)
  8. void qcom_glink_ssr_notify(const char *ssr_name);
  9. struct qcom_glink_mem_entry *
  10. qcom_glink_mem_entry_init(struct device *dev, void *va, dma_addr_t dma, size_t len, u32 da);
  11. void qcom_glink_mem_entry_free(struct qcom_glink_mem_entry *mem);
  12. #else
  13. static inline void qcom_glink_ssr_notify(const char *ssr_name) {}
  14. static inline struct qcom_glink_mem_entry *
  15. qcom_glink_mem_entry_init(struct device *dev, void *va, dma_addr_t dma, size_t len, u32 da)
  16. {
  17. return NULL;
  18. }
  19. static inline void qcom_glink_mem_entry_free(struct qcom_glink_mem_entry *mem) {}
  20. #endif
  21. #if IS_ENABLED(CONFIG_RPMSG_QCOM_GLINK_SMEM)
  22. struct qcom_glink *qcom_glink_smem_register(struct device *parent,
  23. struct device_node *node);
  24. void qcom_glink_smem_unregister(struct qcom_glink *glink);
  25. int qcom_glink_smem_start(struct qcom_glink *glink);
  26. bool qcom_glink_is_wakeup(bool reset);
  27. void qcom_glink_early_ssr_notify(void *data);
  28. #else
  29. static inline struct qcom_glink *
  30. qcom_glink_smem_register(struct device *parent,
  31. struct device_node *node)
  32. {
  33. return NULL;
  34. }
  35. static inline void qcom_glink_smem_unregister(struct qcom_glink *glink) {}
  36. static inline void qcom_glink_early_ssr_notify(void *data) {}
  37. int qcom_glink_smem_start(struct qcom_glink *glink)
  38. {
  39. return -ENXIO;
  40. }
  41. static inline bool qcom_glink_is_wakeup(bool reset)
  42. {
  43. return false;
  44. }
  45. #endif
  46. #if IS_ENABLED(CONFIG_RPMSG_QCOM_GLINK_SPSS)
  47. struct qcom_glink *qcom_glink_spss_register(struct device *parent,
  48. struct device_node *node);
  49. void qcom_glink_spss_unregister(struct qcom_glink *glink);
  50. #else
  51. static inline struct qcom_glink *
  52. qcom_glink_spss_register(struct device *parent,
  53. struct device_node *node)
  54. {
  55. return NULL;
  56. }
  57. static inline void qcom_glink_spss_unregister(struct qcom_glink *glink) {}
  58. #endif
  59. #endif