!hdcp->connection.is_hdcp2_revoked;
 }
 
+static void exit_idle_optimizations(struct mod_hdcp *hdcp)
+{
+       struct mod_hdcp_dm *dm = &hdcp->config.dm;
+
+       if (dm->funcs.exit_idle_optimizations)
+               dm->funcs.exit_idle_optimizations(dm->handle);
+}
+
 static enum mod_hdcp_status execution(struct mod_hdcp *hdcp,
                struct mod_hdcp_event_context *event_ctx,
                union mod_hdcp_transition_input *input)
        memset(&event_ctx, 0, sizeof(struct mod_hdcp_event_context));
        event_ctx.event = event;
 
+       exit_idle_optimizations(hdcp);
+
        /* execute and transition */
        exec_status = execution(hdcp, &event_ctx, &hdcp->auth.trans_input);
        trans_status = transition(