struct completion comp;
        struct completion ind_comp;
        struct completion shutdown_comp;
+       struct completion ssctl_comp;
        struct mutex lock;
 
        bool ssr_ack;
 
        svc->priv = sysmon;
 
+       complete(&sysmon->ssctl_comp);
+
        return 0;
 }
 
                .ssr_event = SSCTL_SSR_EVENT_AFTER_POWERUP
        };
 
+       reinit_completion(&sysmon->ssctl_comp);
        mutex_lock(&sysmon->state_lock);
        sysmon->state = SSCTL_SSR_EVENT_AFTER_POWERUP;
        blocking_notifier_call_chain(&sysmon_notifiers, 0, (void *)&event);
        if (crashed)
                return;
 
+       if (sysmon->ssctl_instance) {
+               if (!wait_for_completion_timeout(&sysmon->ssctl_comp, HZ / 2))
+                       dev_err(sysmon->dev, "timeout waiting for ssctl service\n");
+       }
+
        if (sysmon->ssctl_version)
                sysmon->shutdown_acked = ssctl_request_shutdown(sysmon);
        else if (sysmon->ept)
        init_completion(&sysmon->comp);
        init_completion(&sysmon->ind_comp);
        init_completion(&sysmon->shutdown_comp);
+       init_completion(&sysmon->ssctl_comp);
        mutex_init(&sysmon->lock);
        mutex_init(&sysmon->state_lock);