Example #1
0
u32 ddl_process_core_response(void)
{
	struct ddl_context_type *p_ddl_context;
	u32 b_return_status = TRUE;

	p_ddl_context = ddl_get_context();
	if (!p_ddl_context->p_core_virtual_base_addr) {
		VIDC_LOGERR_STRING("UNKWN_INTR");
		return FALSE;
	}
	if (p_ddl_context->intr_status == DDL_INVALID_INTR_STATUS) {
		VIDC_LOGERR_STRING("INTERRUPT_NOT_READ");
		return FALSE;
	}

	if (!ddl_handle_core_errors(p_ddl_context)) {
		b_return_status = ddl_process_intr_status(p_ddl_context,
			p_ddl_context->intr_status);
	}

	if (p_ddl_context->pf_interrupt_clr)
		(*p_ddl_context->pf_interrupt_clr)();

	p_ddl_context->intr_status = DDL_INVALID_INTR_STATUS;
	return b_return_status;
}
u32 ddl_process_core_response(void)
{
	struct ddl_context *ddl_context;
	struct ddl_hw_interface *ddl_hw_response;
	u32 status = false;

	ddl_context = ddl_get_context();
	if (!ddl_context->core_virtual_base_addr) {
		DDL_MSG_LOW("SPURIOUS_INTERRUPT");
		return status;
	}
	ddl_hw_response = &ddl_context->ddl_hw_response;
	status = ddl_process_intr_status(ddl_context, ddl_hw_response->cmd);
	if (ddl_context->interrupt_clr)
		(*ddl_context->interrupt_clr)();
	return status;
}
u32 ddl_process_core_response(void)
{
	struct ddl_context *ddl_context;
	u32 return_status = true;

	ddl_context = ddl_get_context();
	if (!ddl_context->core_virtual_base_addr) {
		VIDC_LOGERR_STRING("UNKWN_INTR");
		return false;
	}

	if (!ddl_handle_core_errors(ddl_context)) {
		return_status = ddl_process_intr_status(ddl_context,
			ddl_context->intr_status);
	}

	if (ddl_context->interrupt_clr)
		(*ddl_context->interrupt_clr)();

	return return_status;
}