Esempio n. 1
0
/**
   static int ipcs_init(void *smbase, unsigned int size)
 */
static int __init ipcs_init(void *smbase, unsigned int size)
{
   int rc = 0;

   //Initialize OS specific callbacks with the IPC lib
  rc = ipc_ipc_init(smbase, size);
  if (rc) 
  {
    IPC_DEBUG(DBG_ERROR, "ipc_ipc_init() failed, ret[%d]\n", rc);
      return(rc);
  }

  //Register Endpoints 
  rc = ipcs_ccb_init();
  if (rc) 
  {
    IPC_DEBUG(DBG_ERROR, "ipcs_ccb_init() failed, ret[%d]\n", rc);
      return(rc);
  }

  // AP ipc init is done
  g_ipc_info.ap_ipc_init_done = 1;

  //Let CP know that we are done registering endpoints
  IPC_Configured();

  //Wait for IPC initialized
  IPC_DEBUG(DBG_INFO, "IPC_Configured() invoked\n");

  return(0);
}
/**
   static int ipcs_init(void *smbase, unsigned int size)
 */
static int ipcs_init(void *smbase, unsigned int size, int isReset)
{
	int rc = 0;

	IPC_DEBUG(DBG_TRACE, "WaitForCpIpc\n");

	/* Wait for CP to initialize */
	WaitForCpIpc(smbase);
	IPC_DEBUG(DBG_TRACE, "Calling ipc_set_interrupt_mask()\n");
	ipc_set_interrupt_mask();
	IPC_DEBUG(DBG_TRACE, "Done ipc_set_interrupt_mask()\n");

	IPC_DEBUG(DBG_TRACE, "Calling ipc_set_interrupt_mask()\n");
	ipc_set_interrupt_mask();
	IPC_DEBUG(DBG_TRACE, "Done ipc_set_interrupt_mask()\n");


	/* Initialize OS specific callbacks with the IPC lib */
	rc = ipc_ipc_init(smbase, size);
	if (rc) {
		IPC_DEBUG(DBG_ERROR, "ipc_ipc_init() failed, ret[%d]\n", rc);
		return rc;
	}
	IPC_DEBUG(DBG_TRACE, "ipc_ipc_init done\n");

	/* Register Endpoints */
	rc = ipcs_ccb_init(isReset);
	if (rc) {
		IPC_DEBUG(DBG_ERROR, "ipcs_ccb_init() failed, ret[%d]\n", rc);
		return rc;
	}

	IPC_DEBUG(DBG_TRACE, "ipcs_ccb_init done\n");
	/* Let CP know that we are done registering endpoints */
	IPC_Configured();

	/* Wait for IPC initialized */
	IPC_DEBUG(DBG_TRACE, "IPC_Configured() invoked\n");

	return 0;
}