int32_t LMM_RpcReset(uint32_t lmId)
{
int32_t status = SM_ERR_SUCCESS;
/* Init RPC */
switch (g_lmmConfig[lmId].rpcType)
{
case SM_RPC_NONE:
break;
case SM_RPC_SCMI:
status = RPC_SCMI_Reset(g_lmmConfig[lmId].rpcInst);
break;
default:
status = SM_ERR_INVALID_PARAMETERS;
break;
}
/* Return status */
return status;
}
/*--------------------------------------------------------------------------*/
/* Trigger notification event in the RPC */
/*--------------------------------------------------------------------------*/
int32_t LMM_RpcNotificationTrigger(uint32_t lmId,
const lmm_rpc_trigger_t *trigger)
{
int32_t status = SM_ERR_SUCCESS;
lmm_rpc_trigger_t newTrigger = *trigger;
/* Add instance */
newTrigger.rpcInst = g_lmmConfig[lmId].rpcInst;
/* Dispatch to RPC interface */
switch (g_lmmConfig[lmId].rpcType)
{
case SM_RPC_NONE:
break;
case SM_RPC_SCMI:
status = RPC_SCMI_Trigger(&newTrigger);
break;
default:
status = SM_ERR_INVALID_PARAMETERS;
break;
}
/* Return status */
return status;
}
/*--------------------------------------------------------------------------*/
/* Dump all collected errors */
/*--------------------------------------------------------------------------*/
void LMM_ErrorDump(void)
{
/* Loop over LMs */
for (uint32_t lmId = 0U; lmId < SM_NUM_LM; lmId++)
{
/* Dump RPC errors */
switch (g_lmmConfig[lmId].rpcType)
{
case SM_RPC_SCMI:
RPC_SCMI_ErrorDump(g_lmmConfig[lmId].rpcInst);
break;
default:
; /* Intentional empty default */
break;
}
}
/* Dump device/board errors */
/* coverity[misra_c_2012_rule_2_2_violation] */
SM_ERRORDUMP();
}