SPM: Add STATUS_NEED_SCHEDULE to manage scheduler

THRD_EXPECTING_SCHEDULE() calls thrd_next() to decide whether
scheduling is required and when it is required, PendSV will
call thrd_next() again in ipc_schedule(). This duplicated
call of thrd_next() can be avoided by returning a status of
STATUS_NEED_SCHDULABLE from backend in these locations:

 - SVC_Handler
 - SPM cross API
 - Interrupt handler

Signed-off-by: Jianliang Shen <jianliang.shen@arm.com>
Change-Id: I3f1fccbb045938624089e856b5a98c3365c76fcc
diff --git a/secure_fw/spm/ffm/psa_api.c b/secure_fw/spm/ffm/psa_api.c
index 1f1c715..7a46c04 100644
--- a/secure_fw/spm/ffm/psa_api.c
+++ b/secure_fw/spm/ffm/psa_api.c
@@ -530,11 +530,11 @@
 }
 
 #if CONFIG_TFM_DOORBELL_API == 1
-void tfm_spm_partition_psa_notify(int32_t partition_id)
+psa_status_t tfm_spm_partition_psa_notify(int32_t partition_id)
 {
     struct partition_t *p_pt = tfm_spm_get_partition_by_id(partition_id);
 
-    backend_assert_signal(p_pt, PSA_DOORBELL);
+    return backend_assert_signal(p_pt, PSA_DOORBELL);
 }
 
 void tfm_spm_partition_psa_clear(void)