_mali_osk_errcode_t mali_platform_deinit(_mali_osk_resource_type_t *type)
{
#if USING_MALI_PMM
	if( type == NULL )
	{
		/* Nothing to tear down for the system */
	}	
	else if (*type == PMU)
	{
		if( pmu_info )
		{
			_mali_osk_mem_unmapioregion(pmu_info->reg_base_addr, pmu_info->reg_size, pmu_info->reg_mapped);
			_mali_osk_mem_unreqregion(pmu_info->reg_base_addr, pmu_info->reg_size);
			_mali_osk_free(pmu_info);
			pmu_info = NULL;

			MALI_DEBUG_PRINT( 4, ("PLATFORM mali400-pmu: Terminated PMU\n") );
		}
	}
	else
	{
		/* Didn't expect a different resource */
		MALI_ERROR(_MALI_OSK_ERR_INVALID_ARGS);
	}	
		
	MALI_SUCCESS;

#else
	/* Nothing to do when not using PMM */
	MALI_SUCCESS;
#endif
}
void mali_hw_core_delete(struct mali_hw_core *core)
{
	if (NULL != core->mapped_registers) {
		_mali_osk_mem_unmapioregion(core->phys_addr, core->size, core->mapped_registers);
		core->mapped_registers = NULL;
	}
	_mali_osk_mem_unreqregion(core->phys_addr, core->size);
}
Ejemplo n.º 3
0
void mali_hw_core_delete(struct mali_hw_core *core)
{
#ifndef MSTAR_RIU_ENABLED
	_mali_osk_mem_unmapioregion(core->phys_addr, core->size, core->mapped_registers);
#endif
	core->mapped_registers = NULL;
	_mali_osk_mem_unreqregion(core->phys_addr, core->size);
}
Ejemplo n.º 4
0
_mali_osk_errcode_t mali_platform_deinit()
{
	deinit_mali_clock();
#if MALI_DVFS_ENABLED
	deinit_mali_dvfs_status();
	if (clk_register_map )
	{
		_mali_osk_mem_unmapioregion(CLK_DIV_STAT_G3D, 0x20, clk_register_map);
		clk_register_map=0;
	}
#endif

	MALI_SUCCESS;
}
Ejemplo n.º 5
0
_mali_osk_errcode_t mali_platform_deinit(struct device *dev)
{
	mali_platform_power_mode_change(dev, MALI_POWER_MODE_DEEP_SLEEP);
	deinit_mali_clock();

#ifdef CONFIG_MALI_DVFS
	if (clk_register_map)
	{
		_mali_osk_mem_unmapioregion(CLK_DIV_STAT_G3D, 0x20, clk_register_map);
		clk_register_map = NULL;
	}
#endif
	MALI_SUCCESS;
}
Ejemplo n.º 6
0
_mali_osk_errcode_t mali_platform_deinit()
{
	deinit_mali_clock();
#if MALI_VOLTAGE_LOCK
	_mali_osk_atomic_term(&voltage_lock_status);
#endif
#if MALI_DVFS_ENABLED
	deinit_mali_dvfs_status();
	if (clk_register_map )
	{
		_mali_osk_mem_unmapioregion(CLK_DIV_STAT_G3D, 0x20, clk_register_map);
		clk_register_map=0;
	}
#endif
	MALI_SUCCESS;
}
Ejemplo n.º 7
0
_mali_osk_errcode_t mali_pegasus_platform_deinit()
{
	deinit_mali_pegasus_clock();

#ifdef CONFIG_EXYNOS_TMU_TC
	_mali_osk_atomic_term(&voltage_lock_status);
#endif

#if MALI_DVFS_ENABLED
	deinit_mali_pegasus_dvfs_status();
	if (clk_pegasus_register_map ) {
		_mali_osk_mem_unmapioregion(CLK_DIV_STAT_G3D, 0x20, clk_pegasus_register_map);
		clk_pegasus_register_map=0;
	}
#endif

	MALI_SUCCESS;
}
static void block_allocator_release_page_table_block( mali_page_table_block *page_table_block )
{
	block_allocator * info;
	block_info * block, * next;

	MALI_DEBUG_ASSERT_POINTER( page_table_block );

	info = (block_allocator*)page_table_block->ctx;
	block = (block_info*)page_table_block->handle;

	MALI_DEBUG_ASSERT_POINTER(info);
	MALI_DEBUG_ASSERT_POINTER(block);


	if (_MALI_OSK_ERR_OK != _mali_osk_lock_wait(info->mutex, _MALI_OSK_LOCKMODE_RW))
	{
		MALI_DEBUG_PRINT(1, ("allocator release: Failed to get mutex\n"));
		return;
	}

	/* Unmap all the physical memory at once */
	_mali_osk_mem_unmapioregion( page_table_block->phys_base, page_table_block->size, page_table_block->mapping );

	/** @note This loop handles the case where more than one block_info was linked.
	 * Probably unnecssary for page table block releasing. */
	while (block)
	{
		next = block->next;

		MALI_DEBUG_ASSERT(!((block < info->all_blocks) || (block > (info->all_blocks + info->num_blocks))));

		block->next = info->first_free;
		info->first_free = block;

		block = next;
	}

	_mali_osk_lock_signal(info->mutex, _MALI_OSK_LOCKMODE_RW);
}
Ejemplo n.º 9
0
_mali_osk_errcode_t mali_pmm_pmu_deinit(_mali_osk_resource_type_t *type)
{
	if (*type == PMU)
	{
		if( pmu_info )
		{
			_mali_osk_mem_unmapioregion(pmu_info->reg_base_addr, pmu_info->reg_size, pmu_info->reg_mapped);
			_mali_osk_mem_unreqregion(pmu_info->reg_base_addr, pmu_info->reg_size);
			_mali_osk_free(pmu_info);
			pmu_info = NULL;
			MALI_DEBUG_PRINT( 4, ("PLATFORM mali400-pmu: Terminated PMU\n") );
		}
	}
	else
	{
		/* Didn't expect a different resource */
		MALI_ERROR(_MALI_OSK_ERR_INVALID_ARGS);
	}	
		
	MALI_SUCCESS;

}