本文整理汇总了C++中MALI_DEBUG_ASSERT函数的典型用法代码示例。如果您正苦于以下问题:C++ MALI_DEBUG_ASSERT函数的具体用法?C++ MALI_DEBUG_ASSERT怎么用?C++ MALI_DEBUG_ASSERT使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了MALI_DEBUG_ASSERT函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: _mali_osk_wait_queue_init
_mali_osk_wait_queue_t* _mali_osk_wait_queue_init( void )
{
_mali_osk_wait_queue_t* ret = NULL;
ret = kmalloc(sizeof(_mali_osk_wait_queue_t), GFP_KERNEL);
if (NULL == ret) {
return ret;
}
init_waitqueue_head(&ret->wait_queue);
MALI_DEBUG_ASSERT(!waitqueue_active(&ret->wait_queue));
return ret;
}
开发者ID:ih24n69,项目名称:android_samsung_sm-g355h_kernel,代码行数:15,代码来源:mali_osk_wait_queue.c
示例2: mali_gp_scheduler_terminate
void mali_gp_scheduler_terminate(void)
{
MALI_DEBUG_ASSERT( MALI_GP_SLOT_STATE_IDLE == slot.state
|| MALI_GP_SLOT_STATE_DISABLED == slot.state);
MALI_DEBUG_ASSERT_POINTER(slot.group);
mali_group_delete(slot.group);
_mali_osk_wait_queue_term(gp_scheduler_working_wait_queue);
#if defined(MALI_UPPER_HALF_SCHEDULING)
_mali_osk_spinlock_irq_term(gp_scheduler_lock);
#else
_mali_osk_spinlock_term(gp_scheduler_lock);
#endif /* defined(MALI_UPPER_HALF_SCHEDULING) */
}
开发者ID:HuaweiHonor4C,项目名称:kernel_hi6210sft_mm,代码行数:15,代码来源:mali_gp_scheduler.c
示例3: mali_mem_mali_map_prepare
_mali_osk_errcode_t mali_mem_mali_map_prepare(mali_mem_allocation *descriptor)
{
u32 size = descriptor->size;
struct mali_session_data *session = descriptor->session;
MALI_DEBUG_ASSERT(MALI_MEM_ALLOCATION_VALID_MAGIC == descriptor->magic);
/* Map dma-buf into this session's page tables */
if (descriptor->flags & MALI_MEM_FLAG_MALI_GUARD_PAGE) {
size += MALI_MMU_PAGE_SIZE;
}
return mali_mmu_pagedir_map(session->page_directory, descriptor->mali_mapping.addr, size);
}
开发者ID:4Fwolf,项目名称:signal75-kernel-3.10.61,代码行数:15,代码来源:mali_memory.c
示例4: dump_lock_tracking_list
static void dump_lock_tracking_list(void)
{
struct _mali_osk_lock_debug_s *l;
u32 n = 1;
/* print list for debugging purposes */
l = lock_lookup_list;
while (NULL != l) {
printk(" [lock: %p, tid_owner: %d, order: %d] ->", l, l->owner, l->order);
l = l->next;
MALI_DEBUG_ASSERT(n++ < 100);
}
printk(" NULL\n");
}
开发者ID:kim-ryuzaki,项目名称:android_mediatek_muse72,代码行数:15,代码来源:mali_osk_locks.c
示例5: _mali_ukk_mem_unbind
/*
* Function _mali_ukk_mem_unbind -- unbind a external memory to a new GPU address
* This function unbind the backend memory and free the allocation
* no ref_count for this type of memory
*/
_mali_osk_errcode_t _mali_ukk_mem_unbind(_mali_uk_unbind_mem_s *args)
{
/**/
struct mali_session_data *session = (struct mali_session_data *)(uintptr_t)args->ctx;
mali_mem_allocation *mali_allocation = NULL;
struct mali_vma_node *mali_vma_node = NULL;
u32 mali_addr = args->vaddr;
MALI_DEBUG_PRINT(5, (" _mali_ukk_mem_unbind, vaddr=0x%x! \n", args->vaddr));
/* find the allocation by vaddr */
mali_vma_node = mali_vma_offset_search(&session->allocation_mgr, mali_addr, 0);
if (likely(mali_vma_node)) {
MALI_DEBUG_ASSERT(mali_addr == mali_vma_node->vm_node.start);
mali_allocation = container_of(mali_vma_node, struct mali_mem_allocation, mali_vma_node);
} else {
开发者ID:MindShow,项目名称:amlogic_s905_kernel_merges,代码行数:20,代码来源:mali_memory_manager.c
示例6: MALI_DEBUG_ASSERT
struct mali_gp_core *mali_gp_create(const _mali_osk_resource_t *resource, struct mali_group *group)
{
struct mali_gp_core *core = NULL;
MALI_DEBUG_ASSERT(NULL == mali_global_gp_core);
MALI_DEBUG_PRINT(2, ("Mali GP: Creating Mali GP core: %s\n", resource->description));
core = _mali_osk_malloc(sizeof(struct mali_gp_core));
if (NULL != core) {
if (_MALI_OSK_ERR_OK == mali_hw_core_create(&core->hw_core, resource, MALIGP2_REGISTER_ADDRESS_SPACE_SIZE)) {
_mali_osk_errcode_t ret;
ret = mali_gp_reset(core);
if (_MALI_OSK_ERR_OK == ret) {
ret = mali_group_add_gp_core(group, core);
if (_MALI_OSK_ERR_OK == ret) {
/* Setup IRQ handlers (which will do IRQ probing if needed) */
core->irq = _mali_osk_irq_init(resource->irq,
mali_group_upper_half_gp,
group,
mali_gp_irq_probe_trigger,
mali_gp_irq_probe_ack,
core,
resource->description);
if (NULL != core->irq) {
MALI_DEBUG_PRINT(4, ("Mali GP: set global gp core from 0x%08X to 0x%08X\n", mali_global_gp_core, core));
mali_global_gp_core = core;
return core;
} else {
MALI_PRINT_ERROR(("Mali GP: Failed to setup interrupt handlers for GP core %s\n", core->hw_core.description));
}
mali_group_remove_gp_core(group);
} else {
MALI_PRINT_ERROR(("Mali GP: Failed to add core %s to group\n", core->hw_core.description));
}
}
mali_hw_core_delete(&core->hw_core);
}
_mali_osk_free(core);
} else {
MALI_PRINT_ERROR(("Failed to allocate memory for GP core\n"));
}
return NULL;
}
开发者ID:HuaweiHonor4C,项目名称:kernel_hi6210sft_mm,代码行数:48,代码来源:mali_gp.c
示例7: mali_pmu_send_command
static _mali_osk_errcode_t mali_pmu_send_command(struct mali_pmu_core *pmu, const u32 command, const u32 mask)
{
u32 stat;
if (0 == mask) return _MALI_OSK_ERR_OK;
stat = mali_hw_core_register_read(&pmu->hw_core, PMU_REG_ADDR_MGMT_STATUS);
stat &= pmu->registered_cores_mask;
switch (command)
{
case PMU_REG_ADDR_MGMT_POWER_DOWN:
if (mask == stat) return _MALI_OSK_ERR_OK;
break;
case PMU_REG_ADDR_MGMT_POWER_UP:
if (0 == (stat & mask)) return _MALI_OSK_ERR_OK;
break;
default:
MALI_DEBUG_ASSERT(0);
break;
}
mali_pmu_send_command_internal(pmu, command, mask);
#if defined(DEBUG)
{
/* Get power status of cores */
stat = mali_hw_core_register_read(&pmu->hw_core, PMU_REG_ADDR_MGMT_STATUS);
stat &= pmu->registered_cores_mask;
switch (command)
{
case PMU_REG_ADDR_MGMT_POWER_DOWN:
MALI_DEBUG_ASSERT(mask == (stat & mask));
MALI_DEBUG_ASSERT(0 == (stat & pmu->active_cores_mask));
MALI_DEBUG_ASSERT((pmu->registered_cores_mask & ~pmu->active_cores_mask) == stat);
break;
case PMU_REG_ADDR_MGMT_POWER_UP:
MALI_DEBUG_ASSERT(0 == (stat & mask));
MALI_DEBUG_ASSERT(0 == (stat & pmu->active_cores_mask));
break;
default:
MALI_DEBUG_ASSERT(0);
break;
}
}
#endif /* defined(DEBUG) */
return _MALI_OSK_ERR_OK;
}
开发者ID:Andro-Boy,项目名称:Googy-Max2-Kernel,代码行数:50,代码来源:mali_pmu.c
示例8: mali_mmu_activate_empty_page_directory
void mali_mmu_activate_empty_page_directory(struct mali_mmu_core *mmu)
{
mali_bool stall_success;
MALI_DEBUG_ASSERT_POINTER(mmu);
MALI_DEBUG_PRINT(3, ("Activating the empty page directory on MMU %s\n", mmu->hw_core.description));
stall_success = mali_mmu_enable_stall(mmu);
/* This function can only be called when the core is idle, so it could not fail. */
MALI_DEBUG_ASSERT(stall_success);
MALI_IGNORE(stall_success);
mali_mmu_activate_address_space(mmu, mali_empty_page_directory_phys);
mali_mmu_disable_stall(mmu);
}
开发者ID:AOSC-Dev,项目名称:aosc-os-armel-sunxi-boot,代码行数:16,代码来源:mali_mmu.c
示例9: mali_pp_scheduler_can_move_virtual_to_physical
/**
* Checks if the criteria is met for removing a physical core from virtual group
*/
MALI_STATIC_INLINE mali_bool mali_pp_scheduler_can_move_virtual_to_physical(void)
{
MALI_ASSERT_PP_SCHEDULER_LOCKED();
MALI_DEBUG_ASSERT(NULL != virtual_group);
MALI_ASSERT_GROUP_LOCKED(virtual_group);
/*
* The criteria for taking out a physical group from a virtual group are the following:
* - There virtual group is idle
* - There are currently no physical groups (idle and working)
* - There are physical jobs to be scheduled (without a barrier)
*/
return (!virtual_group_working) &&
_mali_osk_list_empty(&group_list_idle) &&
_mali_osk_list_empty(&group_list_working) &&
(NULL != mali_pp_scheduler_get_physical_job());
}
开发者ID:Scorpio92,项目名称:mstar6a918,代码行数:19,代码来源:mali_pp_scheduler.c
示例10: mali_mem_mali_map_free
void mali_mem_mali_map_free(mali_mem_allocation *descriptor)
{
u32 size = descriptor->size;
struct mali_session_data *session = descriptor->session;
MALI_DEBUG_ASSERT(MALI_MEM_ALLOCATION_VALID_MAGIC == descriptor->magic);
if (descriptor->flags & MALI_MEM_FLAG_MALI_GUARD_PAGE) {
size += MALI_MMU_PAGE_SIZE;
}
/* Umap and flush L2 */
mali_mmu_pagedir_unmap(session->page_directory, descriptor->mali_mapping.addr, descriptor->size);
mali_executor_zap_all_active(session);
}
开发者ID:Dee-UK,项目名称:RK3288_Lollipop_Kernel,代码行数:16,代码来源:mali_memory.c
示例11: mali_pmu_power_down_all
void mali_pmu_power_down_all(struct mali_pmu_core *pmu)
{
u32 stat;
MALI_DEBUG_ASSERT_POINTER(pmu);
MALI_DEBUG_ASSERT(pmu->registered_cores_mask != 0);
mali_pm_exec_lock();
/* Now simply power down the domains which are marked as powered up */
stat = mali_hw_core_register_read(&pmu->hw_core,
PMU_REG_ADDR_MGMT_STATUS);
mali_pmu_power_down(pmu, (~stat) & pmu->registered_cores_mask);
mali_pm_exec_unlock();
}
开发者ID:takitr,项目名称:linux-wetek-3.10.y-1,代码行数:16,代码来源:mali_pmu.c
示例12: remove_lock_from_log
static void remove_lock_from_log(struct _mali_osk_lock_debug_s *lock, uint32_t tid)
{
struct _mali_osk_lock_debug_s *curr;
struct _mali_osk_lock_debug_s *prev = NULL;
unsigned long local_lock_flag;
u32 len;
u32 n = 0;
spin_lock_irqsave(&lock_tracking_lock, local_lock_flag);
len = tracking_list_length();
curr = lock_lookup_list;
if (NULL == curr) {
printk(KERN_ERR "Error: Lock tracking list was empty on call to remove_lock_from_log\n");
dump_lock_tracking_list();
}
MALI_DEBUG_ASSERT_POINTER(curr);
while (lock != curr) {
prev = curr;
MALI_DEBUG_ASSERT_POINTER(curr);
curr = curr->next;
MALI_DEBUG_ASSERT(n++ < 100);
}
if (NULL == prev) {
lock_lookup_list = curr->next;
} else {
MALI_DEBUG_ASSERT_POINTER(curr);
MALI_DEBUG_ASSERT_POINTER(prev);
prev->next = curr->next;
}
lock->next = NULL;
if (len-1 != tracking_list_length()) {
printk(KERN_ERR "************ lock: %p\n", lock);
printk(KERN_ERR "************ before: %d *** after: %d ****\n", len, tracking_list_length());
dump_lock_tracking_list();
MALI_DEBUG_ASSERT_POINTER(NULL);
}
spin_unlock_irqrestore(&lock_tracking_lock, local_lock_flag);
}
开发者ID:erickwill,项目名称:Android_b2_Kernel,代码行数:47,代码来源:mali_osk_locks.c
示例13: mali_pp_scheduler_job_done
void mali_pp_scheduler_job_done(struct mali_group *group, struct mali_pp_job *job, u32 sub_job, mali_bool success)
{
u32 i;
mali_bool job_is_done;
MALI_DEBUG_PRINT(3, ("Mali PP scheduler: Job %u (0x%08X) part %u/%u completed (%s)\n", mali_pp_job_get_id(job), job, sub_job + 1, mali_pp_job_get_sub_job_count(job), success ? "success" : "failure"));
mali_pp_scheduler_lock();
/* Find slot which was running this job */
for (i = 0; i < num_slots; i++)
{
if (slots[i].group == group)
{
MALI_DEBUG_ASSERT(MALI_PP_SLOT_STATE_WORKING == slots[i].state);
slots[i].state = MALI_PP_SLOT_STATE_IDLE;
slots[i].session = NULL;
num_slots_idle++;
mali_pp_job_mark_sub_job_completed(job, success);
}
}
/* If paused, then this was the last job, so wake up sleeping workers */
if (pause_count > 0)
{
/* Wake up sleeping workers. Their wake-up condition is that
* num_slots == num_slots_idle, so unless we are done working, no
* threads will actually be woken up.
*/
_mali_osk_wait_queue_wake_up(pp_scheduler_working_wait_queue);
}
else
{
mali_pp_scheduler_schedule();
}
job_is_done = mali_pp_job_is_complete(job);
mali_pp_scheduler_unlock();
if (job_is_done)
{
/* Send notification back to user space */
MALI_DEBUG_PRINT(4, ("Mali PP scheduler: All parts completed for job %u (0x%08X)\n", mali_pp_job_get_id(job), job));
mali_pp_scheduler_return_job_to_user(job);
}
}
开发者ID:1DeMaCr,项目名称:android_hd_kernel_samsung_codina,代码行数:47,代码来源:mali_pp_scheduler.c
示例14: mali_soft_job_system_activate_job
mali_scheduler_mask mali_soft_job_system_activate_job(struct mali_soft_job *job)
{
mali_scheduler_mask schedule_mask = MALI_SCHEDULER_MASK_EMPTY;
MALI_DEBUG_ASSERT_POINTER(job);
MALI_DEBUG_ASSERT_POINTER(job->system);
MALI_DEBUG_ASSERT_POINTER(job->system->session);
MALI_DEBUG_PRINT(4, ("Mali Soft Job: Timeline activation for soft job %u (0x%08X).\n", job->id, job));
mali_soft_job_system_lock(job->system);
if (unlikely(job->system->session->is_aborting)) {
MALI_DEBUG_PRINT(3, ("Mali Soft Job: Soft job %u (0x%08X) activated while session is aborting.\n", job->id, job));
mali_soft_job_system_unlock(job->system);
/* Since we are in shutdown, we can ignore the scheduling bitmask. */
mali_timeline_tracker_release(&job->tracker);
mali_soft_job_destroy(job);
return schedule_mask;
}
/* Send activated notification. */
mali_soft_job_send_activated_notification(job);
/* Wake up sleeping signaler. */
job->activated = MALI_TRUE;
/* If job type is self signaled, release tracker, move soft job to free list, and scheduler at once */
if (MALI_SOFT_JOB_TYPE_SELF_SIGNALED == job->type) {
MALI_DEBUG_ASSERT(MALI_SOFT_JOB_STATE_STARTED == job->state);
job->state = MALI_SOFT_JOB_STATE_SIGNALED;
mali_soft_job_system_unlock(job->system);
schedule_mask |= mali_timeline_tracker_release(&job->tracker);
mali_soft_job_destroy(job);
} else {
_mali_osk_wait_queue_wake_up(job->tracker.system->wait_queue);
mali_soft_job_system_unlock(job->system);
}
return schedule_mask;
}
开发者ID:AOSC-Dev,项目名称:aosc-os-armel-sunxi-boot,代码行数:47,代码来源:mali_soft_job.c
示例15: mali_platform_powerdown
_mali_osk_errcode_t mali_platform_powerdown(u32 cores)
{
#if USING_MALI_PMM
u32 stat;
u32 timeout;
u32 cores_pmu;
MALI_DEBUG_ASSERT_POINTER(pmu_info);
MALI_DEBUG_ASSERT( cores != 0 ); /* Shouldn't receive zero from PMM */
MALI_DEBUG_PRINT( 4, ("PLATFORM mali400-pmu: power down (0x%x)\n", cores) );
cores_pmu = pmu_translate_cores_to_pmu(cores);
pmu_reg_write( pmu_info, (u32)PMU_REG_ADDR_MGMT_POWER_DOWN, cores_pmu );
/* Wait for cores to be powered down */
timeout = 10; /* 10ms */
do
{
/* Get status of sleeping cores */
stat = pmu_reg_read( pmu_info, (u32)PMU_REG_ADDR_MGMT_STATUS );
stat &= cores_pmu;
if( stat == cores_pmu ) break; /* All cores we wanted are now asleep */
_mali_osk_time_ubusydelay(1000); /* 1ms */
timeout--;
} while( timeout > 0 );
if( timeout == 0 ) MALI_ERROR(_MALI_OSK_ERR_TIMEOUT);
/*close mali axi/apb clock*/
if(mali_clk_flag == 1)
{
//MALI_PRINT(("disable mali clock\n"));
mali_clk_flag = 0;
clk_disable(h_mali_clk);
clk_disable(h_ahb_mali);
}
MALI_SUCCESS;
#else
/* Nothing to do when not using PMM */
MALI_SUCCESS;
#endif
}
开发者ID:murphy666,项目名称:sun4i-kernel,代码行数:46,代码来源:mali_platform.c
示例16: _mali_pmm_pmu_power_up
void _mali_pmm_pmu_power_up( platform_pmu_t *pmu, u32 cores, mali_bool immediate_only )
{
u32 cores_pmu;
u32 stat;
u32 timeout;
MALI_DEBUG_ASSERT_POINTER( pmu );
MALI_DEBUG_ASSERT( cores != 0 ); /* Shouldn't receive zero from PMM */
MALI_DEBUG_PRINT( 4, ("PLATFORM mali400-pmu: test power up (0x%x)\n", cores) );
/* use interrupts */
pmu_reg_write( pmu, (u32)PMU_REG_ADDR_MGMT_INT_MASK, 1 );
pmu_reg_write( pmu, (u32)PMU_REG_ADDR_MGMT_INT_CLEAR, 0 );
cores_pmu = pmu_translate_cores_to_pmu(cores);
pmu_reg_write( pmu, (u32)PMU_REG_ADDR_MGMT_POWER_UP, cores_pmu );
}
开发者ID:Scorpio92,项目名称:mstar6a918,代码行数:17,代码来源:mali_pmm_pmu.c
示例17: mali_gp_job_start
void mali_gp_job_start(struct mali_gp_core *core, struct mali_gp_job *job)
{
u32 startcmd = 0;
u32 *frame_registers = mali_gp_job_get_frame_registers(job);
core->counter_src0_used = mali_gp_job_get_perf_counter_src0(job);
core->counter_src1_used = mali_gp_job_get_perf_counter_src1(job);
MALI_DEBUG_ASSERT_POINTER(core);
if (mali_gp_job_has_vs_job(job))
{
startcmd |= (u32) MALIGP2_REG_VAL_CMD_START_VS;
}
if (mali_gp_job_has_plbu_job(job))
{
startcmd |= (u32) MALIGP2_REG_VAL_CMD_START_PLBU;
}
MALI_DEBUG_ASSERT(0 != startcmd);
mali_hw_core_register_write_array_relaxed(&core->hw_core, MALIGP2_REG_ADDR_MGMT_VSCL_START_ADDR, frame_registers, MALIGP2_NUM_REGS_FRAME);
if (MALI_HW_CORE_NO_COUNTER != core->counter_src0_used)
{
mali_hw_core_register_write(&core->hw_core, MALIGP2_REG_ADDR_MGMT_PERF_CNT_0_SRC, core->counter_src0_used);
mali_hw_core_register_write(&core->hw_core, MALIGP2_REG_ADDR_MGMT_PERF_CNT_0_ENABLE, MALIGP2_REG_VAL_PERF_CNT_ENABLE);
}
if (MALI_HW_CORE_NO_COUNTER != core->counter_src1_used)
{
mali_hw_core_register_write(&core->hw_core, MALIGP2_REG_ADDR_MGMT_PERF_CNT_1_SRC, core->counter_src1_used);
mali_hw_core_register_write(&core->hw_core, MALIGP2_REG_ADDR_MGMT_PERF_CNT_1_ENABLE, MALIGP2_REG_VAL_PERF_CNT_ENABLE);
}
MALI_DEBUG_PRINT(3, ("Mali GP: Starting job (0x%08x) on core %s with command 0x%08X\n", job, core->hw_core.description, startcmd));
/* Barrier to make sure the previous register write is finished */
_mali_osk_write_mem_barrier();
/* This is the command that starts the core. */
mali_hw_core_register_write_relaxed(&core->hw_core, MALIGP2_REG_ADDR_MGMT_CMD, startcmd);
/* Barrier to make sure the previous register write is finished */
_mali_osk_write_mem_barrier();
}
开发者ID:ColinIanKing,项目名称:m576,代码行数:46,代码来源:mali_gp.c
示例18: mali_mem_external_release
void mali_mem_external_release(mali_mem_backend *mem_backend)
{
mali_mem_allocation *alloc;
struct mali_session_data *session;
MALI_DEBUG_ASSERT_POINTER(mem_backend);
alloc = mem_backend->mali_allocation;
MALI_DEBUG_ASSERT_POINTER(alloc);
MALI_DEBUG_ASSERT(MALI_MEM_EXTERNAL == mem_backend->type);
session = alloc->session;
MALI_DEBUG_ASSERT_POINTER(session);
mali_session_memory_lock(session);
mali_mem_mali_map_free(session, alloc->psize, alloc->mali_vma_node.vm_node.start,
alloc->flags);
session->mali_mem_array[mem_backend->type] -= mem_backend->size;
mali_session_memory_unlock(session);
}
开发者ID:takitr,项目名称:linux-wetek-3.10.y-1,代码行数:17,代码来源:mali_memory_external.c
示例19: mali_pmu_power_up_all
_mali_osk_errcode_t mali_pmu_power_up_all(struct mali_pmu_core *pmu)
{
_mali_osk_errcode_t err;
MALI_DEBUG_ASSERT_POINTER(pmu);
MALI_DEBUG_ASSERT(pmu->registered_cores_mask != 0);
mali_pmu_lock(pmu);
/* Setup the desired defaults in case we were called before mali_pmu_reset() */
mali_hw_core_register_write_relaxed(&pmu->hw_core, PMU_REG_ADDR_MGMT_INT_MASK, 0);
mali_hw_core_register_write_relaxed(&pmu->hw_core, PMU_REG_ADDR_MGMT_SW_DELAY, pmu->switch_delay);
err = mali_pmu_power_up_internal(pmu, pmu->active_cores_mask);
mali_pmu_unlock(pmu);
return err;
}
开发者ID:cm-3470,项目名称:android_kernel_samsung_degaslte,代码行数:18,代码来源:mali_pmu.c
示例20: pmm_cores_to_power_up
mali_pmm_core_mask pmm_cores_to_power_up( _mali_pmm_internal_state_t *pmm, mali_pmm_core_mask cores )
{
mali_pmm_core_mask cores_subset;
MALI_DEBUG_ASSERT_POINTER(pmm);
MALI_PMM_DEBUG_ASSERT_CORES_SUBSET( pmm->cores_registered, cores );
/* Check that cores aren't pending power down when asked for power up */
MALI_DEBUG_ASSERT( pmm->cores_pend_down == 0 );
cores_subset = (~(pmm->cores_powered) & cores);
if( cores_subset != 0 )
{
/* There are some cores that need powering up */
pmm->cores_pend_up = cores_subset;
}
return cores_subset;
}
开发者ID:xbai043,项目名称:zt280-kernel,代码行数:18,代码来源:mali_pmm_state.c
注:本文中的MALI_DEBUG_ASSERT函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论