From: Vani Ganji vani.ganji@intel.com
Resource notification trace "MCPS Budget violation" observed very frequently which might cause losing critical debug information. Added a counter to print trace on first instance and once per minute. It is required to be notified when module resource is used more than a threshold so enabled once per minute.
Suggested-by: Grant Grundler grundler@google.com Signed-off-by: Vani Ganji vani.ganji@intel.com --- sound/soc/intel/skylake/skl-sst-ipc.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/sound/soc/intel/skylake/skl-sst-ipc.c b/sound/soc/intel/skylake/skl-sst-ipc.c index 667cdddc289f..03ff0d8cea3e 100644 --- a/sound/soc/intel/skylake/skl-sst-ipc.c +++ b/sound/soc/intel/skylake/skl-sst-ipc.c @@ -346,6 +346,7 @@ int skl_ipc_process_notification(struct sst_generic_ipc *ipc, struct skl_ipc_header header) { struct skl_dev *skl = container_of(ipc, struct skl_dev, ipc); + static unsigned long j;
if (IPC_GLB_NOTIFY_MSG_TYPE(header.primary)) { switch (IPC_GLB_NOTIFY_TYPE(header.primary)) { @@ -355,12 +356,17 @@ int skl_ipc_process_notification(struct sst_generic_ipc *ipc, break;
case IPC_GLB_NOTIFY_RESOURCE_EVENT: - dev_err(ipc->dev, "MCPS Budget Violation: %x\n", + /*Print trace on first instance and for every minute*/ + if (printk_timed_ratelimit(&j, 60000)) { + dev_err(ipc->dev, "MCPS Budget Violation: %x\n", header.primary); + } break;
case IPC_GLB_NOTIFY_FW_READY: skl->boot_complete = true; + /* reset timer on every FW load */ + j = 0; wake_up(&skl->boot_wait); break;