Received: by 2002:a05:7412:6592:b0:d7:7d3a:4fe2 with SMTP id m18csp2581028rdg; Mon, 14 Aug 2023 07:08:42 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHEBLBV6iBy0bkNF8IGsrnDWIFPXBpu2FutjyHGiVKUcR0mzbJBDA/fmpBFgIdDgcZsosFi X-Received: by 2002:a17:906:c1:b0:99c:55a9:59da with SMTP id 1-20020a17090600c100b0099c55a959damr7786382eji.44.1692022122317; Mon, 14 Aug 2023 07:08:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1692022122; cv=none; d=google.com; s=arc-20160816; b=w4SnZARxSKPRZUWkrWJoyqug8EXPQSlJRJeVVrs4J8BJ7sEiAorK73gtpdvv8ebm+j tgRj/FhwwGPYyf/8YQpN5YQJBIB3mvt+2TmP9qFShz+m7KU/uv+khwpusqMhBp29yiUs 61KhBxzgEP/QtbORjVm8xBHYqD8Wxrk7GuJx5Y7Hrc+sxMRd109DsBHYfXPO0vMfnQYQ 2Mc6/sk/YeszHHs/mLtzhFzXZ6bX9HoGa8/dTVPH0u4M8zBzxPxZMBrnJh/N+yGsC1ex EbyNFesB/oq3YIOwhExZjUnZZXk3rV7OLR1RBCRD5DffEXc9aqjc7NmZMxuaLqbdzLx1 o1/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:user-agent:references:in-reply-to :subject:cc:to:from:message-id:date:dkim-signature:dkim-signature; bh=CkFZHWRTGqzX66j8p6Of71WuOMJLmAbWyoeXb4YfaPg=; fh=oECAAwIONYduMGaYWMmzhR/r1eOwQAkVus0DdYSmWHI=; b=os30sqaCYez3TJ7yFaJWVvadzv6nL2ZhoV44FERnGxsMJrqMYuo3fDCN9/x+tOw5kT 6kj2e6mpK+V2KpfnhlvmYG69EoDD4Qag4hkg72Yl0heAdgS1NFlJFBTOc7Lm6yEtxhaT +pglJZBmgLDmJm2nLJLBd2uLM9GaXKrwuZBps+SDxNvH+GzBXj8NTMIhET9Y6S4+Hzw2 PTFvwP25abSrICh//hTCkBK3F8K0Gezo01nklSUPvE+H+97MrKN+U4oT+O2O3j/jir6S bR972lq6Xw5KpPpSkvSRM+ZUSO2mVpTKXo+IA7fMSa2C3teWI6opybe0hBviIXKMSeOo Itiw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=NeU2N5Dm; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=2hJ5DMoJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z2-20020a170906944200b009888665e53fsi7910977ejx.190.2023.08.14.07.08.17; Mon, 14 Aug 2023 07:08:42 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=NeU2N5Dm; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=2hJ5DMoJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231848AbjHNMSR (ORCPT + 99 others); Mon, 14 Aug 2023 08:18:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52674 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229676AbjHNMRp (ORCPT ); Mon, 14 Aug 2023 08:17:45 -0400 Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2001:67c:2178:6::1c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ABBCAD1; Mon, 14 Aug 2023 05:17:44 -0700 (PDT) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 4A67421992; Mon, 14 Aug 2023 12:17:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1692015463; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=CkFZHWRTGqzX66j8p6Of71WuOMJLmAbWyoeXb4YfaPg=; b=NeU2N5Dmj4/v0AqmXUnQGKDgWODHUjvrXN+/ya4QfbC4nwb+UZ6wmis/d+whJjUIYCAWE7 O7OJ3fZD0q9StP50FDVbrZyS8UcqLxC7bDRFXLBuhPNEgfcMZeqNpe1isFCCMQyaunCUtX LmQrvbCHSEvml8ZKrlXCId8uavhE++U= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1692015463; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=CkFZHWRTGqzX66j8p6Of71WuOMJLmAbWyoeXb4YfaPg=; b=2hJ5DMoJjW3jk82oRrE9or7ZJnXBHUWxxlA6x3sPPQooN7MOSmnsVD/abSHafAo24qff3V zQCMM+9DxIPPEECA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 14F2F138EE; Mon, 14 Aug 2023 12:17:43 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 9YsbBGcb2mS8OgAAMHmgww (envelope-from ); Mon, 14 Aug 2023 12:17:43 +0000 Date: Mon, 14 Aug 2023 14:17:42 +0200 Message-ID: <87350l3jix.wl-tiwai@suse.de> From: Takashi Iwai To: Ismael Luceno Cc: alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, Bluecherry Maintainers , Anton Sviridenko , Andrey Utkin , Mauro Carvalho Chehab , linux-media@vger.kernel.org Subject: Re: [PATCH 17/25] media: solo6x10: Convert to generic PCM copy ops In-Reply-To: References: <20230814115523.15279-1-tiwai@suse.de> <20230814115523.15279-18-tiwai@suse.de> User-Agent: Wanderlust/2.15.9 (Almost Unreal) Emacs/27.2 Mule/6.0 MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 14 Aug 2023 14:15:18 +0200, Ismael Luceno wrote: > > On 14/Aug/2023 13:55, Takashi Iwai wrote: > > This patch converts the solo6x10 driver code to use the new unified > > PCM copy callback. It's a straightforward conversion from *_user() to > > *_iter() variants. As copy_to_iter() updates the internal offest at > > each write, we can drop the dst counter update in the loop, too. > > > > Note that copy_from/to_iter() returns the copied bytes, hence the > > error condition is inverted from copy_from/to_user(). > > > > Cc: Bluecherry Maintainers > > Cc: Anton Sviridenko > > Cc: Andrey Utkin > > Cc: Ismael Luceno > > Cc: Mauro Carvalho Chehab > > Cc: linux-media@vger.kernel.org > > Signed-off-by: Takashi Iwai > > --- > > drivers/media/pci/solo6x10/solo6x10-g723.c | 38 +++------------------- > > 1 file changed, 5 insertions(+), 33 deletions(-) > > > > diff --git a/drivers/media/pci/solo6x10/solo6x10-g723.c b/drivers/media/pci/solo6x10/solo6x10-g723.c > > index 6cebad665565..aceacb822cab 100644 > > --- a/drivers/media/pci/solo6x10/solo6x10-g723.c > > +++ b/drivers/media/pci/solo6x10/solo6x10-g723.c > > @@ -204,9 +204,9 @@ static snd_pcm_uframes_t snd_solo_pcm_pointer(struct snd_pcm_substream *ss) > > return idx * G723_FRAMES_PER_PAGE; > > } > > > > -static int snd_solo_pcm_copy_user(struct snd_pcm_substream *ss, int channel, > > - unsigned long pos, void __user *dst, > > - unsigned long count) > > +static int snd_solo_pcm_copy(struct snd_pcm_substream *ss, int channel, > > + unsigned long pos, struct iov_iter *dst, > > + unsigned long count) > > { > > struct solo_snd_pcm *solo_pcm = snd_pcm_substream_chip(ss); > > struct solo_dev *solo_dev = solo_pcm->solo_dev; > > @@ -223,35 +223,8 @@ static int snd_solo_pcm_copy_user(struct snd_pcm_substream *ss, int channel, > > if (err) > > return err; > > > > - if (copy_to_user(dst, solo_pcm->g723_buf, G723_PERIOD_BYTES)) > > + if (!copy_to_iter(solo_pcm->g723_buf, G723_PERIOD_BYTES, dst)) > > return -EFAULT; > > - dst += G723_PERIOD_BYTES; > > - } > > - > > - return 0; > > -} > > - > > -static int snd_solo_pcm_copy_kernel(struct snd_pcm_substream *ss, int channel, > > - unsigned long pos, void *dst, > > - unsigned long count) > > -{ > > - struct solo_snd_pcm *solo_pcm = snd_pcm_substream_chip(ss); > > - struct solo_dev *solo_dev = solo_pcm->solo_dev; > > - int err, i; > > - > > - for (i = 0; i < (count / G723_FRAMES_PER_PAGE); i++) { > > - int page = (pos / G723_FRAMES_PER_PAGE) + i; > > - > > - err = solo_p2m_dma_t(solo_dev, 0, solo_pcm->g723_dma, > > - SOLO_G723_EXT_ADDR(solo_dev) + > > - (page * G723_PERIOD_BLOCK) + > > - (ss->number * G723_PERIOD_BYTES), > > - G723_PERIOD_BYTES, 0, 0); > > - if (err) > > - return err; > > - > > - memcpy(dst, solo_pcm->g723_buf, G723_PERIOD_BYTES); > > - dst += G723_PERIOD_BYTES; > > } > > > > return 0; > > @@ -263,8 +236,7 @@ static const struct snd_pcm_ops snd_solo_pcm_ops = { > > .prepare = snd_solo_pcm_prepare, > > .trigger = snd_solo_pcm_trigger, > > .pointer = snd_solo_pcm_pointer, > > - .copy_user = snd_solo_pcm_copy_user, > > - .copy_kernel = snd_solo_pcm_copy_kernel, > > + .copy = snd_solo_pcm_copy, > > }; > > > > static int snd_solo_capture_volume_info(struct snd_kcontrol *kcontrol, > > -- > > 2.35.3 > > > > Signed-off-by: Ismael Luceno You meant Reviewed-by or Acked-by? Signed-off-by is a tag used when you carry a patch. thanks, Takashi