Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp717106ybl; Fri, 10 Jan 2020 05:39:16 -0800 (PST) X-Google-Smtp-Source: APXvYqy4f3w/BfOQQG5Mdtc1ez/PAKWNzuCLmRG4msow8O7U9+96dVESQxnh/TPwSD4o8jF++2cV X-Received: by 2002:a05:6830:1755:: with SMTP id 21mr2744197otz.323.1578663556453; Fri, 10 Jan 2020 05:39:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1578663556; cv=none; d=google.com; s=arc-20160816; b=c9OCeKc7fqvAWRXP5lSSUFw483VMeIjCS8LjlQpCRja5s/VvKKEvhOF1YxnXHhzorU YGsfZH5Sf+I9O8AWRZ1W0Hl25c1qGuqa/fp8+rot9Q1sPaqLmMEbJhwqFcu85hyf6HMd yqw2t/h4fOrcDjOh+lLziCZ9shLS85eh2mGj9aIsca+m631EgwoCkWoLgiOlJPHX2tP2 cDMNJCRVE6kvsBAwwdEDwCyJoQmT0vqoW8bRKW/euHfE+SRvyRDbisy3IIrXlMO6MlyD m+gn2FG2W1PMHjNNuqWcLUyHHUJD7N2lwuILxnyVPMkWFX7Qw8iijQhS7xH2Sk87gpVM dP0g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:in-reply-to:subject:cc:to:from :date; bh=oz1ny0Adbe5ziQy1mV67PWiwI1tWujCG6Q/tsYFBP+Y=; b=DuTr0iF/SShGN31fGw6NPf1POdYiGCQCXcd+pueYBWlBSSMxuigPd/o+Ckuqziiah4 z71LLQdpIQxVD8euZua5AYQZwBpzOoS60CQUc+8DhG8IIvbjb1tketUHsd5eAD/Hn15/ xBRuf9nXPjDEywB/fGZErGXIAziNWIgCMNInEu37hI5fYBzLuhqbMdoT6FqVHpp7A+UU CEqvbUSpIefg0r1RHoFt9e5FF69RyDshjeVcL2v5X1ne/z/xv+iwST5NBxjLTF3dLC4s NAnBVp+KHjzXYi7ofNflY3Abhqs5CNAvQhCbslhAbnYTzo4jyhj0SjDn6XsdGW2qNwYu impQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g5si1323435otn.232.2020.01.10.05.39.04; Fri, 10 Jan 2020 05:39:16 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727904AbgAJNiD (ORCPT + 99 others); Fri, 10 Jan 2020 08:38:03 -0500 Received: from foss.arm.com ([217.140.110.172]:44550 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727639AbgAJNiD (ORCPT ); Fri, 10 Jan 2020 08:38:03 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id EB29C1063; Fri, 10 Jan 2020 05:38:02 -0800 (PST) Received: from localhost (unknown [10.37.6.21]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 6BCB93F534; Fri, 10 Jan 2020 05:38:02 -0800 (PST) Date: Fri, 10 Jan 2020 13:38:01 +0000 From: Mark Brown To: Olivier Moysan Cc: alexandre.torgue@st.com, alsa-devel@alsa-project.org, broonie@kernel.org, lgirdwood@gmail.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, Mark Brown , mcoquelin.stm32@gmail.com, olivier.moysan@st.com, perex@perex.cz, tiwai@suse.com Subject: Applied "ASoC: stm32: dfsdm: fix 16 bits record" to the asoc tree In-Reply-To: <20200110131131.3191-1-olivier.moysan@st.com> Message-Id: X-Patchwork-Hint: ignore Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The patch ASoC: stm32: dfsdm: fix 16 bits record has been applied to the asoc tree at https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-5.5 All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted. You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed. If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced. Please add any relevant lists and maintainers to the CCs when replying to this mail. Thanks, Mark From 8e55ea19125b65cffe42747359af99d545e85f2f Mon Sep 17 00:00:00 2001 From: Olivier Moysan Date: Fri, 10 Jan 2020 14:11:31 +0100 Subject: [PATCH] ASoC: stm32: dfsdm: fix 16 bits record In stm32_afsdm_pcm_cb function, the transfer size is provided in bytes. However, samples are copied as 16 bits words from iio buffer. Divide by two the transfer size, to copy the right number of samples. Fixes: 1e7f6e1c69f0 ("ASoC: stm32: dfsdm: add 16 bits audio record support") Signed-off-by: Olivier Moysan Link: https://lore.kernel.org/r/20200110131131.3191-1-olivier.moysan@st.com Signed-off-by: Mark Brown --- sound/soc/stm/stm32_adfsdm.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sound/soc/stm/stm32_adfsdm.c b/sound/soc/stm/stm32_adfsdm.c index 81c407da15c5..08696a4adb69 100644 --- a/sound/soc/stm/stm32_adfsdm.c +++ b/sound/soc/stm/stm32_adfsdm.c @@ -153,13 +153,13 @@ static const struct snd_soc_component_driver stm32_adfsdm_dai_component = { .name = "stm32_dfsdm_audio", }; -static void memcpy_32to16(void *dest, const void *src, size_t n) +static void stm32_memcpy_32to16(void *dest, const void *src, size_t n) { unsigned int i = 0; u16 *d = (u16 *)dest, *s = (u16 *)src; s++; - for (i = n; i > 0; i--) { + for (i = n >> 1; i > 0; i--) { *d++ = *s++; s++; } @@ -186,8 +186,8 @@ static int stm32_afsdm_pcm_cb(const void *data, size_t size, void *private) if ((priv->pos + src_size) > buff_size) { if (format == SNDRV_PCM_FORMAT_S16_LE) - memcpy_32to16(&pcm_buff[priv->pos], src_buff, - buff_size - priv->pos); + stm32_memcpy_32to16(&pcm_buff[priv->pos], src_buff, + buff_size - priv->pos); else memcpy(&pcm_buff[priv->pos], src_buff, buff_size - priv->pos); @@ -196,8 +196,8 @@ static int stm32_afsdm_pcm_cb(const void *data, size_t size, void *private) } if (format == SNDRV_PCM_FORMAT_S16_LE) - memcpy_32to16(&pcm_buff[priv->pos], - &src_buff[src_size - cur_size], cur_size); + stm32_memcpy_32to16(&pcm_buff[priv->pos], + &src_buff[src_size - cur_size], cur_size); else memcpy(&pcm_buff[priv->pos], &src_buff[src_size - cur_size], cur_size); -- 2.20.1