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; }
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; }