lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20080317.220027.01917573.anemo@mba.ocn.ne.jp>
Date:	Mon, 17 Mar 2008 22:00:27 +0900 (JST)
From:	Atsushi Nemoto <anemo@....ocn.ne.jp>
To:	tiwai@...e.de
Cc:	haavard.skinnemoen@...el.com, linux-kernel@...r.kernel.org,
	hcegtvedt@...el.com, avictor.za@...il.com
Subject: Re: [PATCH] at73c213: Fix DMA size at the end of DMA buffer

On Fri, 14 Mar 2008 14:39:42 +0100, Takashi Iwai <tiwai@...e.de> wrote:
> Add the following constraint in the open callback:
> 
> 	err = snd_pcm_hw_constraint_integer(runtime,
> 					SNDRV_PCM_HW_PARAM_PERIODS);
> 	if (err < 0)
> 		return err;
> 
> This will guarantee that the period size fits with the buffer size.

Thank you!  It works fine.  Here is a new patch.


------------------------------------------------------
Subject: [PATCH] at73c213: Add constraints for periods value
From: Atsushi Nemoto <anemo@....ocn.ne.jp>

The interrupt handler always provide runtime->period_size data, so it
works correctly only if buffer_size was a multiple of period_size.

This patch fixes periodic click noise.

Signed-off-by: Atsushi Nemoto <anemo@....ocn.ne.jp>
---
This patch obsoletes a patch titled "at73c213: fix DMA size at the end
of DMA buffer" in git-alsa-tiwai.patch in mm tree.

diff --git a/sound/spi/at73c213.c b/sound/spi/at73c213.c
index 7c077c6..9a5c118 100644
--- a/sound/spi/at73c213.c
+++ b/sound/spi/at73c213.c
@@ -210,7 +210,13 @@ static int snd_at73c213_pcm_open(struct snd_pcm_substream *substream)
 {
 	struct snd_at73c213 *chip = snd_pcm_substream_chip(substream);
 	struct snd_pcm_runtime *runtime = substream->runtime;
+	int err;
 
+	/* ensure buffer_size is a multiple of period_size */
+	err = snd_pcm_hw_constraint_integer(runtime,
+					SNDRV_PCM_HW_PARAM_PERIODS);
+	if (err < 0)
+		return err;
 	snd_at73c213_playback_hw.rate_min = chip->bitrate;
 	snd_at73c213_playback_hw.rate_max = chip->bitrate;
 	runtime->hw = snd_at73c213_playback_hw;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ