From nobody Wed Apr 8 08:01:58 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C1875C28D13 for ; Mon, 22 Aug 2022 10:13:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234624AbiHVKNo (ORCPT ); Mon, 22 Aug 2022 06:13:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41346 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233575AbiHVKNj (ORCPT ); Mon, 22 Aug 2022 06:13:39 -0400 Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80058.outbound.protection.outlook.com [40.107.8.58]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B1D53BF7B for ; Mon, 22 Aug 2022 03:13:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WrGL5ULBo8oAtyJYxtQO0hovAcQdqE3JH5g1kqwrQXmYsyuZi+9uuL6uDvDT0zWMo+yKM5TgeI2geDIKfrmT4H3mIbCEd9SVUS7PF/9cTHANLXGQz22xOeMOcdraVur3SuRFdJCzOMwaXFHeXolN1Gr5RN0N8d8l0M2AlCzzxoagIbxbVl8DJkkFG65CgkbuhhBtO3uTuv6jOREwaB1Nywy08VhbSmq1/gRgVUn05wSaX+UigoflWTmVhCIar68HIid/lZ5ZpYMOToim1qZWG2wsi7mb8UkY6OrCwrldWZF8NY9wyDmRXhoQ7EP8J9t5jp41QUkavEcl2YbHy3RKNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=iR1EL29NQ/hedgu50F3y7L38qEkGIk03MFj1BBcaddc=; b=bh/pXNaG36gWguiG1saNTCiHr9q/+evbcIje7XvHr9OzbI1+AQf/Qq4OnAysBcO+k4Onzi+5qrwmaexW15S2rVIMpGcb+nYHQ2bR39XEau/YH0zze1cPLd4R5/npSswAGVRztIsFIjK3CGsR3+kaGMdr2sk+v+8xzvJgTjpWa8SU0j3tVdxf8WuKRuqkTIXQThRfpdWySZsnp34iyW/JA1LfFceyvp5whhm4NOuKoUzoApuHe5LSegvvKBdmX2XKlXVltYGmh3hmaBD3/GKYfcBe/+OmhCVIUNrnk1qVSWXUEI+AEkkeAvSAcR4s3ixMIwUUmSxHjFPlx+l5h8w3IQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iR1EL29NQ/hedgu50F3y7L38qEkGIk03MFj1BBcaddc=; b=oeIBSorLKD3euCFozwJaoSpBxMWWRVigjSEYN1Y6HyVFvRU8dUm3KpsRBbl93ZV9xWc9yv2KgZMt8rCAGJX0ch9QS6FEEKok/WiHcfbnEY/0nwCs89wM8+fSBqr1EwVUChwk1sCXKeqckljG2+KpaM0tRIUlorZGD2ELZDrnC2U= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from VE1PR04MB6607.eurprd04.prod.outlook.com (2603:10a6:803:121::19) by PA4PR04MB7645.eurprd04.prod.outlook.com (2603:10a6:102:eb::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5546.22; Mon, 22 Aug 2022 10:13:35 +0000 Received: from VE1PR04MB6607.eurprd04.prod.outlook.com ([fe80::71f1:4e4c:c9c:bd9e]) by VE1PR04MB6607.eurprd04.prod.outlook.com ([fe80::71f1:4e4c:c9c:bd9e%4]) with mapi id 15.20.5546.022; Mon, 22 Aug 2022 10:13:35 +0000 From: Laurentiu Mihalcea To: alsa-devel@alsa-project.org, broonie@kernel.org Cc: pierre-louis.bossart@linux.intel.com, lgirdwood@gmail.com, peter.ujfalusi@linux.intel.com, ranjani.sridharan@linux.intel.com, yung-chuan.liao@linux.intel.com, kai.vehmanen@linux.intel.com, linux-kernel@vger.kernel.org, Laurentiu Mihalcea , Paul Olaru , Daniel Baluta Subject: [PATCH 1/2] ASoC: SOF: compress: Move sof_compr_copy functionality Date: Mon, 22 Aug 2022 13:15:01 +0300 Message-Id: <20220822101502.17644-2-laurentiu.mihalcea@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220822101502.17644-1-laurentiu.mihalcea@nxp.com> References: <20220822101502.17644-1-laurentiu.mihalcea@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS4P191CA0018.EURP191.PROD.OUTLOOK.COM (2603:10a6:20b:5d9::14) To VE1PR04MB6607.eurprd04.prod.outlook.com (2603:10a6:803:121::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7a533ff5-6abb-418c-8b9e-08da8426f927 X-MS-TrafficTypeDiagnostic: PA4PR04MB7645:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cWoxbrNwSs6biNRP12QoYFpnvbsjYTIYJ3UktSKbCSOH9z8xEIX4WwXlYUXjfTx4nd9itEZyCrN9Lmdte01eiNtKYqAltiqtEQIt0mdxRwUlUaIOX4vS+yiXFoFn3QcqSeGq2HzLCSOUtGj+OrNm+VJZ5Afrf5Lod1Ms9ZpTBSfTrLWK4ILyQAFssIlrXoQYNGP7mfbkhQW4u4/k+GCBo5Rg4CkRlIzlXDfbfZKkjZW7+YRgg95gcgyVHvuUyKat9z/x0TpHw3k3HQ7si0NqLnsMweq/XEQJZgA0LCfkCqzlvKrp0aoHDxtpcTntW7X/QVY4UGxYixDpa7sX9A+91eQVan6nXzNSUYuOW6ooiC2CVPo7NcoP5Asrkd98EWCC0junvwyT83QTwZ+6gtCVeE/e3xueZzndJnBGGYGPppsXyq3lHzw7QFE8rhJ+TOfabQ2LUl6mzX8ZSkIcZ8IwIcPS8C+4gkgrJV82R2EMm+6z99R/evRPmKRA728ZOTUQH3ZwbcQSPhSByAib275dFLL6dxrIdzqP6Sj6Y7qf1zDEO7V6SawXTmqtcPs1Iy085KtDcDTWAzTuuLYAM072iBExM2uzcUdVsl1Fj49bX3u/SS8DIt9WkBupze7Fp2EPhwsQ7nQhVuliRs6J/wwQvJPLY+V00igpRc9N7KAosK81xQv/B8k4bQihroXxcvwg2bs5UZbXUleZvYer4qlTymW6wS5SDP/ELVpTwSL4xzyoN9Ozs0u9TBD8soQjwPkd X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VE1PR04MB6607.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(39860400002)(376002)(366004)(136003)(346002)(396003)(66476007)(316002)(66556008)(66946007)(8676002)(4326008)(6486002)(38350700002)(38100700002)(54906003)(478600001)(36756003)(5660300002)(41300700001)(8936002)(186003)(1076003)(2616005)(83380400001)(44832011)(6666004)(52116002)(2906002)(6512007)(6506007)(26005)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Zab/w7Oog9iAF3RwE8y4gvwYhrNI7mfVt0CUXz1auZSXW2co8gR9nHE/Tuvo?= =?us-ascii?Q?k4mpYMh0F8FnQ193AAsciVEmBY7twrddMQkzABpu524iqw9aaUzV9ijQxklB?= =?us-ascii?Q?9O2juAkFhld39SgRC9zeRFleLhJmJhqEbR//o0qWUObatjbTjiuby9KfnlF2?= =?us-ascii?Q?fnBiS61RcHGq1p30ju6q/DNDxws86AmyZxOMHPDNXxPcPmQfGg2b7GSJwe8O?= =?us-ascii?Q?6qRbKsJcZnNNPK/e52mmLnRobe87JlY2a2wzKsAVUNcDVkX0KRjrrf7LjfE8?= =?us-ascii?Q?MOz5bY+dFXCn4q7orOtD4g35nMYPeivOPnIHRje3RF6s8DS2i11YQI2D9Hq3?= =?us-ascii?Q?cSGbbYC3NeY0d/AtxEYKxWPACAuVOWa9+0TFtCMQLQLldH4ybfhC8WX49wWu?= =?us-ascii?Q?ArovgrVO6zg6TvYDupPhuBjcddSOS7oceCyrBkfGdory5Si/411fx0jmUCx9?= =?us-ascii?Q?C+dAJVLMFUCqf+vEvm6zUnRsOkGwhQZabUkIfZZdPD5AYl5dBXpB9jLast78?= =?us-ascii?Q?xHS/XpnbRQxHrhx8DE7m0f1s6QMBSp1EDumpnFxbLsLW/4hToFfToj44CIJ0?= =?us-ascii?Q?wYCyyGM/POVNQTOvofXkm/e5IABIS2OqKmqL3QZQjFZ+0NlhzYx0qevIXCkD?= =?us-ascii?Q?UK//s2kRDxYbpTwQTBJzXN62lhii6jXNHwPCH+2e58WFymtu3SnFrruzqjGj?= =?us-ascii?Q?yqYMtW9w0UH5OyZxTerU+87iSLWqNnAU2Gxsn+Q8+P1VkOMW3f9v0mkXCQVc?= =?us-ascii?Q?0Ewe9VbluBOZwWmcCuWDNfzC2C2ESrRatFcr/Hv0KqumQEUdHpQY6ktdH9T2?= =?us-ascii?Q?oJiJZnCeEpt64W2WtLAm9RuER54pOb5amT0PeywPMa4uBsvEzgAWRJSoGhvZ?= =?us-ascii?Q?tpO/y7YG9sDjTeSA2bi8+K4rxeohDFmGqKwIz8uYPG6AJaMCF3X+J9M/ZE1L?= =?us-ascii?Q?oEhi6b5ywHKH+E6DS907zdg1HHPUqRa4ryEUytkHlLLDOI9iA1t5vAtJuKME?= =?us-ascii?Q?TF8UNS1j256b4cbqSutWyU8DgsmDqfu8SzdyWvXgGsyaKeDX0wMMCXVxOdjY?= =?us-ascii?Q?G3giDHqck8T9nyvqspUbSzz9G+1/u+AN41Po5TRuBLX0yoA/od7qxgTBVuqh?= =?us-ascii?Q?GJedZOuwNzfxwmLA4+3fJgyGC0oxhsIHE9XSN5ijrb2vGtvEwIsYoNmYrRB9?= =?us-ascii?Q?BvcCznJSLqpuEeJoHkG8/eQmbJXTI58J2AOX3AHOllvnQqaC00QpKnRpyKrg?= =?us-ascii?Q?q8n0pc+3NVluYdDj9K1GWeGmdOxDlBheVi0HBoF6155mG8/opKyQd7C41ZSr?= =?us-ascii?Q?h7J9ATcC4EhnFnWG0DQwV4Bee458Jlf282h4UzzxC5wbJ/1hDMwEajQRI5qZ?= =?us-ascii?Q?oe1u1U8hziSrdtIBShBURUgevZZ7CS9AGTXTd4IAJCVFIC0Hbi+hwh7QRmFr?= =?us-ascii?Q?HEL6YbQkaMJEHNAhiN/TwR0c6QlM5myZ84inS22+Hjrw2pDD5uE0ecATNIEp?= =?us-ascii?Q?WqUPuG7eOsT1psrgo3A+5sIQOeduJegA6YXQIDDzvyYYgsbJ82fobsb3qbwt?= =?us-ascii?Q?z72dCEs+4MjTDEp/IdC7F4av3ECuAi85Zf2IuIyzmSZOZS+pCIa//rO34FpT?= =?us-ascii?Q?Zg=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7a533ff5-6abb-418c-8b9e-08da8426f927 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6607.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2022 10:13:35.1182 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: EgEv85v5a8ig2tDTci+CCmk90cxILpqb3o535G0Ed5sjh8GhbUTkmDjrBBWJLbdZaUsAL/XzQ2gs5OjK+rwQRveQzi4LfHkwyM3eshsUtdw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7645 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Since we're preparing to add support for compress capture, we need to move the content of sof_compr_copy into a separate function which handles the playback direction just like the initial sof_compr_copy. Reviewed-by: Paul Olaru Reviewed-by: Daniel Baluta Signed-off-by: Laurentiu Mihalcea --- sound/soc/sof/compress.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/sound/soc/sof/compress.c b/sound/soc/sof/compress.c index 174b3d8e67dd..1b0b8b43723b 100644 --- a/sound/soc/sof/compress.c +++ b/sound/soc/sof/compress.c @@ -297,18 +297,13 @@ static int sof_compr_trigger(struct snd_soc_component= *component, &reply, sizeof(reply)); } =20 -static int sof_compr_copy(struct snd_soc_component *component, - struct snd_compr_stream *cstream, - char __user *buf, size_t count) +static int sof_compr_copy_playback(struct snd_compr_runtime *rtd, + char __user *buf, size_t count) { - struct snd_compr_runtime *rtd =3D cstream->runtime; - unsigned int offset, n; void *ptr; + unsigned int offset, n; int ret; =20 - if (count > rtd->buffer_size) - count =3D rtd->buffer_size; - div_u64_rem(rtd->total_bytes_available, rtd->buffer_size, &offset); ptr =3D rtd->dma_area + offset; n =3D rtd->buffer_size - offset; @@ -323,6 +318,18 @@ static int sof_compr_copy(struct snd_soc_component *co= mponent, return count - ret; } =20 +static int sof_compr_copy(struct snd_soc_component *component, + struct snd_compr_stream *cstream, + char __user *buf, size_t count) +{ + struct snd_compr_runtime *rtd =3D cstream->runtime; + + if (count > rtd->buffer_size) + count =3D rtd->buffer_size; + + return sof_compr_copy_playback(rtd, buf, count); +} + static int sof_compr_pointer(struct snd_soc_component *component, struct snd_compr_stream *cstream, struct snd_compr_tstamp *tstamp) --=20 2.34.1 From nobody Wed Apr 8 08:01:58 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 20E4AC28D13 for ; Mon, 22 Aug 2022 10:13:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234637AbiHVKNr (ORCPT ); Mon, 22 Aug 2022 06:13:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41424 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234616AbiHVKNl (ORCPT ); Mon, 22 Aug 2022 06:13:41 -0400 Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80058.outbound.protection.outlook.com [40.107.8.58]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 089A1AE50 for ; Mon, 22 Aug 2022 03:13:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PzII8+pFHj7hhHukhAH1I85kcXSmP5Hwb/SyxSCMQpy3WVThH2kUz1OGQGnzp66m4ULQLQKCG7LmaTDi0A9RJa6L92Gd+J8qD3p93pIetqheHRD51NRRBq0i/AibtDfabktIT9kX0Q3f9GzIMCkOsQWb5frp1f0F5tEALDW/MEB83qz+FMmx/L+iCZrm/swtnQ9aJiH3wBa+YVhyS8+2YEGE01WTR/7d6baAeYxLlL0ojSXC3/khyLlEOB4fDDwtCRG9XKuXR/+oAIvHojm0AINNiH9IjqfTxJCNRzRNpcySwkxtv/2y5nXa3nA8aCthLapOii1c8tnCv8Wk5k3wFw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/2E0j9uKwTJsMBnA3nxh+3bjsjc275wQ3D0O2k+HSVk=; b=JqfuKZp//tzIIbbPbvJJZUcrpD/GNwGhQL5CrD0ncxIxQFNC97eDdPp9ufyNiSirUqQrHzewfguGynOC/BaYH0mHY8hMwDaOPZ2JIK34Br+pD2499WgKov1bFSVX1eFRuKnFbDWGCd9j+L2OVtRUZplSalirbUqBt3aDeR5KyRP8aUTWSZo/n/6wINqMleX2m0l301dRxt9BjOFnP1KUSr2rZNQkzgFnV9DHLzLgwpnfYaqmpkxHhJdzBfgl+PFE2sitNe5oTP9Qzbgs4YefxxmDLPNhDn9g2+aTRTEtVlNsQZKyzO52ZkWJD4ExD3i6zOK9K98lQwxd+8p3rkpWzA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/2E0j9uKwTJsMBnA3nxh+3bjsjc275wQ3D0O2k+HSVk=; b=EDrjTeDRZn1vJaiiebDvgHfPGNN1SgRU7h9qdjPuKqkuwUixGmKeajcpo3TsStHVyPm7KJmGY7cIq4JV8KSikYqU8wKDby5Sprwo1XiO3IHRqwHNF84uJSP28gENYMaLCHFmtgB23gAsPF00hVrrYmIu/exRH2CiMh0cjVUZQ8M= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from VE1PR04MB6607.eurprd04.prod.outlook.com (2603:10a6:803:121::19) by PA4PR04MB7645.eurprd04.prod.outlook.com (2603:10a6:102:eb::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5546.22; Mon, 22 Aug 2022 10:13:36 +0000 Received: from VE1PR04MB6607.eurprd04.prod.outlook.com ([fe80::71f1:4e4c:c9c:bd9e]) by VE1PR04MB6607.eurprd04.prod.outlook.com ([fe80::71f1:4e4c:c9c:bd9e%4]) with mapi id 15.20.5546.022; Mon, 22 Aug 2022 10:13:36 +0000 From: Laurentiu Mihalcea To: alsa-devel@alsa-project.org, broonie@kernel.org Cc: pierre-louis.bossart@linux.intel.com, lgirdwood@gmail.com, peter.ujfalusi@linux.intel.com, ranjani.sridharan@linux.intel.com, yung-chuan.liao@linux.intel.com, kai.vehmanen@linux.intel.com, linux-kernel@vger.kernel.org, Laurentiu Mihalcea , Paul Olaru , Daniel Baluta Subject: [PATCH 2/2] ASoC: SOF: compress: Add copy function for capture case Date: Mon, 22 Aug 2022 13:15:02 +0300 Message-Id: <20220822101502.17644-3-laurentiu.mihalcea@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220822101502.17644-1-laurentiu.mihalcea@nxp.com> References: <20220822101502.17644-1-laurentiu.mihalcea@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS4P191CA0018.EURP191.PROD.OUTLOOK.COM (2603:10a6:20b:5d9::14) To VE1PR04MB6607.eurprd04.prod.outlook.com (2603:10a6:803:121::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: dc12e1c0-3c9b-42e2-6ddd-08da8426f9ce X-MS-TrafficTypeDiagnostic: PA4PR04MB7645:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wHWmIZoOeDXQzkrYWZVaKw4BpFgFu2s5HQg8Nc4xz7sRr1W/8C59pDx+FG9rZfLUevx0vQQG54J8l+fZTtje32TyoAbzh5ymlANRYEjx+hX49zhUQ9CuK310QLf9siIDWGuhdbqv62aiEfCSLrUTdaOUmdA/Irw3jTDEVzyLXM877/fchelo5FTerfAFUTFq+FDmTdvGaWTmjv6KJv4JZd+w1QSUVum3oj+TPZSPgtS1GI16yu9UvquCcuKrrnfV7KhYuw/HHRx+QIKB7mFLlWwcsYur2Lsx88SemX/hkqBkG7TGGUA3z03rzpXA74OIDqBBIFfI5K2i50eqTk1BdyHp1I6nE8dboiHqyb1jqBTHQ2EJYLi8VeyMSRJtNW8s3/nVaqLLowPs1GZY9bgvBAD7q0s3v039Zm5JRTJcVQM0jytuErYTiQyTPQOFQzE7RaT0VNds4DKp0mYBDJ/TV0meEOq9GcQDwKEykeuiLicXG2xVN3lx1jC0ZiReIckjwNLg7bVCUBs2bLAvVradFDJWOcQWN/D1yB4REtizCbkv34wDArAVEKKW8pi6Zd1OKA5kqpEjp52Hl8xEZlHjtqvXLhL5oMXlHRAx4C+QJl/NayhZhLJZINALFMlLx8AgSoqguPtoTD9lhvsmKQSZt2yTzjjj7M0QYSwWwP4VctyFKkB+TiNXs+CBYPZb67fIwh+dANGlhlZODXHaUIi/bbK/zCqLHq98JIeK3ptHAyQ3F2z8/0txfJUOuVYHMwwy X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VE1PR04MB6607.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(39860400002)(376002)(366004)(136003)(346002)(396003)(66476007)(316002)(66556008)(66946007)(8676002)(4326008)(6486002)(38350700002)(38100700002)(54906003)(478600001)(36756003)(5660300002)(41300700001)(8936002)(186003)(1076003)(2616005)(83380400001)(44832011)(6666004)(52116002)(2906002)(6512007)(6506007)(26005)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?InY/EczyKgubmv6ThXqnU7FV97WVwV05sBGQbEEQsMUFbf481XjaDEz2gVnY?= =?us-ascii?Q?aYQLxYUQnXHGGq3Z3DSJBga24yLDKTBQD7yE7eFneM/u1GswJWdR6CyL3II7?= =?us-ascii?Q?cNCRNBWR2rJUbwu3uHRDejZvYWXEazsDX6aI+o0xdwx9MXdCl9MMH3VOIKc2?= =?us-ascii?Q?GkDfcMUoB5vWuO1DhXzTTDQySPkejZnKhjiWPk1NhahY+eG/VSa4smJrMNod?= =?us-ascii?Q?eEZrIjBkl6MHHW5goEbAq1iEayym7XF3eiLBwq2/EH7oeLkFldhfLJclU4r6?= =?us-ascii?Q?t6EHtRRpBsXka+oDkGdwhY5JMeLvoMhcqDQL+sJVUpd7bbjef8Kj3yyGsKRt?= =?us-ascii?Q?KDtSQb0bEjYzEwV/m1dVDZqnEfgCGPa2TTHpNYGnpi4Ntnqy27bHJHqeiOpL?= =?us-ascii?Q?rAe+3dQjBqr1UeGZmFDlh6trE+PXUr5VONSHBszsSPK+AXOCns2OvJY6/Krv?= =?us-ascii?Q?YTW2CVkTB6UJTJK1Qhy+BG/qosHba7+pq6sdWfn8nt2JBTe+0Tv2YA1qFY2q?= =?us-ascii?Q?HLG1JYzZljp7QqPmlb4cUkZ6ri1BvpqBli7wLMqAYMtwBeNgaY3FuXDT1G9Z?= =?us-ascii?Q?s9Lj/GKgi5EfyOdxElMhnJLV7zXKslC3rkhEHn3buh7OLfLxp1qedxfHcWPU?= =?us-ascii?Q?ZkVuOqmph6EPcPvcCT2WMl9yxP439cxKqlaa1Jl+M+6DyYZu7Q1Pgo32msGF?= =?us-ascii?Q?EzeKBQnFgNVgkMIO1eA8jdndS6wYItFGsSsohujdqO3GfM/fGLaMNb2dkAj6?= =?us-ascii?Q?EG9KJlhRrr8+lSa7wQ+1PfeBq0/8BUA0p3vZTP3GuHyuqy/Ma+GFG6tznfD+?= =?us-ascii?Q?FXPzR/zrNikM0MZgL4NxolbewsNyHF7m2N/BP5x1dFU6ARxnms1ZOAfFkLpk?= =?us-ascii?Q?FHZ1wzgPq67TDx8nUHA19/tW+GI8fIblL3mH6sDCA1/ckSZjvz1mOb/HqJws?= =?us-ascii?Q?rJ1zhcFNLxe395uls0pAOZtCc2VXy9SbHZoN0lNW0fkjn10l8FMpKy9ru/XM?= =?us-ascii?Q?AkbX/p6cvAh/JG2yAREbojdUxETvDQrBbmV46/ofwb2LEvUK/N0LExQ8V3Zi?= =?us-ascii?Q?7Pr/Fab9fGZmHcku2ksg4YzoNQi2Y8DlhHPUtxghPM2yA6XgyhaKpvAMRkIK?= =?us-ascii?Q?yY2Qy8MjmtSiMhAFykas8IDDmyU81MzUcz5JBt6BfvWINqDjinBGdRsN6HRB?= =?us-ascii?Q?dtkdFWPEfXNY99ObRkvh2KJiJ2FiO0WQg/i0OIxdTzv+A0NkqViZedXbP/HA?= =?us-ascii?Q?fMoZMmGs90v0G7n4dNSYRo0iX91hEgSLdNa8fsOVCFHatz72cEWZEuM6Pdzc?= =?us-ascii?Q?LwfqCnmywqizsisA7wLQ8JuV5iRY/VQanTMFxC72jNwJWRAWJW4kTR/BQFqR?= =?us-ascii?Q?fGT8BkR/U29HVbVmiwM+QTvTzAkIP9eDINlh1Bg7jPm5gS6mnqUxPIMZirqL?= =?us-ascii?Q?SQVM9jTcbMMuTTkq42veLjeAswLyxwj/tBp/PMZVkmRbKdlXZTO3YzQwqKPp?= =?us-ascii?Q?zzQeoFRqb11xJVgOPnP6t7J9IoSR+jxyuyxq3qxaLxyb00vwNfZ5Glk2IG/G?= =?us-ascii?Q?h9RF2MaZr4I4Yor8y3XXVonw5XYs3b0zoUdK+cUUG6kLEtq/rGFE2D8JdE+y?= =?us-ascii?Q?cw=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: dc12e1c0-3c9b-42e2-6ddd-08da8426f9ce X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6607.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2022 10:13:36.2275 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: suF88xajw6ZQlC7Qlwoolr2NNW2UWI2dScXYB5w6QCUehf9I8XTp1qbffnoB51KEVOaOuTCtJMJ+ntVCHL2CYCr5z1Y1MX0GWrE8Xi6K0t8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7645 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Added a new copy function used to copy data to user buffer in the case of compress capture. Reviewed-by: Paul Olaru Reviewed-by: Daniel Baluta Signed-off-by: Laurentiu Mihalcea --- sound/soc/sof/compress.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/sound/soc/sof/compress.c b/sound/soc/sof/compress.c index 1b0b8b43723b..81202e4b7cb9 100644 --- a/sound/soc/sof/compress.c +++ b/sound/soc/sof/compress.c @@ -318,6 +318,27 @@ static int sof_compr_copy_playback(struct snd_compr_ru= ntime *rtd, return count - ret; } =20 +static int sof_compr_copy_capture(struct snd_compr_runtime *rtd, + char __user *buf, size_t count) +{ + void *ptr; + unsigned int offset, n; + int ret; + + div_u64_rem(rtd->total_bytes_transferred, rtd->buffer_size, &offset); + ptr =3D rtd->dma_area + offset; + n =3D rtd->buffer_size - offset; + + if (count < n) { + ret =3D copy_to_user(buf, ptr, count); + } else { + ret =3D copy_to_user(buf, ptr, n); + ret +=3D copy_to_user(buf + n, rtd->dma_area, count - n); + } + + return count - ret; +} + static int sof_compr_copy(struct snd_soc_component *component, struct snd_compr_stream *cstream, char __user *buf, size_t count) @@ -327,7 +348,10 @@ static int sof_compr_copy(struct snd_soc_component *co= mponent, if (count > rtd->buffer_size) count =3D rtd->buffer_size; =20 - return sof_compr_copy_playback(rtd, buf, count); + if (cstream->direction =3D=3D SND_COMPRESS_PLAYBACK) + return sof_compr_copy_playback(rtd, buf, count); + else + return sof_compr_copy_capture(rtd, buf, count); } =20 static int sof_compr_pointer(struct snd_soc_component *component, --=20 2.34.1