From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lee Jones Subject: Re: [PATCH 3/6] ASoC: ux500: Drop pinctrl sleep support Date: Wed, 8 May 2013 09:07:08 +0100 Message-ID: <20130508080708.GH3102@gmail.com> References: <1367997261-32048-1-git-send-email-fabio.baltieri@linaro.org> <1367997261-32048-4-git-send-email-fabio.baltieri@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-we0-f170.google.com (mail-we0-f170.google.com [74.125.82.170]) by alsa0.perex.cz (Postfix) with ESMTP id D1008261698 for ; Wed, 8 May 2013 10:07:12 +0200 (CEST) Received: by mail-we0-f170.google.com with SMTP id u54so1469378wes.15 for ; Wed, 08 May 2013 01:07:12 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1367997261-32048-4-git-send-email-fabio.baltieri@linaro.org> 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: Fabio Baltieri Cc: Ola Lilja , alsa-devel@alsa-project.org, Linus Walleij , Liam Girdwood , linux-kernel@vger.kernel.org, Mark Brown List-Id: alsa-devel@alsa-project.org T24gV2VkLCAwOCBNYXkgMjAxMywgRmFiaW8gQmFsdGllcmkgd3JvdGU6Cgo+IERyb3AgcGluY3Ry bCBkZWZhdWx0L3NsZWVwIHN0YXRlIHN3aXRjaGluZyBjb2RlLCBhcyBpdCB3YXMgYnJlYWtpbmcg dGhlCj4gY2FwdHVyZSBpbnRlcmZhY2UgYnkgcHV0dGluZyB0aGUgSTJTIHBpbnMgaW4gaGkteiBt b2RlIHJlZ2FyZGxlc3Mgb2YgaXRzCj4gdXNhZ2Ugc3RhdHVzLCBhbmQgbm90IGdpdmluZyBhbnkg cmVhbCBiZW5lZml0Lgo+IAo+IFBpbmN0cmwgZGVmYXVsdCBtb2RlIGNvbmZpZ3VyYXRpb24gaXMg YWxyZWFkeSBtYW5hZ2VkIGF1dG9tYXRpY2FsbHkgYnkgYQo+IHNwZWNpZmljIHBpbmN0cmwgaG9n LgoKSSdtIHN1cmUgd2Ugc2hvdWxkIHN1cHBvcnQgcGluY3RybCB0aG91Z2ggc2hvdWxkbid0IHdl PwoKSXMgdGhlcmUgbm8gd2F5IG9mIGZpeGluZyB0aGUgaW1wbGVtZW50YXRpb24gaW5zdGVhZCBv ZiByaXBwaW5nIGl0IG91dD8KCj4gU2lnbmVkLW9mZi1ieTogRmFiaW8gQmFsdGllcmkgPGZhYmlv LmJhbHRpZXJpQGxpbmFyby5vcmc+Cj4gLS0tCj4gIHNvdW5kL3NvYy91eDUwMC91eDUwMF9tc3Bf aTJzLmMgfCA1NiArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBz b3VuZC9zb2MvdXg1MDAvdXg1MDBfbXNwX2kycy5oIHwgIDYgLS0tLS0KPiAgMiBmaWxlcyBjaGFu Z2VkLCAyIGluc2VydGlvbnMoKyksIDYwIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9z b3VuZC9zb2MvdXg1MDAvdXg1MDBfbXNwX2kycy5jIGIvc291bmQvc29jL3V4NTAwL3V4NTAwX21z cF9pMnMuYwo+IGluZGV4IDk2NGNmZDYuLjg1MTJjNzggMTAwNjQ0Cj4gLS0tIGEvc291bmQvc29j L3V4NTAwL3V4NTAwX21zcF9pMnMuYwo+ICsrKyBiL3NvdW5kL3NvYy91eDUwMC91eDUwMF9tc3Bf aTJzLmMKPiBAQCAtMTUsNyArMTUsNiBAQAo+ICAKPiAgI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5o Pgo+ICAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Cj4gLSNpbmNsdWRlIDxsaW51 eC9waW5jdHJsL2NvbnN1bWVyLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgo+ICAjaW5j bHVkZSA8bGludXgvc2xhYi5oPgo+ICAjaW5jbHVkZSA8bGludXgvaW8uaD4KPiBAQCAtMjgsOSAr MjcsNiBAQAo+ICAKPiAgI2luY2x1ZGUgInV4NTAwX21zcF9pMnMuaCIKPiAgCj4gLS8qIE1TUDEv MyBUeC9SeCB1c2FnZSBwcm90ZWN0aW9uICovCj4gLXN0YXRpYyBERUZJTkVfU1BJTkxPQ0sobXNw X3J4dHhfbG9jayk7Cj4gLQo+ICAgLyogUHJvdG9jb2wgZGVzY2lwdG9ycyAqLwo+ICBzdGF0aWMg Y29uc3Qgc3RydWN0IG1zcF9wcm90ZGVzYyBwcm90X2Rlc2NzW10gPSB7Cj4gIAl7IC8qIEkyUyAq Lwo+IEBAIC0zNTgsMjQgKzM1NCw4IEBAIHN0YXRpYyBpbnQgY29uZmlndXJlX211bHRpY2hhbm5l bChzdHJ1Y3QgdXg1MDBfbXNwICptc3AsCj4gIAo+ICBzdGF0aWMgaW50IGVuYWJsZV9tc3Aoc3Ry dWN0IHV4NTAwX21zcCAqbXNwLCBzdHJ1Y3QgdXg1MDBfbXNwX2NvbmZpZyAqY29uZmlnKQo+ICB7 Cj4gLQlpbnQgc3RhdHVzID0gMCwgcmV0dmFsID0gMDsKPiArCWludCBzdGF0dXMgPSAwOwo+ICAJ dTMyIHJlZ192YWxfRE1BQ1IsIHJlZ192YWxfR0NSOwo+IC0JdW5zaWduZWQgbG9uZyBmbGFnczsK PiAtCj4gLQkvKiBDaGVjayBtc3Agc3RhdGUgd2hldGhlciBpbiBSVU4gb3IgQ09ORklHVVJFRCBN b2RlICovCj4gLQlpZiAobXNwLT5tc3Bfc3RhdGUgPT0gTVNQX1NUQVRFX0lETEUpIHsKPiAtCQlz cGluX2xvY2tfaXJxc2F2ZSgmbXNwX3J4dHhfbG9jaywgZmxhZ3MpOwo+IC0JCWlmIChtc3AtPnBp bmN0cmxfcnh0eF9yZWYgPT0gMCAmJgo+IC0JCQkhKElTX0VSUihtc3AtPnBpbmN0cmxfcCkgfHwg SVNfRVJSKG1zcC0+cGluY3RybF9kZWYpKSkgewo+IC0JCQlyZXR2YWwgPSBwaW5jdHJsX3NlbGVj dF9zdGF0ZShtc3AtPnBpbmN0cmxfcCwKPiAtCQkJCQkJbXNwLT5waW5jdHJsX2RlZik7Cj4gLQkJ CWlmIChyZXR2YWwpCj4gLQkJCQlwcl9lcnIoImNvdWxkIG5vdCBzZXQgTVNQIGRlZnN0YXRlXG4i KTsKPiAtCQl9Cj4gLQkJaWYgKCFyZXR2YWwpCj4gLQkJCW1zcC0+cGluY3RybF9yeHR4X3JlZisr Owo+IC0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm1zcF9yeHR4X2xvY2ssIGZsYWdzKTsKPiAt CX0KPiAgCj4gIAkvKiBDb25maWd1cmUgbXNwIHdpdGggcHJvdG9jb2wgZGVwZW5kZW50IHNldHRp bmdzICovCj4gIAljb25maWd1cmVfcHJvdG9jb2wobXNwLCBjb25maWcpOwo+IEBAIC02MzIsOCAr NjEyLDcgQEAgaW50IHV4NTAwX21zcF9pMnNfdHJpZ2dlcihzdHJ1Y3QgdXg1MDBfbXNwICptc3As IGludCBjbWQsIGludCBkaXJlY3Rpb24pCj4gIAo+ICBpbnQgdXg1MDBfbXNwX2kyc19jbG9zZShz dHJ1Y3QgdXg1MDBfbXNwICptc3AsIHVuc2lnbmVkIGludCBkaXIpCj4gIHsKPiAtCWludCBzdGF0 dXMgPSAwLCByZXR2YWwgPSAwOwo+IC0JdW5zaWduZWQgbG9uZyBmbGFnczsKPiArCWludCBzdGF0 dXMgPSAwOwo+ICAKPiAgCWRldl9kYmcobXNwLT5kZXYsICIlczogRW50ZXIgKGRpciA9IDB4JTAx eCkuXG4iLCBfX2Z1bmNfXywgZGlyKTsKPiAgCj4gQEAgLTY0NSwxOCArNjI0LDYgQEAgaW50IHV4 NTAwX21zcF9pMnNfY2xvc2Uoc3RydWN0IHV4NTAwX21zcCAqbXNwLCB1bnNpZ25lZCBpbnQgZGly KQo+ICAJCQkgICAgICAgKH4oRlJBTUVfR0VOX0VOQUJMRSB8IFNSR19FTkFCTEUpKSksCj4gIAkJ CSAgICAgIG1zcC0+cmVnaXN0ZXJzICsgTVNQX0dDUik7Cj4gIAo+IC0JCXNwaW5fbG9ja19pcnFz YXZlKCZtc3Bfcnh0eF9sb2NrLCBmbGFncyk7Cj4gLQkJV0FSTl9PTighbXNwLT5waW5jdHJsX3J4 dHhfcmVmKTsKPiAtCQltc3AtPnBpbmN0cmxfcnh0eF9yZWYtLTsKPiAtCQlpZiAobXNwLT5waW5j dHJsX3J4dHhfcmVmID09IDAgJiYKPiAtCQkJIShJU19FUlIobXNwLT5waW5jdHJsX3ApIHx8IElT X0VSUihtc3AtPnBpbmN0cmxfc2xlZXApKSkgewo+IC0JCQlyZXR2YWwgPSBwaW5jdHJsX3NlbGVj dF9zdGF0ZShtc3AtPnBpbmN0cmxfcCwKPiAtCQkJCQkJbXNwLT5waW5jdHJsX3NsZWVwKTsKPiAt CQkJaWYgKHJldHZhbCkKPiAtCQkJCXByX2VycigiY291bGQgbm90IHNldCBNU1Agc2xlZXBzdGF0 ZVxuIik7Cj4gLQkJfQo+IC0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm1zcF9yeHR4X2xvY2ss IGZsYWdzKTsKPiAtCj4gIAkJd3JpdGVsKDAsIG1zcC0+cmVnaXN0ZXJzICsgTVNQX0dDUik7Cj4g IAkJd3JpdGVsKDAsIG1zcC0+cmVnaXN0ZXJzICsgTVNQX1RDRik7Cj4gIAkJd3JpdGVsKDAsIG1z cC0+cmVnaXN0ZXJzICsgTVNQX1JDRik7Cj4gQEAgLTc0NSwyNSArNzEyLDYgQEAgaW50IHV4NTAw X21zcF9pMnNfaW5pdF9tc3Aoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKPiAgCWRldl9k YmcoJnBkZXYtPmRldiwgIkkyUyBkZXZpY2UtbmFtZTogJyVzJ1xuIiwgaTJzX2NvbnQtPm5hbWUp Owo+ICAJbXNwLT5pMnNfY29udCA9IGkyc19jb250Owo+ICAKPiAtCW1zcC0+cGluY3RybF9wID0g cGluY3RybF9nZXQobXNwLT5kZXYpOwo+IC0JaWYgKElTX0VSUihtc3AtPnBpbmN0cmxfcCkpCj4g LQkJZGV2X2VycigmcGRldi0+ZGV2LCAiY291bGQgbm90IGdldCBNU1AgcGluY3RybFxuIik7Cj4g LQllbHNlIHsKPiAtCQltc3AtPnBpbmN0cmxfZGVmID0gcGluY3RybF9sb29rdXBfc3RhdGUobXNw LT5waW5jdHJsX3AsCj4gLQkJCQkJCVBJTkNUUkxfU1RBVEVfREVGQVVMVCk7Cj4gLQkJaWYgKElT X0VSUihtc3AtPnBpbmN0cmxfZGVmKSkgewo+IC0JCQlkZXZfZXJyKCZwZGV2LT5kZXYsCj4gLQkJ CQkiY291bGQgbm90IGdldCBNU1AgZGVmc3RhdGUgKCVsaSlcbiIsCj4gLQkJCQlQVFJfRVJSKG1z cC0+cGluY3RybF9kZWYpKTsKPiAtCQl9Cj4gLQkJbXNwLT5waW5jdHJsX3NsZWVwID0gcGluY3Ry bF9sb29rdXBfc3RhdGUobXNwLT5waW5jdHJsX3AsCj4gLQkJCQkJCVBJTkNUUkxfU1RBVEVfU0xF RVApOwo+IC0JCWlmIChJU19FUlIobXNwLT5waW5jdHJsX3NsZWVwKSkKPiAtCQkJZGV2X2Vycigm cGRldi0+ZGV2LAo+IC0JCQkJImNvdWxkIG5vdCBnZXQgTVNQIGlkbGVzdGF0ZSAoJWxpKVxuIiwK PiAtCQkJCVBUUl9FUlIobXNwLT5waW5jdHJsX2RlZikpOwo+IC0JfQo+IC0KPiAgCXJldHVybiAw Owo+ICB9Cj4gIAo+IGRpZmYgLS1naXQgYS9zb3VuZC9zb2MvdXg1MDAvdXg1MDBfbXNwX2kycy5o IGIvc291bmQvc29jL3V4NTAwL3V4NTAwX21zcF9pMnMuaAo+IGluZGV4IDEzMTFjMGQuLjFjZTMz NmYgMTAwNjQ0Cj4gLS0tIGEvc291bmQvc29jL3V4NTAwL3V4NTAwX21zcF9pMnMuaAo+ICsrKyBi L3NvdW5kL3NvYy91eDUwMC91eDUwMF9tc3BfaTJzLmgKPiBAQCAtNTMwLDEyICs1MzAsNiBAQCBz dHJ1Y3QgdXg1MDBfbXNwIHsKPiAgCWludCBsb29wYmFja19lbmFibGU7Cj4gIAl1MzIgYmFja3Vw X3JlZ3NbTUFYX01TUF9CQUNLVVBfUkVHU107Cj4gIAl1bnNpZ25lZCBpbnQgZl9iaXRjbGs7Cj4g LQkvKiBQaW4gbW9kZXMgKi8KPiAtCXN0cnVjdCBwaW5jdHJsICpwaW5jdHJsX3A7Cj4gLQlzdHJ1 Y3QgcGluY3RybF9zdGF0ZSAqcGluY3RybF9kZWY7Cj4gLQlzdHJ1Y3QgcGluY3RybF9zdGF0ZSAq cGluY3RybF9zbGVlcDsKPiAtCS8qIFJlZmVyZW5jZSBDb3VudCAqLwo+IC0JaW50IHBpbmN0cmxf cnh0eF9yZWY7Cj4gIH07Cj4gIAo+ICBzdHJ1Y3QgdXg1MDBfbXNwX2RtYV9wYXJhbXMgewoKLS0g CkxlZSBKb25lcwpMaW5hcm8gU1QtRXJpY3Nzb24gTGFuZGluZyBUZWFtIExlYWQKTGluYXJvLm9y ZyDilIIgT3BlbiBzb3VyY2Ugc29mdHdhcmUgZm9yIEFSTSBTb0NzCkZvbGxvdyBMaW5hcm86IEZh Y2Vib29rIHwgVHdpdHRlciB8IEJsb2cKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KQWxzYS1kZXZlbCBtYWlsaW5nIGxpc3QKQWxzYS1kZXZlbEBhbHNhLXBy b2plY3Qub3JnCmh0dHA6Ly9tYWlsbWFuLmFsc2EtcHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5m by9hbHNhLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752500Ab3EHIHX (ORCPT ); Wed, 8 May 2013 04:07:23 -0400 Received: from mail-wg0-f50.google.com ([74.125.82.50]:38590 "EHLO mail-wg0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751687Ab3EHIHO (ORCPT ); Wed, 8 May 2013 04:07:14 -0400 Date: Wed, 8 May 2013 09:07:08 +0100 From: Lee Jones To: Fabio Baltieri Cc: Mark Brown , Liam Girdwood , alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, Linus Walleij , Ola Lilja Subject: Re: [PATCH 3/6] ASoC: ux500: Drop pinctrl sleep support Message-ID: <20130508080708.GH3102@gmail.com> References: <1367997261-32048-1-git-send-email-fabio.baltieri@linaro.org> <1367997261-32048-4-git-send-email-fabio.baltieri@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1367997261-32048-4-git-send-email-fabio.baltieri@linaro.org> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 08 May 2013, Fabio Baltieri wrote: > Drop pinctrl default/sleep state switching code, as it was breaking the > capture interface by putting the I2S pins in hi-z mode regardless of its > usage status, and not giving any real benefit. > > Pinctrl default mode configuration is already managed automatically by a > specific pinctrl hog. I'm sure we should support pinctrl though shouldn't we? Is there no way of fixing the implementation instead of ripping it out? > Signed-off-by: Fabio Baltieri > --- > sound/soc/ux500/ux500_msp_i2s.c | 56 ++--------------------------------------- > sound/soc/ux500/ux500_msp_i2s.h | 6 ----- > 2 files changed, 2 insertions(+), 60 deletions(-) > > diff --git a/sound/soc/ux500/ux500_msp_i2s.c b/sound/soc/ux500/ux500_msp_i2s.c > index 964cfd6..8512c78 100644 > --- a/sound/soc/ux500/ux500_msp_i2s.c > +++ b/sound/soc/ux500/ux500_msp_i2s.c > @@ -15,7 +15,6 @@ > > #include > #include > -#include > #include > #include > #include > @@ -28,9 +27,6 @@ > > #include "ux500_msp_i2s.h" > > -/* MSP1/3 Tx/Rx usage protection */ > -static DEFINE_SPINLOCK(msp_rxtx_lock); > - > /* Protocol desciptors */ > static const struct msp_protdesc prot_descs[] = { > { /* I2S */ > @@ -358,24 +354,8 @@ static int configure_multichannel(struct ux500_msp *msp, > > static int enable_msp(struct ux500_msp *msp, struct ux500_msp_config *config) > { > - int status = 0, retval = 0; > + int status = 0; > u32 reg_val_DMACR, reg_val_GCR; > - unsigned long flags; > - > - /* Check msp state whether in RUN or CONFIGURED Mode */ > - if (msp->msp_state == MSP_STATE_IDLE) { > - spin_lock_irqsave(&msp_rxtx_lock, flags); > - if (msp->pinctrl_rxtx_ref == 0 && > - !(IS_ERR(msp->pinctrl_p) || IS_ERR(msp->pinctrl_def))) { > - retval = pinctrl_select_state(msp->pinctrl_p, > - msp->pinctrl_def); > - if (retval) > - pr_err("could not set MSP defstate\n"); > - } > - if (!retval) > - msp->pinctrl_rxtx_ref++; > - spin_unlock_irqrestore(&msp_rxtx_lock, flags); > - } > > /* Configure msp with protocol dependent settings */ > configure_protocol(msp, config); > @@ -632,8 +612,7 @@ int ux500_msp_i2s_trigger(struct ux500_msp *msp, int cmd, int direction) > > int ux500_msp_i2s_close(struct ux500_msp *msp, unsigned int dir) > { > - int status = 0, retval = 0; > - unsigned long flags; > + int status = 0; > > dev_dbg(msp->dev, "%s: Enter (dir = 0x%01x).\n", __func__, dir); > > @@ -645,18 +624,6 @@ int ux500_msp_i2s_close(struct ux500_msp *msp, unsigned int dir) > (~(FRAME_GEN_ENABLE | SRG_ENABLE))), > msp->registers + MSP_GCR); > > - spin_lock_irqsave(&msp_rxtx_lock, flags); > - WARN_ON(!msp->pinctrl_rxtx_ref); > - msp->pinctrl_rxtx_ref--; > - if (msp->pinctrl_rxtx_ref == 0 && > - !(IS_ERR(msp->pinctrl_p) || IS_ERR(msp->pinctrl_sleep))) { > - retval = pinctrl_select_state(msp->pinctrl_p, > - msp->pinctrl_sleep); > - if (retval) > - pr_err("could not set MSP sleepstate\n"); > - } > - spin_unlock_irqrestore(&msp_rxtx_lock, flags); > - > writel(0, msp->registers + MSP_GCR); > writel(0, msp->registers + MSP_TCF); > writel(0, msp->registers + MSP_RCF); > @@ -745,25 +712,6 @@ int ux500_msp_i2s_init_msp(struct platform_device *pdev, > dev_dbg(&pdev->dev, "I2S device-name: '%s'\n", i2s_cont->name); > msp->i2s_cont = i2s_cont; > > - msp->pinctrl_p = pinctrl_get(msp->dev); > - if (IS_ERR(msp->pinctrl_p)) > - dev_err(&pdev->dev, "could not get MSP pinctrl\n"); > - else { > - msp->pinctrl_def = pinctrl_lookup_state(msp->pinctrl_p, > - PINCTRL_STATE_DEFAULT); > - if (IS_ERR(msp->pinctrl_def)) { > - dev_err(&pdev->dev, > - "could not get MSP defstate (%li)\n", > - PTR_ERR(msp->pinctrl_def)); > - } > - msp->pinctrl_sleep = pinctrl_lookup_state(msp->pinctrl_p, > - PINCTRL_STATE_SLEEP); > - if (IS_ERR(msp->pinctrl_sleep)) > - dev_err(&pdev->dev, > - "could not get MSP idlestate (%li)\n", > - PTR_ERR(msp->pinctrl_def)); > - } > - > return 0; > } > > diff --git a/sound/soc/ux500/ux500_msp_i2s.h b/sound/soc/ux500/ux500_msp_i2s.h > index 1311c0d..1ce336f 100644 > --- a/sound/soc/ux500/ux500_msp_i2s.h > +++ b/sound/soc/ux500/ux500_msp_i2s.h > @@ -530,12 +530,6 @@ struct ux500_msp { > int loopback_enable; > u32 backup_regs[MAX_MSP_BACKUP_REGS]; > unsigned int f_bitclk; > - /* Pin modes */ > - struct pinctrl *pinctrl_p; > - struct pinctrl_state *pinctrl_def; > - struct pinctrl_state *pinctrl_sleep; > - /* Reference Count */ > - int pinctrl_rxtx_ref; > }; > > struct ux500_msp_dma_params { -- Lee Jones Linaro ST-Ericsson Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog