Пример #1
0
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;
}
Пример #2
0
/* 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;
}