static int __init sipc_init(void)
{
	uint32_t smem_size = 0;

	smsg_suspend_init();

#ifdef CONFIG_SIPC_TD
	smem_size += CPT_SMEM_SIZE;
	sipc_td_init();
#endif

#ifdef CONFIG_SIPC_WCDMA
	smem_size += CPW_SMEM_SIZE;
	sipc_wcdma_init();
#endif

#ifdef CONFIG_SIPC_WCN
	smem_size += WCN_SMEM_SIZE;
	sipc_wcn_init();
#endif

	smem_init(SIPC_SMEM_ADDR, smem_size);

#ifdef CONFIG_SIPC_WCN
	itm_sblock_init();
#endif
	return 0;
}
/*=========================================================================*/
sns_err_code_e sns_init_dsps( void )
{
  MSG(MSG_SSID_QDSP6, DBG_HIGH_PRIO, "DSPS INIT");
  sns_err_code_e rv = SNS_SUCCESS; // Return Value
#ifdef DALSYS_UCOS_SHIM
  DALSYS_InitMod(NULL);
  OS_CPU_INT_FREE(); // Make sure interrupts are enabled
#endif
#ifdef FEATURE_SMDL
  smem_init();
  smsm_init();
  err_init();
  smd_init();
  if( 0 != smdl_init( 0 ) ) {
    rv = SNS_ERR_FAILED;
  }
#endif
#if !defined (SNS_PCSIM) && !defined (QDSP6)
  timetick_offset_init();
#endif
  smr_set_qmi_service_obj ();
  sns_init_done();
  return rv;
}