コード例 #1
0
ファイル: liveupdate.cpp プロジェクト: raxptor/putki
		void hookup_object(instance_t ptr, const char *path)
		{
			if (!strcmp(path, "N/A")) {
				return;
			}

			pathid_t path_id = get_path_id(path);
			s_path2ptr[path_id] = ptr;
			s_ptr2path[ptr] = path_id;
		}
コード例 #2
0
enum adie_state_ret_enum_type adie_state_reset(u32 dev_type, u32 dev_id)
{
	enum adie_state_ret_enum_type	rc;
	s32				dal_rc;
	enum adie_codec_path_type_enum	path_type;
	u32				path_id;
	u32				freq_plan;

	rc = ADIE_STATE_RC_SUCCESS;
	dal_rc = CAD_RES_SUCCESS;
	if (adie_state.adie_path_type[dev_type].enable_request != ADIE_TRUE) {
		rc = ADIE_STATE_RC_SUCCESS;
		adie_state.adie_path_type[dev_type].enabled = ADIE_FALSE;
		goto done;
	}

	path_id = get_path_id(dev_id);
	path_type = get_path_type(dev_type);

	if (path_type == ADIE_CODEC_RX)
		freq_plan = 48000;
	else {
		if (g_clk_info.tx_clk_freq > 16000)
			freq_plan = 48000;
		else if (g_clk_info.tx_clk_freq > 8000)
			freq_plan = 16000;
		else
			freq_plan = 8000;
	}

	/* Set the path */
	dal_rc = rpc_adie_codec_set_path(adie_state.adie_handle, path_id,
			path_type);

	if (dal_rc != CAD_RES_SUCCESS) {
		pr_err("ARD ADIE Set Path failed for dev_type %d\n", dev_type);
		rc = ADIE_STATE_RC_FAILURE;
		goto done;
	}

	/* Set the freq plan */
	dal_rc = rpc_adie_codec_set_path_freq_plan(adie_state.adie_handle,
			path_type, freq_plan);

	if (dal_rc != CAD_RES_SUCCESS) {
		pr_err("ARD ADIE Set Path Freq Plan failed for dev_type %d\n",
			dev_type);
		rc = ADIE_STATE_RC_FAILURE;
		goto done;
	}

	/* Proceed to stage */
	dal_rc = rpc_adie_codec_proceed_to_stage(adie_state.adie_handle,
			path_type, ADIE_CODEC_DIGITAL_READY);

	if (dal_rc != CAD_RES_SUCCESS) {
		pr_err("ARD ADIE Proceed to Stage failed for dev_type %d\n",
			dev_type);
		rc = ADIE_STATE_RC_FAILURE;
		goto done;
	}

	adie_state.adie_path_type[dev_type].state = ADIE_STATE_DIGITAL_ACTIVE;
	rc = ADIE_STATE_RC_CONTINUE;
done:
	return rc;
}