From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Baluta Subject: Re: [RFC PATCH] ASoC: wm8960: Use physical width for bclk Date: Wed, 15 Mar 2017 11:43:24 +0000 Message-ID: <1489578203.15165.46.camel@nxp.com> References: <1489510622-30981-1-git-send-email-daniel.baluta@nxp.com> <20170315091901.GF6986@localhost.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00053.outbound.protection.outlook.com [40.107.0.53]) by alsa0.perex.cz (Postfix) with ESMTP id 6CEF1266861 for ; Wed, 15 Mar 2017 12:43:26 +0100 (CET) In-Reply-To: <20170315091901.GF6986@localhost.localdomain> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: "ckeepax@opensource.wolfsonmicro.com" , "broonie@kernel.org" Cc: "shengjiu.wang@freescale.com" , "alsa-devel@alsa-project.org" , "patches@opensource.wolfsonmicro.com" , "lgirdwood@gmail.com" , "linux-kernel@vger.kernel.org" , Viorel Suman , Mihai Serban , "tiwai@suse.com" List-Id: alsa-devel@alsa-project.org T24gTWksIDIwMTctMDMtMTUgYXQgMDk6MTkgKzAwMDAsIENoYXJsZXMgS2VlcGF4IHdyb3RlOg0K PiBPbiBUdWUsIE1hciAxNCwgMjAxNyBhdCAwNjo1NzowMlBNICswMjAwLCBEYW5pZWwgQmFsdXRh IHdyb3RlOg0KPiA+IA0KPiA+IGJjbGsgaXMgZGVyaXZlZCBmcm9tIHN5c2NsayB3aXRoIHRoZSBo ZWxwIG9mIGJjbGtfZGl2cy4gQW55aG93LCBmb3INCj4gPiBTMjBfM0xFIGZvcm1hdCB0aGVyZSBp cyBubyBiY2xrX2RpdnMgdGhhdCBjb3VsZCBiZSB1c2VkIHRvIGRlcml2ZQ0KPiA+IGFuIGV4YWN0 IGJjbGsuDQo+ID4gDQo+ID4gV2UgY2FuIGZpeCB0aGlzIGJ5IHVzaW5nIHN0b3JhZ2Ugc2l6ZSBp bnN0ZWFkIHRoZSBleGFjdA0KPiA+IG51bWJlciBvZiBiaXRzIG9mIHRoZSBzYW1wbGUgd2hlbiBj b21wdXRpbmcgYmNsay4NCj4gPiANCj4gPiBXaXRoIHRoaXMgYXBwcm9hY2ggd2UgY2FuIHBsYXkg UzIwXzNMRSBlbmNvZGVkIGZpbGVzIGF0IHRoZSBjb3N0IG9mDQo+ID4gc29tZSB1bnVzZWQgQkNM SyBjeWNsZXMgZm9yIFMyMF8zTEUgYW5kIFMyNF9MRS4NCj4gPiANCj4gPiBTaWduZWQtb2ZmLWJ5 OiBEYW5pZWwgQmFsdXRhIDxkYW5pZWwuYmFsdXRhQG54cC5jb20+DQo+ID4gLS0tDQo+ID4gwqBz b3VuZC9zb2MvY29kZWNzL3dtODk2MC5jIHwgMyArKy0NCj4gPiDCoDEgZmlsZSBjaGFuZ2VkLCAy IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCj4gPiANCj4gPiBkaWZmIC0tZ2l0IGEvc291 bmQvc29jL2NvZGVjcy93bTg5NjAuYyBiL3NvdW5kL3NvYy9jb2RlY3Mvd204OTYwLmMNCj4gPiBp bmRleCBlMTQyOWUzLi4xOGNhNWZjIDEwMDY0NA0KPiA+IC0tLSBhL3NvdW5kL3NvYy9jb2RlY3Mv d204OTYwLmMNCj4gPiArKysgYi9zb3VuZC9zb2MvY29kZWNzL3dtODk2MC5jDQo+ID4gQEAgLTcy Miw3ICs3MjIsOCBAQCBzdGF0aWMgaW50IHdtODk2MF9od19wYXJhbXMoc3RydWN0DQo+ID4gc25k X3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwNCj4gPiDCoAlib29sIHR4ID0gc3Vic3RyZWFtLT5z dHJlYW0gPT0gU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSzsNCj4gPiDCoAlpbnQgaTsNCj4gPiDC oA0KPiA+IC0Jd204OTYwLT5iY2xrID0gc25kX3NvY19wYXJhbXNfdG9fYmNsayhwYXJhbXMpOw0K PiA+ICsJd204OTYwLT5iY2xrID0gcGFyYW1zX3BoeXNpY2FsX3dpZHRoKHBhcmFtcykgKg0KPiA+ ICsJCXBhcmFtc19jaGFubmVscyhwYXJhbXMpICogcGFyYW1zX3JhdGUocGFyYW1zKTsNCj4gPiDC oAlpZiAocGFyYW1zX2NoYW5uZWxzKHBhcmFtcykgPT0gMSkNCj4gPiDCoAkJd204OTYwLT5iY2xr ICo9IDI7DQo+IFdvdWxkIHF1aXRlIGxpa2UgdG8gc2VlIE1hcmsncyB0aG91Z2h0cyBvbiB0aGlz LiBGZWVscyBhIGJpdCB0bw0KPiBtZSAoYWx0aG91Z2ggSSBhbSBub3QgY2VydGFpbikgbGlrZSB3 ZSBhcmUgc29sdmluZyB0aGUgcHJvYmxlbSBpbg0KPiB0aGUgd3JvbmcgcGxhY2UsIGlzbid0IHRo aXMgcmVhbGx5IHNldHRpbmcgdGhlIGRlc2lyZWQgQkNMSyBhbmQNCj4gdGhlbiBpbiB3bTg5NjBf Y29uZmlndXJlX2Nsb2NraW5nIHdlIHNob3VsZCBzZXQgdGhlIGxvd2VzdCBCQ0xLDQo+IHdlIGNh biB0aGF0IGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgZGVzaXJlZC4NCg0KSXMgdGhl cmUgYW55IHN0YW5kYXJkIHdheSBvZiBkb2luZyB0aGlzIGluIEFTb0M/IENvdWxkbid0IGZpbmQg YW55DQpleGFtcGxlIHdoZXJlIHRoZSBiaXRjbGsgaXMgcmVsYXhlZCB0byBsb3dlc3QgdmFsdWUg Z3JlYXRlciB0aGFuIHRoZQ0KZGVzaXJlZCBvbmUuDQoNCkkgaGF2ZSBwcmVwYXJlZCBzb21lIHBh dGNoZXMgd2l0aCB0aGlzIGFwcHJvYWNoLCB5b3UgY2FuIGxvb2sgYXQgdGhlbQ0KaGVyZToNCg0K aHR0cDovL3Bhc3RlYmluLmNvbS8weFcwRTgyTsKgLSBzb21lIHJlZmFjdG9yaW5nIG9mIHN5c2Ns ayBzZWFyY2gNCmh0dHA6Ly9wYXN0ZWJpbi5jb20vUVJ0MVVUN1HCoC0gcmVsYXggYml0Y2xrIHZh bHVlDQoNCkRhbmllbC4NCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkFsc2EtZGV2ZWwgbWFpbGluZyBsaXN0CkFsc2EtZGV2ZWxAYWxzYS1wcm9qZWN0Lm9y ZwpodHRwOi8vbWFpbG1hbi5hbHNhLXByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vYWxzYS1k ZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753785AbdCOLnz (ORCPT ); Wed, 15 Mar 2017 07:43:55 -0400 Received: from mail-eopbgr00058.outbound.protection.outlook.com ([40.107.0.58]:29828 "EHLO EUR02-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753756AbdCOLn2 (ORCPT ); Wed, 15 Mar 2017 07:43:28 -0400 From: Daniel Baluta To: "ckeepax@opensource.wolfsonmicro.com" , "broonie@kernel.org" CC: "linux-kernel@vger.kernel.org" , "shengjiu.wang@freescale.com" , "patches@opensource.wolfsonmicro.com" , "tiwai@suse.com" , "lgirdwood@gmail.com" , Viorel Suman , Mihai Serban , "alsa-devel@alsa-project.org" Subject: Re: [RFC PATCH] ASoC: wm8960: Use physical width for bclk Thread-Topic: [RFC PATCH] ASoC: wm8960: Use physical width for bclk Thread-Index: AQHSnW0Qv8UXuLdGukWrWIoVae3ckqGVx9mA Date: Wed, 15 Mar 2017 11:43:24 +0000 Message-ID: <1489578203.15165.46.camel@nxp.com> References: <1489510622-30981-1-git-send-email-daniel.baluta@nxp.com> <20170315091901.GF6986@localhost.localdomain> In-Reply-To: <20170315091901.GF6986@localhost.localdomain> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: opensource.wolfsonmicro.com; dkim=none (message not signed) header.d=none;opensource.wolfsonmicro.com; dmarc=none action=none header.from=nxp.com; x-originating-ip: [192.88.146.1] x-ms-office365-filtering-correlation-id: f9dc5122-e02a-4b54-1f52-08d46b987d13 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081);SRVR:AM3PR04MB1204; x-microsoft-exchange-diagnostics: 1;AM3PR04MB1204;7:E/rFKF1jWDrB5v20jWo+ZQa9IwJNoXlI4d19c1XLJ+2LzGI2YEt0JWiy9oJHfzAtFzSmjuIMlNBnn6oW0N/Fw5w839KLlLPgfNU3FZeYXDfjxmg9Z5hH2QbpZISQAFgP5BlgFFN6AxzmDXIcG5CEmxD6L8xpwKLvRUhfufJbaNsLPU/Hx8p0c0JzdsOXoMw/iIKU5Q58tlRhg5A9PkkVVAFBdGBhMVhX751LUNgMesljMSISCh0e/INHmE1Unf63UGVRkefwXZmvbjHVZctO8gvpqDJpByi9rrGAyNEso5Wg+EIrCqM9Pei36Cri53uHSnv6+5miCss+pPXl38cavQ== x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(185117386973197); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026)(6041248)(20161123564025)(20161123560025)(20161123555025)(20161123558025)(20161123562025)(6072148);SRVR:AM3PR04MB1204;BCL:0;PCL:0;RULEID:;SRVR:AM3PR04MB1204; x-forefront-prvs: 02475B2A01 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(6009001)(39860400002)(39850400002)(39410400002)(39840400002)(39450400003)(377424004)(24454002)(3280700002)(4326008)(7736002)(3660700001)(2950100002)(305945005)(33646002)(229853002)(103116003)(36756003)(2900100001)(8936002)(2501003)(5250100002)(1720100001)(39060400002)(189998001)(5660300001)(6512007)(54906002)(6306002)(54356999)(50986999)(76176999)(53936002)(6436002)(6116002)(99286003)(3846002)(6506006)(102836003)(2906002)(86362001)(6486002)(575784001)(966004)(66066001)(6246003)(38730400002)(53376002)(8676002)(81166006)(10126625002);DIR:OUT;SFP:1101;SCL:1;SRVR:AM3PR04MB1204;H:AM3PR04MB500.eurprd04.prod.outlook.com;FPR:;SPF:None;MLV:ovrnspm;PTR:InfoNoRecords;LANG:en; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Mar 2017 11:43:24.2595 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM3PR04MB1204 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id v2FBi3Mw008289 On Mi, 2017-03-15 at 09:19 +0000, Charles Keepax wrote: > On Tue, Mar 14, 2017 at 06:57:02PM +0200, Daniel Baluta wrote: > > > > bclk is derived from sysclk with the help of bclk_divs. Anyhow, for > > S20_3LE format there is no bclk_divs that could be used to derive > > an exact bclk. > > > > We can fix this by using storage size instead the exact > > number of bits of the sample when computing bclk. > > > > With this approach we can play S20_3LE encoded files at the cost of > > some unused BCLK cycles for S20_3LE and S24_LE. > > > > Signed-off-by: Daniel Baluta > > --- > >  sound/soc/codecs/wm8960.c | 3 ++- > >  1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/sound/soc/codecs/wm8960.c b/sound/soc/codecs/wm8960.c > > index e1429e3..18ca5fc 100644 > > --- a/sound/soc/codecs/wm8960.c > > +++ b/sound/soc/codecs/wm8960.c > > @@ -722,7 +722,8 @@ static int wm8960_hw_params(struct > > snd_pcm_substream *substream, > >   bool tx = substream->stream == SNDRV_PCM_STREAM_PLAYBACK; > >   int i; > >   > > - wm8960->bclk = snd_soc_params_to_bclk(params); > > + wm8960->bclk = params_physical_width(params) * > > + params_channels(params) * params_rate(params); > >   if (params_channels(params) == 1) > >   wm8960->bclk *= 2; > Would quite like to see Mark's thoughts on this. Feels a bit to > me (although I am not certain) like we are solving the problem in > the wrong place, isn't this really setting the desired BCLK and > then in wm8960_configure_clocking we should set the lowest BCLK > we can that is greater than or equal to the desired. Is there any standard way of doing this in ASoC? Couldn't find any example where the bitclk is relaxed to lowest value greater than the desired one. I have prepared some patches with this approach, you can look at them here: http://pastebin.com/0xW0E82N - some refactoring of sysclk search http://pastebin.com/QRt1UT7Q - relax bitclk value Daniel.