Loading drivers/soc/qcom/Kconfig +9 −0 Original line number Diff line number Diff line Loading @@ -220,6 +220,15 @@ config MSM_SYSMON_GLINK_COMM subsystems within the SoC about other subsystems' power-up/down state-changes. config MSM_SYSMON_QMI_COMM bool "MSM System Monitor communication support using QMI transport" depends on QCOM_QMI_HELPERS && MSM_SUBSYSTEM_RESTART help This option adds support for MSM System Monitor APIs using the QMI layer. The APIs provided may be used for notifying subsystems within the SoC about other subsystems' power-up/down state-changes. config MSM_PIL_SSR_GENERIC tristate "MSM Subsystem Boot Support" depends on MSM_PIL && MSM_SUBSYSTEM_RESTART Loading drivers/soc/qcom/Makefile +2 −1 Original line number Diff line number Diff line Loading @@ -32,7 +32,8 @@ obj-$(CONFIG_QCOM_WATCHDOG_V2) += watchdog_v2.o obj-$(CONFIG_ICNSS) += icnss.o obj-$(CONFIG_MSM_SERVICE_NOTIFIER) += service-notifier.o obj-$(CONFIG_MSM_SERVICE_LOCATOR) += service-locator.o obj-$(CONFIG_MSM_SYSMON_GLINK_COMM) += sysmon-glink.o sysmon-qmi.o obj-$(CONFIG_MSM_SYSMON_GLINK_COMM) += sysmon-glink.o obj-$(CONFIG_MSM_SYSMON_QMI_COMM) += sysmon-qmi.o obj-$(CONFIG_MSM_PIL_SSR_GENERIC) += subsys-pil-tz.o obj-$(CONFIG_MSM_PIL) += peripheral-loader.o obj-$(CONFIG_QCOM_RUN_QUEUE_STATS) += rq_stats.o Loading include/soc/qcom/sysmon.h +23 −23 Original line number Diff line number Diff line /* * Copyright (c) 2011-2016, The Linux Foundation. All rights reserved. * Copyright (c) 2011-2017, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -40,19 +40,13 @@ enum ssctl_ssr_event_driven_enum_type { SSCTL_SSR_EVENT_DRIVEN_ENUM_TYPE_MAX_ENUM_VAL = 2147483647 }; #if defined(CONFIG_MSM_SYSMON_COMM) || defined(CONFIG_MSM_SYSMON_GLINK_COMM) #if defined(CONFIG_MSM_SYSMON_COMM) || defined(CONFIG_MSM_SYSMON_QMI_COMM) extern int sysmon_send_event(struct subsys_desc *dest_desc, struct subsys_desc *event_desc, enum subsys_notif_type notif); extern int sysmon_send_event_no_qmi(struct subsys_desc *dest_desc, struct subsys_desc *event_desc, enum subsys_notif_type notif); extern int sysmon_get_reason(struct subsys_desc *dest_desc, char *buf, size_t len); extern int sysmon_get_reason_no_qmi(struct subsys_desc *dest_desc, char *buf, size_t len); extern int sysmon_send_shutdown(struct subsys_desc *dest_desc); extern int sysmon_send_shutdown_no_qmi(struct subsys_desc *dest_desc); extern int sysmon_notifier_register(struct subsys_desc *desc); extern void sysmon_notifier_unregister(struct subsys_desc *desc); #else Loading @@ -62,30 +56,15 @@ static inline int sysmon_send_event(struct subsys_desc *dest_desc, { return 0; } static inline int sysmon_send_event_no_qmi(struct subsys_desc *dest_desc, struct subsys_desc *event_desc, enum subsys_notif_type notif) { return 0; } static inline int sysmon_get_reason(struct subsys_desc *dest_desc, char *buf, size_t len) { return 0; } static inline int sysmon_get_reason_no_qmi(struct subsys_desc *dest_desc, char *buf, size_t len) { return 0; } static inline int sysmon_send_shutdown(struct subsys_desc *dest_desc) { return 0; } static inline int sysmon_send_shutdown_no_qmi(struct subsys_desc *dest_desc) { return 0; } static inline int sysmon_notifier_register(struct subsys_desc *desc) { return 0; Loading @@ -98,7 +77,22 @@ static inline void sysmon_notifier_unregister(struct subsys_desc *desc) #if defined(CONFIG_MSM_SYSMON_GLINK_COMM) extern int sysmon_glink_register(struct subsys_desc *desc); extern void sysmon_glink_unregister(struct subsys_desc *desc); extern int sysmon_send_shutdown_no_qmi(struct subsys_desc *dest_desc); extern int sysmon_get_reason_no_qmi(struct subsys_desc *dest_desc, char *buf, size_t len); extern int sysmon_send_event_no_qmi(struct subsys_desc *dest_desc, struct subsys_desc *event_desc, enum subsys_notif_type notif); #else static inline int sysmon_get_reason_no_qmi(struct subsys_desc *dest_desc, char *buf, size_t len) { return 0; } static inline int sysmon_send_shutdown_no_qmi(struct subsys_desc *dest_desc) { return 0; } static inline int sysmon_glink_register(struct subsys_desc *desc) { return 0; Loading @@ -106,5 +100,11 @@ static inline int sysmon_glink_register(struct subsys_desc *desc) static inline void sysmon_glink_unregister(struct subsys_desc *desc) { } static inline int sysmon_send_event_no_qmi(struct subsys_desc *dest_desc, struct subsys_desc *event_desc, enum subsys_notif_type notif) { return 0; } #endif #endif Loading
drivers/soc/qcom/Kconfig +9 −0 Original line number Diff line number Diff line Loading @@ -220,6 +220,15 @@ config MSM_SYSMON_GLINK_COMM subsystems within the SoC about other subsystems' power-up/down state-changes. config MSM_SYSMON_QMI_COMM bool "MSM System Monitor communication support using QMI transport" depends on QCOM_QMI_HELPERS && MSM_SUBSYSTEM_RESTART help This option adds support for MSM System Monitor APIs using the QMI layer. The APIs provided may be used for notifying subsystems within the SoC about other subsystems' power-up/down state-changes. config MSM_PIL_SSR_GENERIC tristate "MSM Subsystem Boot Support" depends on MSM_PIL && MSM_SUBSYSTEM_RESTART Loading
drivers/soc/qcom/Makefile +2 −1 Original line number Diff line number Diff line Loading @@ -32,7 +32,8 @@ obj-$(CONFIG_QCOM_WATCHDOG_V2) += watchdog_v2.o obj-$(CONFIG_ICNSS) += icnss.o obj-$(CONFIG_MSM_SERVICE_NOTIFIER) += service-notifier.o obj-$(CONFIG_MSM_SERVICE_LOCATOR) += service-locator.o obj-$(CONFIG_MSM_SYSMON_GLINK_COMM) += sysmon-glink.o sysmon-qmi.o obj-$(CONFIG_MSM_SYSMON_GLINK_COMM) += sysmon-glink.o obj-$(CONFIG_MSM_SYSMON_QMI_COMM) += sysmon-qmi.o obj-$(CONFIG_MSM_PIL_SSR_GENERIC) += subsys-pil-tz.o obj-$(CONFIG_MSM_PIL) += peripheral-loader.o obj-$(CONFIG_QCOM_RUN_QUEUE_STATS) += rq_stats.o Loading
include/soc/qcom/sysmon.h +23 −23 Original line number Diff line number Diff line /* * Copyright (c) 2011-2016, The Linux Foundation. All rights reserved. * Copyright (c) 2011-2017, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -40,19 +40,13 @@ enum ssctl_ssr_event_driven_enum_type { SSCTL_SSR_EVENT_DRIVEN_ENUM_TYPE_MAX_ENUM_VAL = 2147483647 }; #if defined(CONFIG_MSM_SYSMON_COMM) || defined(CONFIG_MSM_SYSMON_GLINK_COMM) #if defined(CONFIG_MSM_SYSMON_COMM) || defined(CONFIG_MSM_SYSMON_QMI_COMM) extern int sysmon_send_event(struct subsys_desc *dest_desc, struct subsys_desc *event_desc, enum subsys_notif_type notif); extern int sysmon_send_event_no_qmi(struct subsys_desc *dest_desc, struct subsys_desc *event_desc, enum subsys_notif_type notif); extern int sysmon_get_reason(struct subsys_desc *dest_desc, char *buf, size_t len); extern int sysmon_get_reason_no_qmi(struct subsys_desc *dest_desc, char *buf, size_t len); extern int sysmon_send_shutdown(struct subsys_desc *dest_desc); extern int sysmon_send_shutdown_no_qmi(struct subsys_desc *dest_desc); extern int sysmon_notifier_register(struct subsys_desc *desc); extern void sysmon_notifier_unregister(struct subsys_desc *desc); #else Loading @@ -62,30 +56,15 @@ static inline int sysmon_send_event(struct subsys_desc *dest_desc, { return 0; } static inline int sysmon_send_event_no_qmi(struct subsys_desc *dest_desc, struct subsys_desc *event_desc, enum subsys_notif_type notif) { return 0; } static inline int sysmon_get_reason(struct subsys_desc *dest_desc, char *buf, size_t len) { return 0; } static inline int sysmon_get_reason_no_qmi(struct subsys_desc *dest_desc, char *buf, size_t len) { return 0; } static inline int sysmon_send_shutdown(struct subsys_desc *dest_desc) { return 0; } static inline int sysmon_send_shutdown_no_qmi(struct subsys_desc *dest_desc) { return 0; } static inline int sysmon_notifier_register(struct subsys_desc *desc) { return 0; Loading @@ -98,7 +77,22 @@ static inline void sysmon_notifier_unregister(struct subsys_desc *desc) #if defined(CONFIG_MSM_SYSMON_GLINK_COMM) extern int sysmon_glink_register(struct subsys_desc *desc); extern void sysmon_glink_unregister(struct subsys_desc *desc); extern int sysmon_send_shutdown_no_qmi(struct subsys_desc *dest_desc); extern int sysmon_get_reason_no_qmi(struct subsys_desc *dest_desc, char *buf, size_t len); extern int sysmon_send_event_no_qmi(struct subsys_desc *dest_desc, struct subsys_desc *event_desc, enum subsys_notif_type notif); #else static inline int sysmon_get_reason_no_qmi(struct subsys_desc *dest_desc, char *buf, size_t len) { return 0; } static inline int sysmon_send_shutdown_no_qmi(struct subsys_desc *dest_desc) { return 0; } static inline int sysmon_glink_register(struct subsys_desc *desc) { return 0; Loading @@ -106,5 +100,11 @@ static inline int sysmon_glink_register(struct subsys_desc *desc) static inline void sysmon_glink_unregister(struct subsys_desc *desc) { } static inline int sysmon_send_event_no_qmi(struct subsys_desc *dest_desc, struct subsys_desc *event_desc, enum subsys_notif_type notif) { return 0; } #endif #endif