Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp593089imm; Wed, 6 Jun 2018 02:48:29 -0700 (PDT) X-Google-Smtp-Source: ADUXVKL8iabXJNnq/9Xv+HI1kxOF6/nMGSRnqAjaBpseE1jY3CFoTpSOGHCdgNpkwgqS1tn8W/C7 X-Received: by 2002:a62:660a:: with SMTP id a10-v6mr1759125pfc.156.1528278509930; Wed, 06 Jun 2018 02:48:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1528278509; cv=none; d=google.com; s=arc-20160816; b=Oogomf+FyJ/GiHNMejUkq/CF0Su1ib6dx+fPOMsrCKQBhzgOaikuvXo+cb+CcHyrs7 01OsNOnuE7DnmYd3tAmKx58ChKGR07y5gk+5IN5w6tntLfov/HJIugLg4Ahxi5mnwkOr tS0cAd8phUyTFXNAoqRg/Wg6CBXz+SvWQZ6wC4PrF/4/sCV8NidA5PujjSSV9hc6EyPW fKYREyjxMhYKDBTryGCc5wxI4rRG9HHd6P9cnwe2fUPUK+8Cy02Za9smzUyh5H6SV9rG Am7hvybuj1BYH58fK1peEF09mNtizTcKb6hG9V+iYP35alxhU6T/DkfWCwyJRZKEhEqt Z4mA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:subject:cc:to:from:message-id :date:arc-authentication-results; bh=9ihAFBZXBaZgMdyGHIwchtLTb1q8YRbc4WmZnLiAgyI=; b=MX+3a3OJgh672C3aHWOvtBNiTl9I53QNjcALajdjiO/hIRGFoSVbWXdC0A/5hyAHdo MDeznPGNRpMcjpr0C98Wayxg2xnkbNhBJ7yRO41nbMSHxN0bEEXSxofdW6eKKknaDnOj QN8EpEqbOqO33v63M978TCFN4vpNxtWHcVmV1GQJKFLGKPNuDQEuvRlifyJ/CNI69kRo mMLjkzPfu3nrBPhjPRH+VDsKbGjulDeOtl1kLOY6pgCQuXU2pKnYIrYz0FEiDPdDXv+o OJSEanq6jyG8UbaG1wlISOadchMJH5EmXOCS65OE6hJkRMMuyv1p4zXrx+BYCDeDu/No 5yOQ== 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 13-v6si23910964ple.274.2018.06.06.02.48.15; Wed, 06 Jun 2018 02:48:29 -0700 (PDT) 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932408AbeFFJrh (ORCPT + 99 others); Wed, 6 Jun 2018 05:47:37 -0400 Received: from mx2.suse.de ([195.135.220.15]:48772 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932303AbeFFJrX (ORCPT ); Wed, 6 Jun 2018 05:47:23 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (charybdis-ext-too.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id ED99AAC55; Wed, 6 Jun 2018 09:47:21 +0000 (UTC) Date: Wed, 06 Jun 2018 11:47:21 +0200 Message-ID: From: Takashi Iwai To: Arnaud Pouliquen Cc: Mark Brown , Olivier MOYSAN , "alsa-devel@alsa-project.org" , "mark.rutland@arm.com" , "rmk@arm.linux.org.uk" , "lgirdwood@gmail.com" , "mcoquelin.stm32@gmail.com" , "robh@kernel.org" , "linux-arm-kernel@lists.infradead.org" , Alexandre TORGUE , Benjamin GAIGNARD , "kernel@stlinux.com" , "jsarha@ti.com" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" Subject: Re: [alsa-devel] [PATCH 0/3] ASoC: stm32: sai: add support of iec958 controls In-Reply-To: References: <1520958428-10930-1-git-send-email-olivier.moysan@st.com> <20180417111733.GG8973@sirena.org.uk> <2ae6c5b6-872a-9aaa-6ca4-e29adb7c8bc0@st.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 Emacs/25.3 (x86_64-suse-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 06 Jun 2018 11:31:45 +0200, Arnaud Pouliquen wrote: > > > > On 06/05/2018 08:29 PM, Takashi Iwai wrote: > > On Tue, 05 Jun 2018 17:50:57 +0200, > > Arnaud Pouliquen wrote: > >> > >> Hi Takashi, > >> > >> On 04/17/2018 01:17 PM, Mark Brown wrote: > >> > On Tue, Apr 17, 2018 at 08:29:17AM +0000, Olivier MOYSAN wrote: > >> > > >> >> I guess the blocking patch in this patchset is the patch "add IEC958 > >> >> channel status control helper". This patch has been reviewed several > >> >> times, but did not get a ack so far. > >> >> If you think these helpers will not be merged, I will reintegrate the > >> >> corresponding code in stm driver. > >> >> Please let me know, if I need to prepare a v2 without helpers, or if we > >> >> can go further in the review of iec helpers patch ? > >> > > >> > I don't mind either way but you're right here, I'm waiting for Takashi > >> > to review the first patch.  I'd probably be OK with it just integrated > >> > into the driver if we have to go that way though. > >> > >> Gentlemen reminder for this patch set. We would appreciate to have your > >> feedback on iec helper. > >> From our point of view it could be useful to have a generic management > >> of the iec controls based on helpers instead of redefining them in DAIs. > >> Having the same behavior for these controls could be useful to ensure > >> coherence of the control management used by application (for instance > >> Gstreamer uses it to determine iec raw mode capability for iec61937 streams) > > > > Oh sorry for the late reply, I've totally overlooked the thread. > > > > And, another sorry: the patchset doesn't look convincing enough to > > me. > > > > First off, the provided API definition appears somewhat > > unconventional, the mixture of the ops, the static data and the > > dynamic data. > Sorry i can't figure out your point. I suppose that you speak about the > snd_pcm_iec958_params. > what would be a more conventional API? Imagine you'd want to put a const to the data passed to the API for hardening. The current struct is a mixture of static and dynamic data. > > Moreover, this is only for your driver, ATM.  > It is also compatible with the sound/sti driver, even if we does not > propose patch yet. We also plan to propose an implementation, for the > HDMI_codec that would need to export a control to allow none-audio mode. > > >If it were an API that > > does clean up the already existing usages, I'd happily apply it. There > > are lots of drivers creating and controlling the IEC958 ctls even > > now. > > > > Also, the patchset requires more fine-tuning, in anyways.  The changes > > in create_iec958_consumre() are basically irrelevant, should be split > > off as an individual fix.  it is linked to the control, as not possible in existing implementation > (rate and width are get from hwparam or runtime). But no problem we can > split it in a separate patch. > > Also, the new function doesn't create the > > "XXX Mask" controls.  And the byte comparison should be replaced with > > memcmp(), etc, etc. > Yes mask are missing, can be added. For the rest could you comment > directly in code? i suppose that you want to replace the for loops by > memcmp, memcpy... Right. > > So, please proceed rather with the open codes for now.  If you can > > provide a patch that cleans up the *multiple* driver codes, again, > > I'll happily take it.  But it can be done anytime later, too. > Not simple to clean up the other drivers as this control is a PCM > control, that is mainly implemented as a mixer or card control. > This means that it should be registered on the pcm_new in CPU DAI or in > the DAI codec, to be able to bind it to the PCM device. > Inpact is not straigthforward as this could generate regression on driver. Yes, and that's my point. The application of API is relatively limited -- although the API itself has nothing to do with ASoC at all. > For now We can add the clean up on the sti driver based on this helper, > and we are working on the HDMI_codec, we could also use this helper to > export the control.... > > So if you estimate that it is interesting to purchase on this helper we > can try to come back with a patch set that implements the helper for > the 3 drivers. Right. Basically there are two cases we add a new API: 1. It's absolutely new and nothing else can do it 2. API simplifies the whole tree, not only one you're trying to add. And in this case, let's prove 2 at first, that the API *is* actually useful in multiple situations we already have. Then I'll happily ack for that. More drivers cleanup, better. At best, think of more range above ASoC, as you're proposing ALSA core API, not the ASoC one. > The other option, is that we drop the helpers, and implement the control > directly in our drivers. This is of course another, maybe easier option. > Please just tell us if we should continue to propose the helpers or not. I have no preference over two ways, but am only interested in the resulting patches :) thanks, Takashi