/** @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); }
/** @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; }