From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Jai Luthra <j-luthra@ti.com>,
Peter Ujfalusi <peter.ujfalusi@gmail.com>,
Mark Brown <broonie@kernel.org>, Sasha Levin <sashal@kernel.org>,
lgirdwood@gmail.com, perex@perex.cz, tiwai@suse.com,
alsa-devel@alsa-project.org, linux-sound@vger.kernel.org
Subject: [PATCH AUTOSEL 6.1 08/27] ASoC: ti: davinci-mcasp: Set min period size using FIFO config
Date: Tue, 9 Jul 2024 12:23:22 -0400 [thread overview]
Message-ID: <20240709162401.31946-8-sashal@kernel.org> (raw)
In-Reply-To: <20240709162401.31946-1-sashal@kernel.org>
From: Jai Luthra <j-luthra@ti.com>
[ Upstream commit c5dcf8ab10606e76c1d8a0ec77f27d84a392e874 ]
The minimum period size was enforced to 64 as older devices integrating
McASP with EDMA used an internal FIFO of 64 samples.
With UDMA based platforms this internal McASP FIFO is optional, as the
DMA engine internally does some buffering which is already accounted for
when registering the platform. So we should read the actual FIFO
configuration (txnumevt/rxnumevt) instead of hardcoding frames.min to
64.
Acked-by: Peter Ujfalusi <peter.ujfalusi@gmail.com>
Signed-off-by: Jai Luthra <j-luthra@ti.com>
Link: https://lore.kernel.org/r/20240611-asoc_next-v3-2-fcfd84b12164@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
sound/soc/ti/davinci-mcasp.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/sound/soc/ti/davinci-mcasp.c b/sound/soc/ti/davinci-mcasp.c
index 4edf5b27e136b..c6ef8f92b25f1 100644
--- a/sound/soc/ti/davinci-mcasp.c
+++ b/sound/soc/ti/davinci-mcasp.c
@@ -1472,10 +1472,11 @@ static int davinci_mcasp_hw_rule_min_periodsize(
{
struct snd_interval *period_size = hw_param_interval(params,
SNDRV_PCM_HW_PARAM_PERIOD_SIZE);
+ u8 numevt = *((u8 *)rule->private);
struct snd_interval frames;
snd_interval_any(&frames);
- frames.min = 64;
+ frames.min = numevt;
frames.integer = 1;
return snd_interval_refine(period_size, &frames);
@@ -1490,6 +1491,7 @@ static int davinci_mcasp_startup(struct snd_pcm_substream *substream,
u32 max_channels = 0;
int i, dir, ret;
int tdm_slots = mcasp->tdm_slots;
+ u8 *numevt;
/* Do not allow more then one stream per direction */
if (mcasp->substreams[substream->stream])
@@ -1589,9 +1591,12 @@ static int davinci_mcasp_startup(struct snd_pcm_substream *substream,
return ret;
}
+ numevt = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
+ &mcasp->txnumevt :
+ &mcasp->rxnumevt;
snd_pcm_hw_rule_add(substream->runtime, 0,
SNDRV_PCM_HW_PARAM_PERIOD_SIZE,
- davinci_mcasp_hw_rule_min_periodsize, NULL,
+ davinci_mcasp_hw_rule_min_periodsize, numevt,
SNDRV_PCM_HW_PARAM_PERIOD_SIZE, -1);
return 0;
--
2.43.0
next prev parent reply other threads:[~2024-07-09 16:24 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-09 16:23 [PATCH AUTOSEL 6.1 01/27] Input: elantech - fix touchpad state on resume for Lenovo N24 Sasha Levin
2024-07-09 16:23 ` [PATCH AUTOSEL 6.1 02/27] Input: i8042 - add Ayaneo Kun to i8042 quirk table Sasha Levin
2024-07-09 16:23 ` [PATCH AUTOSEL 6.1 03/27] ASoC: topology: Fix references to freed memory Sasha Levin
2024-07-09 16:23 ` [PATCH AUTOSEL 6.1 04/27] ASoC: topology: Do not assign fields that are already set Sasha Levin
2024-07-09 16:23 ` [PATCH AUTOSEL 6.1 05/27] ASoC: topology: Clean up route loading Sasha Levin
2024-07-09 16:23 ` [PATCH AUTOSEL 6.1 06/27] bytcr_rt5640 : inverse jack detect for Archos 101 cesium Sasha Levin
2024-07-09 16:23 ` [PATCH AUTOSEL 6.1 07/27] ALSA: dmaengine: Synchronize dma channel after drop() Sasha Levin
2024-07-09 16:23 ` Sasha Levin [this message]
2024-07-09 16:23 ` [PATCH AUTOSEL 6.1 09/27] ASoC: ti: omap-hdmi: Fix too long driver name Sasha Levin
2024-07-09 16:23 ` [PATCH AUTOSEL 6.1 10/27] ASoC: SOF: sof-audio: Skip unprepare for in-use widgets on error rollback Sasha Levin
2024-07-09 16:23 ` [PATCH AUTOSEL 6.1 11/27] ASoC: topology: Fix route memory corruption Sasha Levin
2024-07-09 16:23 ` [PATCH AUTOSEL 6.1 12/27] can: kvaser_usb: fix return value for hif_usb_send_regout Sasha Levin
2024-07-09 16:23 ` [PATCH AUTOSEL 6.1 13/27] gpio: pca953x: fix pca953x_irq_bus_sync_unlock race Sasha Levin
2024-07-09 16:23 ` [PATCH AUTOSEL 6.1 14/27] s390/sclp: Fix sclp_init() cleanup on failure Sasha Levin
2024-07-09 16:23 ` [PATCH AUTOSEL 6.1 15/27] platform/mellanox: nvsw-sn2201: Add check for platform_device_add_resources Sasha Levin
2024-07-09 16:23 ` [PATCH AUTOSEL 6.1 16/27] platform/x86: wireless-hotkey: Add support for LG Airplane Button Sasha Levin
2024-07-09 16:23 ` [PATCH AUTOSEL 6.1 17/27] platform/x86: lg-laptop: Remove LGEX0815 hotkey handling Sasha Levin
2024-07-09 16:23 ` [PATCH AUTOSEL 6.1 18/27] platform/x86: lg-laptop: Change ACPI device id Sasha Levin
2024-07-09 16:23 ` [PATCH AUTOSEL 6.1 19/27] platform/x86: lg-laptop: Use ACPI device handle when evaluating WMAB/WMBB Sasha Levin
2024-07-09 16:23 ` [PATCH AUTOSEL 6.1 20/27] btrfs: qgroup: fix quota root leak after quota disable failure Sasha Levin
2024-07-09 16:23 ` [PATCH AUTOSEL 6.1 21/27] ibmvnic: Add tx check to prevent skb leak Sasha Levin
2024-07-09 16:23 ` [PATCH AUTOSEL 6.1 22/27] ALSA: PCM: Allow resume only for suspended streams Sasha Levin
2024-07-09 16:23 ` [PATCH AUTOSEL 6.1 23/27] ALSA: hda/relatek: Enable Mute LED on HP Laptop 15-gw0xxx Sasha Levin
2024-07-09 16:23 ` [PATCH AUTOSEL 6.1 24/27] ALSA: dmaengine_pcm: terminate dmaengine before synchronize Sasha Levin
2024-07-09 16:23 ` [PATCH AUTOSEL 6.1 25/27] parisc: use generic sys_fanotify_mark implementation Sasha Levin
2024-07-09 16:23 ` [PATCH AUTOSEL 6.1 26/27] ASoC: amd: yc: Fix non-functional mic on ASUS M5602RA Sasha Levin
2024-07-09 16:23 ` [PATCH AUTOSEL 6.1 27/27] net: usb: qmi_wwan: add Telit FN912 compositions Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240709162401.31946-8-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=j-luthra@ti.com \
--cc=lgirdwood@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=perex@perex.cz \
--cc=peter.ujfalusi@gmail.com \
--cc=stable@vger.kernel.org \
--cc=tiwai@suse.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).