static void rtac_add_adm_device_v2(u32 port_id, u32 copp_id, u32 path_id, u32 popp_id) { u32 i = 0; pr_debug("%s: port_id = %d, popp_id = %d\n", __func__, port_id, popp_id); if (rtac_adm_data_v2.num_of_dev == RTAC_MAX_ACTIVE_DEVICES) { pr_err("%s, Can't add anymore RTAC devices!\n", __func__); goto done; } /* Check if device already added */ if (rtac_adm_data_v2.num_of_dev != 0) { for (; i < rtac_adm_data_v2.num_of_dev; i++) { if (rtac_adm_data_v2.device[i].afe_port == port_id) { add_popp_v2(i, port_id, popp_id); goto done; } if (rtac_adm_data_v2.device[i].num_of_popp == RTAC_MAX_ACTIVE_POPP) { pr_err("%s, Max POPP!\n", __func__); goto done; } } } /* Add device */ rtac_adm_data_v2.num_of_dev++; if (path_id == ADM_PATH_PLAYBACK) rtac_adm_data_v2.device[i].topology_id = get_adm_rx_topology(); else rtac_adm_data_v2.device[i].topology_id = get_adm_tx_topology(); rtac_adm_data_v2.device[i].afe_port = port_id; rtac_adm_data_v2.device[i].copp = copp_id; rtac_adm_data_v2.device[i].popp[ rtac_adm_data_v2.device[i].num_of_popp].popp = popp_id; //htc audio ++ if(popp_id < SESSION_MAX) rtac_adm_data_v2.device[i].popp[ rtac_adm_data_v2.device[i].num_of_popp++].popp_topology = get_asm_topology(popp_id); else rtac_adm_data_v2.device[i].popp[ rtac_adm_data_v2.device[i].num_of_popp++].popp_topology = get_asm_topology(0); //htc audio -- done: return; }
/* ADM Info V2 */ static void add_popp_v2(u32 dev_idx, u32 port_id, u32 popp_id) { u32 i = 0; for (; i < rtac_adm_data_v2.device[dev_idx].num_of_popp; i++) if (rtac_adm_data_v2.device[dev_idx].popp[i].popp == popp_id) goto done; if (rtac_adm_data_v2.device[dev_idx].num_of_popp == RTAC_MAX_ACTIVE_POPP) { pr_err("%s, Max POPP!\n", __func__); goto done; } rtac_adm_data_v2.device[dev_idx].popp[ rtac_adm_data_v2.device[dev_idx].num_of_popp].popp = popp_id; rtac_adm_data_v2.device[dev_idx].popp[ rtac_adm_data_v2.device[dev_idx].num_of_popp++].popp_topology = get_asm_topology(); done: return; }