Received: by 10.213.65.68 with SMTP id h4csp3773322imn; Tue, 3 Apr 2018 10:23:16 -0700 (PDT) X-Google-Smtp-Source: AIpwx4/Zm0KKq5OjU4fn0PsEESiaVpFvVw6XWbAXmZkThnadGlJyIa6TMbJ7PsjduTDFFJ3DvHQ1 X-Received: by 10.101.74.69 with SMTP id a5mr9990793pgu.32.1522776196656; Tue, 03 Apr 2018 10:23:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522776196; cv=none; d=google.com; s=arc-20160816; b=vIidvRo7ucQBP8KGuchYo/85d99jGo6UbDa666Mz/bmBTksyWL0MAC4yNPWRXhrm6X 3MBLKeZkZvPmHee839XaFrERahM4PuJT8TjPOH4s/Y20dNYU63XSllpRRlnpRtBq8jYy YJ9Nhrk+1CiYt0sSQmKft9oPbskx3wF+B9oFw5C967c84olJCL4obPMB5LOv1DFZCTT+ yRy+SH+cBCY2mtG4Jul6S4OrKmNfL8Y2h3OQAiybsw9B3MwYQI8kpXYhoSWlu8HZNkNx 4Dv7NJxUmQAjN1IYJdpWbV+KnAniv9byIySBos4RTGO6ErlOOg7pFOkRwuLXrXkXbiJm Hx2A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:arc-authentication-results; bh=u6CKaxuJUAtLG5LLIG8xWJrP0mRKJBGlF6TPDq4GdY4=; b=tWVM8zf9TGi6mAJfQK0Rb2MTcV19wpDbk4716Ef4QDCGt7AZ1vmvYuyPv8bULsrGI2 mUdo2CILpHxArS2wlnvP4RUlxRVs29j5AXQMTEeWAEYtarBP6696YxLuzLSoPapMNwaK /GKEnfOxzZMdFLbo57DrrP+ORQpfdIsj43CRobwiyb6QmtJ9nw21p0Dxj5L+g8qlv0ye 2Xjx6SrlvHjVnggCRVfvC+jYVHYtvfiFiAWhW7l6Lh0m2zgZ5HSKbNjpaXJ+JSIaBbhx OvyNFaOFZ+pWe/2GeOzogmaUxHYQ5DI69U6+jqpKhv0Q4uSDMT7JLBAyf0iUr3ZM2EVJ +imA== 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 67-v6si979981pla.612.2018.04.03.10.23.02; Tue, 03 Apr 2018 10:23:16 -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 S1752300AbeDCRVm (ORCPT + 99 others); Tue, 3 Apr 2018 13:21:42 -0400 Received: from mga18.intel.com ([134.134.136.126]:61778 "EHLO mga18.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751926AbeDCRVl (ORCPT ); Tue, 3 Apr 2018 13:21:41 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Apr 2018 10:21:40 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,402,1517904000"; d="scan'208";a="217210354" Received: from rbangin-mobl.gar.corp.intel.com (HELO [10.249.2.114]) ([10.249.2.114]) by fmsmga006.fm.intel.com with ESMTP; 03 Apr 2018 10:21:39 -0700 Subject: Re: [alsa-devel] [PATCH v3 0/2] ASoC: topology: Improve parsing hw_configs To: Kirill Marinushkin Cc: alsa-devel@alsa-project.org, Takashi Iwai , Pan Xiuli , linux-kernel@vger.kernel.org, Liam Girdwood , Mark Brown References: <20180327205632.3677-1-k.marinushkin@gmail.com> <17f0767a-2dea-92dd-a88e-a3f3e670d0d2@gmail.com> <461bbabf-7c36-1361-8f66-5abbe3c7f4d8@linux.intel.com> From: Pierre-Louis Bossart Message-ID: <260f1850-37f2-fffa-fb33-4b5ff823ba0b@linux.intel.com> Date: Tue, 3 Apr 2018 12:21:39 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 04/03/2018 12:15 AM, Kirill Marinushkin wrote: > On 04/03/18 02:57, Pierre-Louis Bossart wrote: >> >> On 04/02/2018 04:17 PM, Kirill Marinushkin wrote: >>> Hello Pierre-Louis, >>> >>> I explicitly clarified with Takashi: to have this patch series merged, we need a >>> tag "Reviewed-by" from you. >> I am fine with the changes, but maybe while we are at it, we should clarify >> what mclk_direction means? > That's a good idea to have it solved within this patch series. > >>     __u8 mclk_direction;    /* 0 for input, 1 for output */ >> >> This is really awful and might benefit for additional clarity using >> codec-centric conventions. >> > I agree that having a clear naming will avoid confusion for future usage. > I see from the code, that this variable is ignored. So we have no technical > restriction on how to interpret this. > I suggest to do similar to what we did for bclk_master: > > /* DAI mclk_direction */ > #define SND_SOC_TPLG_MCLK_CO        0 /* for codec, mclk is output */ > #define SND_SOC_TPLG_MCLK_CI          1 /* for codec, mclk is input */ > >> We also had a discussion internally and can't figure out why the strings are >> different from the fields in the structure, I feel it'd be simpler to align >> config and code to avoid issues but keep existing notation for backwards >> compatibility, e.g. >> >> if (strcmp(id, "mclk_freq") == 0) || strcmp(id, "mclk_rate") == 0) { >>         if (snd_config_get_string(n, &val) < 0) >>                 return -EINVAL; >> >>             hw_cfg->mclk_rate = atoi(val); >>             continue; >> } > I agree with this. I will also do the same (keeping backwards-compatibility) for: > > "format" => "fmt" > "bclk" => "bclk_master" > "bclk_freq" => "bclk_rate" > "bclk_invert" => "invert_bclk" > "fsync" => "fsync_master" > "fsync_invert" => "invert_fsync" > "fsync_freq" => "fsync_rate" > "mclk_freq" => "mclk_rate" > "mclk" => "mclk_direction" > "pm_gate_clocks" => "clock_gated" > > If you agree with both proposals, I will add patches to this patch series, and > re-send as patch v4. > Or can we handle it in a better way? A v4 is fine with me. These topology definitions appear in hindsight quite problematic, there are missing definitions and capabilities, e.g we have the ability to 'gate the clock' but without knowing which clock, and we have no ability to force the mclk/bclk/fsync on (be it on demand from a codec driver or on startup as a system requirement). And there is no real extension capability with a protocol version. The net effect is that people will have to create custom tokens and parsing for things that should be common... Thanks -Pierre