/* Remove a group from the DLBU */ void mali_dlbu_remove_group(struct mali_dlbu_core *dlbu, struct mali_group *group) { struct mali_pp_core *pp_core; u32 bcast_id; MALI_DEBUG_ASSERT_POINTER(dlbu); MALI_DEBUG_ASSERT_POINTER(group); pp_core = mali_group_get_pp_core(group); bcast_id = mali_pp_core_get_bcast_id(pp_core); dlbu->pp_cores_mask &= ~bcast_id; MALI_DEBUG_PRINT(3, ("Mali DLBU: Removing core[%d] New mask= 0x%02x\n", bcast_id, dlbu->pp_cores_mask)); }
void mali_bcast_remove_group(struct mali_bcast_unit *bcast_unit, struct mali_group *group) { u32 bcast_id; u32 broadcast_mask; MALI_DEBUG_ASSERT_POINTER(bcast_unit); MALI_DEBUG_ASSERT_POINTER(group); bcast_id = mali_pp_core_get_bcast_id(mali_group_get_pp_core(group)); broadcast_mask = bcast_unit->current_mask; broadcast_mask &= ~((bcast_id << 16) | bcast_id); /* store mask so we can restore on reset */ bcast_unit->current_mask = broadcast_mask; }
void mali_bcast_add_group(struct mali_bcast_unit *bcast_unit, struct mali_group *group) { u32 bcast_id; u32 broadcast_mask; MALI_DEBUG_ASSERT_POINTER(bcast_unit); MALI_DEBUG_ASSERT_POINTER(group); bcast_id = mali_pp_core_get_bcast_id(mali_group_get_pp_core(group)); broadcast_mask = bcast_unit->current_mask; broadcast_mask |= (bcast_id); /* add PP core to broadcast */ broadcast_mask |= (bcast_id << 16); /* add MMU to broadcast */ /* store mask so we can restore on reset */ bcast_unit->current_mask = broadcast_mask; mali_bcast_reset(bcast_unit); }