Lines Matching refs:context

129 __drv_at(context->locking_policy->spinlock.irql, __drv_savesIRQL)
171 __drv_at(context->locking_policy->spinlock.irql, __drv_restoresIRQL )
317 lm_dmae_context_t* context, in lm_dmae_initialize_command_by_block() argument
322 …command->opcode = lm_dmae_opcode(pdev, block->source, block->dest, TRUE, FALSE, context->change_en… in lm_dmae_initialize_command_by_block()
326 command->comp_addr_hi = context->completion_word_paddr.as_u32.high; in lm_dmae_initialize_command_by_block()
327 command->comp_addr_lo = context->completion_word_paddr.as_u32.low; in lm_dmae_initialize_command_by_block()
340 IN lm_dmae_context_t* context, in lm_dmae_operation_create() argument
345 DbgBreakIf(LM_DMAE_MODE_SINGLE_BLOCK != context->mode); in lm_dmae_operation_create()
346 DbgBreakIf(0 == context->completion_word_paddr.as_u64); in lm_dmae_operation_create()
359 operation->context = context; in lm_dmae_operation_create()
367 operation->context, in lm_dmae_operation_create()
396 …lm_dmae_address_t dest = lm_dmae_address( DMAE_REG_CMD_MEM + operation->context->executer_channe… in lm_dmae_initialize_sgl_loader_command()
400 …command->opcode = lm_dmae_opcode(pdev, source, dest, FALSE, TRUE, operation->context->change_endia… in lm_dmae_initialize_sgl_loader_command()
417 command->comp_addr_lo = lm_dmae_idx_to_go_cmd(operation->context->executer_channel) / 4; in lm_dmae_initialize_sgl_loader_command()
427 IN lm_dmae_context_t* context) in lm_dmae_operation_create_sgl() argument
433 DbgBreakIf(LM_DMAE_MODE_SGL != context->mode); in lm_dmae_operation_create_sgl()
434 DbgBreakIf(0 == context->completion_word_paddr.as_u64); in lm_dmae_operation_create_sgl()
447 operation->context = context; in lm_dmae_operation_create_sgl()
490 last_sge->comp_addr_lo = lm_dmae_idx_to_go_cmd(operation->context->main_channel) / 4; in lm_dmae_operation_add_sge()
501 operation->context, in lm_dmae_operation_add_sge()
524 return operation->context->completion_word != operation->command_id; in lm_dmae_operation_is_complete()
555 (u64_t)operation->context->completion_word, in lm_dmae_operation_wait()
556 (u64_t)operation->context->completion_value); in lm_dmae_operation_wait()
570 if (LM_STATUS_SUCCESS != lm_dmae_context_reset(operation->context)) in lm_dmae_operation_wait()
593 lm_dmae_context_t* context = NULL; in lm_dmae_context_create() local
598context = mm_alloc_phys_mem(pdev, sizeof(lm_dmae_context_t), &context_paddr, PHYS_MEM_TYPE_NONCACH… in lm_dmae_context_create()
600 if (CHK_NULL(context)) in lm_dmae_context_create()
606 context->mode = LM_DMAE_MODE_SINGLE_BLOCK; in lm_dmae_context_create()
607 context->main_channel = channel_idx; in lm_dmae_context_create()
608 context->executer_channel = (u8_t)-1; in lm_dmae_context_create()
609 context->locking_policy = locking_policy; in lm_dmae_context_create()
610 context->change_endianity = change_endianity; in lm_dmae_context_create()
611 context->next_command_id = 1; in lm_dmae_context_create()
615context->completion_value = context->change_endianity ? DMAE_COMPLETION_VAL_SWAPPED : DMAE_COMPLET… in lm_dmae_context_create()
617 context->completion_value = DMAE_COMPLETION_VAL; in lm_dmae_context_create()
620 context->completion_word = context->completion_value; in lm_dmae_context_create()
624 context->completion_word_paddr = completion_word_paddr; in lm_dmae_context_create()
628 context->intermediate_buffer_paddr = intermediate_buffer_paddr; in lm_dmae_context_create()
630 return context; in lm_dmae_context_create()
640 lm_dmae_context_t* context = NULL; in lm_dmae_context_create_sgl() local
645context = mm_alloc_phys_mem(pdev, sizeof(lm_dmae_context_t), &context_paddr, PHYS_MEM_TYPE_NONCACH… in lm_dmae_context_create_sgl()
647 if (CHK_NULL(context)) in lm_dmae_context_create_sgl()
654 context->mode = LM_DMAE_MODE_SGL; in lm_dmae_context_create_sgl()
655 context->main_channel = loader_channel_idx; in lm_dmae_context_create_sgl()
656 context->executer_channel = executer_channel_idx; in lm_dmae_context_create_sgl()
657 context->locking_policy = locking_policy; in lm_dmae_context_create_sgl()
658 context->change_endianity = change_endianity; in lm_dmae_context_create_sgl()
659 context->next_command_id = 1; in lm_dmae_context_create_sgl()
661 context->completion_value = DMAE_SGL_COMPLETION_VAL; in lm_dmae_context_create_sgl()
663 context->completion_word = context->completion_value; in lm_dmae_context_create_sgl()
667 context->completion_word_paddr = completion_word_paddr; in lm_dmae_context_create_sgl()
671 context->intermediate_buffer_paddr = intermediate_buffer_paddr; in lm_dmae_context_create_sgl()
673 return context; in lm_dmae_context_create_sgl()
687 lm_status_t lm_dmae_context_reset(lm_dmae_context_t *context) in lm_dmae_context_reset() argument
689 context->completion_word = context->completion_value; in lm_dmae_context_reset()
696 __drv_at(context->locking_policy->spinlock.irql, __drv_savesIRQL)
699 lm_status_t lm_dmae_context_acquire(struct _lm_device_t* pdev, lm_dmae_context_t *context) in __drv_setsIRQL()
701 return lm_dmae_locking_policy_lock(pdev, context->locking_policy); in __drv_setsIRQL()
707 __drv_at(context->locking_policy->spinlock.irql, __drv_restoresIRQL )
710 lm_status_t lm_dmae_context_release(struct _lm_device_t* pdev, lm_dmae_context_t *context) in lm_dmae_context_release() argument
712 return lm_dmae_locking_policy_unlock(pdev, context->locking_policy); in lm_dmae_context_release()
715 lm_status_t lm_dmae_context_execute(struct _lm_device_t* pdev, lm_dmae_context_t *context, lm_dmae_… in lm_dmae_context_execute() argument
719 lm_status = lm_dmae_context_acquire(pdev,context); in lm_dmae_context_execute()
726 lm_status = lm_dmae_context_execute_unsafe(pdev, context,operation); in lm_dmae_context_execute()
741 lm_dmae_context_release(pdev,context); in lm_dmae_context_execute()
756 lm_dmae_context_advance_command_id(lm_dmae_context_t* context) in lm_dmae_context_advance_command_id() argument
758 u32_t cmd_id = mm_atomic_inc(&context->next_command_id); in lm_dmae_context_advance_command_id()
761 (context->completion_value == cmd_id)) in lm_dmae_context_advance_command_id()
763 cmd_id = mm_atomic_inc(&context->next_command_id); in lm_dmae_context_advance_command_id()
830 lm_status_t lm_dmae_context_execute_sgl(struct _lm_device_t* pdev, lm_dmae_context_t *context, lm_d… in lm_dmae_context_execute_sgl() argument
834 context->completion_word = operation->command_id; in lm_dmae_context_execute_sgl()
836 lm_dmae_post_command(pdev, context->main_channel, &operation->main_cmd); in lm_dmae_context_execute_sgl()
876 lm_dmae_context_t *context, in lm_dmae_context_execute_sub_operation() argument
903 operation->main_cmd.src_addr_hi = context->intermediate_buffer_paddr.as_u32.high; in lm_dmae_context_execute_sub_operation()
904 operation->main_cmd.src_addr_lo = context->intermediate_buffer_paddr.as_u32.low; in lm_dmae_context_execute_sub_operation()
906 mm_memcpy( &context->intermediate_buffer[0], src_addr.as_ptr, length*sizeof(u32_t)); in lm_dmae_context_execute_sub_operation()
911context->intermediate_buffer[i] = mm_cpu_to_le32(context->intermediate_buffer[i]); in lm_dmae_context_execute_sub_operation()
935 operation->main_cmd.dst_addr_hi = context->intermediate_buffer_paddr.as_u32.high; in lm_dmae_context_execute_sub_operation()
936 operation->main_cmd.dst_addr_lo = context->intermediate_buffer_paddr.as_u32.low; in lm_dmae_context_execute_sub_operation()
947 DbgBreakIf(context->completion_word != context->completion_value); in lm_dmae_context_execute_sub_operation()
949 context->completion_word = operation->command_id; in lm_dmae_context_execute_sub_operation()
953 lm_dmae_post_command(pdev, context->main_channel, &operation->main_cmd); in lm_dmae_context_execute_sub_operation()
961 DbgBreakIf(context->completion_word != context->completion_value); in lm_dmae_context_execute_sub_operation()
965 mm_memcpy( dst_addr.as_ptr, &context->intermediate_buffer[0], length*sizeof(u32_t)); in lm_dmae_context_execute_sub_operation()
985 lm_dmae_context_execute_single_block(struct _lm_device_t* pdev, lm_dmae_context_t *context, lm_dmae… in lm_dmae_context_execute_single_block() argument
1050 …lm_status = lm_dmae_context_execute_sub_operation(pdev, context, operation, src_addr_split, dst_ad… in lm_dmae_context_execute_single_block()
1061 lm_status_t lm_dmae_context_execute_unsafe(struct _lm_device_t* pdev, lm_dmae_context_t *context, l… in lm_dmae_context_execute_unsafe() argument
1065 if (context->completion_word != context->completion_value) in lm_dmae_context_execute_unsafe()
1070 DbgBreakIf(context->mode != operation->mode); in lm_dmae_context_execute_unsafe()
1072 operation->command_id = lm_dmae_context_advance_command_id(context); in lm_dmae_context_execute_unsafe()
1074 switch (context->mode) in lm_dmae_context_execute_unsafe()
1078 lm_status = lm_dmae_context_execute_single_block(pdev, context, operation); in lm_dmae_context_execute_unsafe()
1083 lm_status = lm_dmae_context_execute_sgl(pdev, context, operation); in lm_dmae_context_execute_unsafe()
1202 lm_status_t lm_dmae_reg_wr(struct _lm_device_t* pdev, lm_dmae_context_t* context, void* source_vadd… in lm_dmae_reg_wr() argument
1215 …mae_operation_create(pdev, source, dest, length, replicate_source, le32_swap, context, &operation); in lm_dmae_reg_wr()
1221 lm_status = lm_dmae_context_execute(pdev, context, &operation); in lm_dmae_reg_wr()
1230 lm_status_t lm_dmae_reg_wr_phys(struct _lm_device_t* pdev, lm_dmae_context_t* context, lm_address_t… in lm_dmae_reg_wr_phys() argument
1239 …lm_status = lm_dmae_operation_create(pdev, source, dest, length, FALSE, FALSE, context, &operation… in lm_dmae_reg_wr_phys()
1245 lm_status = lm_dmae_context_execute(pdev, context, &operation); in lm_dmae_reg_wr_phys()
1254 lm_status_t lm_dmae_reg_rd(struct _lm_device_t* pdev, lm_dmae_context_t* context, u32_t source_offs… in lm_dmae_reg_rd() argument
1267 …lm_status = lm_dmae_operation_create(pdev, source, dest, length, FALSE, le32_swap, context, &opera… in lm_dmae_reg_rd()
1273 lm_status = lm_dmae_context_execute(pdev, context, &operation); in lm_dmae_reg_rd()
1282 lm_status_t lm_dmae_copy_phys_buffer_unsafe(struct _lm_device_t* pdev, lm_dmae_context_t* context, … in lm_dmae_copy_phys_buffer_unsafe() argument
1289 …lm_status = lm_dmae_operation_create(pdev, source, dest, length, FALSE, FALSE, context, &operation… in lm_dmae_copy_phys_buffer_unsafe()
1295 lm_status = lm_dmae_context_execute_unsafe(pdev, context, &operation); in lm_dmae_copy_phys_buffer_unsafe()