mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-24 10:11:26 +03:00
tegra-virt-alt: nvaudio_ivc_send_receive added
Currently exposed api's have limitations of receive request getting processed out of order. Change make sure to process ack/receive based message before queueing other. Also removing unused api's as code cleanup. Bug 2403937 Change-Id: Ic3141aac53bc0904dfcad699d419b9ca8aaea155 Signed-off-by: Dipesh Gandhi <dipeshg@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1927929 Signed-off-by: Dipesh Gandhi <dipeshg@nvidia.com> (cherry picked from commit d6c592f7ada5ecbcd9af290149af01b52b89b8a3) Reviewed-on: https://git-master.nvidia.com/r/1753352 GVS: Gerrit_Virtual_Submit Reviewed-by: Viraj Karandikar <vkarandikar@nvidia.com> Reviewed-by: Nitin Pai <npai@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
Sameer Pujar
parent
737cefc6e0
commit
22fa30cd39
@@ -1850,14 +1850,16 @@ static int tegra_ivc_start_playback(
|
||||
msg.cmd = NVAUDIO_START_PLAYBACK;
|
||||
msg.params.dmaif_info.id = ivc_msg_admaif_id;
|
||||
msg.ack_required = ack_required;
|
||||
err = nvaudio_ivc_send_retry(adsp->hivc_client,
|
||||
&msg,
|
||||
sizeof(struct nvaudio_ivc_msg));
|
||||
if (ack_required && err >= 0) {
|
||||
nvaudio_ivc_receive(adsp->hivc_client,
|
||||
&msg,
|
||||
sizeof(struct nvaudio_ivc_msg));
|
||||
}
|
||||
|
||||
|
||||
if (ack_required)
|
||||
err = nvaudio_ivc_send_receive(adsp->hivc_client,
|
||||
&msg,
|
||||
sizeof(struct nvaudio_ivc_msg));
|
||||
else
|
||||
err = nvaudio_ivc_send_retry(adsp->hivc_client,
|
||||
&msg,
|
||||
sizeof(struct nvaudio_ivc_msg));
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -1873,14 +1875,15 @@ static int tegra_ivc_start_capture(
|
||||
msg.cmd = NVAUDIO_START_CAPTURE;
|
||||
msg.ack_required = ack_required;
|
||||
msg.params.dmaif_info.id = ivc_msg_admaif_id;
|
||||
err = nvaudio_ivc_send_retry(adsp->hivc_client,
|
||||
&msg,
|
||||
sizeof(struct nvaudio_ivc_msg));
|
||||
if (ack_required && err >= 0) {
|
||||
nvaudio_ivc_receive(adsp->hivc_client,
|
||||
&msg,
|
||||
sizeof(struct nvaudio_ivc_msg));
|
||||
}
|
||||
|
||||
if (ack_required)
|
||||
err = nvaudio_ivc_send_receive(adsp->hivc_client,
|
||||
&msg,
|
||||
sizeof(struct nvaudio_ivc_msg));
|
||||
else
|
||||
err = nvaudio_ivc_send_retry(adsp->hivc_client,
|
||||
&msg,
|
||||
sizeof(struct nvaudio_ivc_msg));
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -1896,14 +1899,15 @@ static int tegra_ivc_stop_playback(
|
||||
msg.cmd = NVAUDIO_STOP_PLAYBACK;
|
||||
msg.params.dmaif_info.id = ivc_msg_admaif_id;
|
||||
msg.ack_required = ack_required;
|
||||
err = nvaudio_ivc_send_retry(adsp->hivc_client,
|
||||
&msg,
|
||||
sizeof(struct nvaudio_ivc_msg));
|
||||
if (ack_required && err >= 0) {
|
||||
nvaudio_ivc_receive(adsp->hivc_client,
|
||||
&msg,
|
||||
sizeof(struct nvaudio_ivc_msg));
|
||||
}
|
||||
|
||||
if (ack_required)
|
||||
err = nvaudio_ivc_send_receive(adsp->hivc_client,
|
||||
&msg,
|
||||
sizeof(struct nvaudio_ivc_msg));
|
||||
else
|
||||
err = nvaudio_ivc_send_retry(adsp->hivc_client,
|
||||
&msg,
|
||||
sizeof(struct nvaudio_ivc_msg));
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -1919,14 +1923,16 @@ static int tegra_ivc_stop_capture(
|
||||
msg.cmd = NVAUDIO_STOP_CAPTURE;
|
||||
msg.params.dmaif_info.id = ivc_msg_admaif_id;
|
||||
msg.ack_required = ack_required;
|
||||
err = nvaudio_ivc_send_retry(adsp->hivc_client,
|
||||
&msg,
|
||||
sizeof(struct nvaudio_ivc_msg));
|
||||
if (ack_required && err >= 0) {
|
||||
nvaudio_ivc_receive(adsp->hivc_client,
|
||||
&msg,
|
||||
sizeof(struct nvaudio_ivc_msg));
|
||||
}
|
||||
|
||||
if (ack_required)
|
||||
err = nvaudio_ivc_send_receive(adsp->hivc_client,
|
||||
&msg,
|
||||
sizeof(struct nvaudio_ivc_msg));
|
||||
else
|
||||
err = nvaudio_ivc_send_retry(adsp->hivc_client,
|
||||
&msg,
|
||||
sizeof(struct nvaudio_ivc_msg));
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user