Exemplo n.º 1
0
/**
   @fn int ipc_ipc_init(void *smbase, unsigned int size);
*/
int __init ipc_ipc_init(void *smbase, unsigned int size)
{
  IPC_ControlInfo_T ipc_control;

  memset(&ipc_control, 0, sizeof(IPC_ControlInfo_T));

  ipc_control.RaiseEventFptr  = bcm_raise_cp_int;
  ipc_control.EnableReEntrancyFPtr = bcm_enable_reentrancy;
  ipc_control.DisableReEntrancyFPtr = bcm_disable_reentrancy;
  ipc_control.PhyToOSAddrFPtr = bcm_map_phys_to_virt;
  ipc_control.OSToPhyAddrFPtr = bcm_map_virt_to_phys;
  ipc_control.EventFunctions.Create = EventCreate;
  ipc_control.EventFunctions.Set = EventSet;
  ipc_control.EventFunctions.Clear = EventClear;
  ipc_control.EventFunctions.Wait = EventWait;
  ipc_control.PowerSavingStruct = &ipc_ps;

#if defined(CONFIG_BCM215X_PM) && defined(CONFIG_ARCH_BCM2153)
  pm_ipc_power_saving_init(&ipc_ps);
#endif

  IPC_Initialise(smbase, size, IPC_AP_CPU, &ipc_control,
                 ipcs_ipc_initialised, ipcs_ipc_reset, NULL);

   return(0);
}
Exemplo n.º 2
0
/**
   @fn int ipc_ipc_init(void *smbase, unsigned int size);
*/
int ipc_ipc_init(void *smbase, unsigned int size)
{
	IPC_ControlInfo_T ipc_control;

	memset(&ipc_control, 0, sizeof(IPC_ControlInfo_T));

	ipc_control.RaiseEventFptr = bcm_raise_cp_int;
	ipc_control.LockFunctions.CreateLock = bcm_create_lock;
	ipc_control.LockFunctions.AcquireLock = bcm_aquire_lock;
	ipc_control.LockFunctions.ReleaseLock = bcm_release_lock;
	ipc_control.LockFunctions.DeleteLock = bcm_delete_lock;
	ipc_control.PhyToOSAddrFPtr = bcm_map_phys_to_virt;
	ipc_control.OSToPhyAddrFPtr = bcm_map_virt_to_phys;
	ipc_control.EventFunctions.Create = EventCreate;
	ipc_control.EventFunctions.Set = EventSet;
	ipc_control.EventFunctions.Clear = EventClear;
	ipc_control.EventFunctions.Wait = EventWait;
	ipc_control.EventFunctions.Delete = EventDelete;
	ipc_control.PowerSavingStruct = &ipc_ps;

#if defined(CONFIG_BCM215X_PM) && defined(CONFIG_ARCH_BCM2153)
	pm_ipc_power_saving_init(&ipc_ps);
#endif

	IPC_Initialise(smbase, size, IPC_AP_CPU, &ipc_control,
		       ipcs_ipc_initialised, ipcs_ipc_reset, NULL);

	return 0;
}