From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jean-Francois Moine Subject: [PATCH v3 2/2] ASoC: kirkwood: fix loss of external clock at probe time Date: Fri, 18 Oct 2013 20:35:55 +0200 Message-ID: <20131018203555.4d974251@armhf> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from smtp3-g21.free.fr (smtp3-g21.free.fr [212.27.42.3]) by alsa0.perex.cz (Postfix) with ESMTP id 78A8C261AD8 for ; Fri, 18 Oct 2013 20:35:52 +0200 (CEST) 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: Jason Cooper , Mark Brown Cc: Thomas Petazzoni , alsa-devel@alsa-project.org, Uwe =?UTF-8?B?S2xlaW5lLUvDtm5pZw==?= , Russell King , linux-arm-kernel@lists.infradead.org, Sebastian Hesselbarth List-Id: alsa-devel@alsa-project.org QXQgcHJvYmUgdGltZSwgd2hlbiB0aGUgY2xvY2sgZHJpdmVyIGlzIG5vdCB5ZXQgaW5pdGlhbGl6 ZWQsIHRoZQpleHRlcm5hbCBjbG9jayBvZiB0aGUga2lya3dvb2Qgc291bmQgZGV2aWNlIHdpbGwg bm90IGJlIHVzYWJsZS4KClRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBwcm9ibGVtIGRlZmVyaW5nIHRo ZSBkZXZpY2UgcHJvYmUuCgpJdCBhbHNvIHJlbW92ZXMgdGhlIHRlc3QgYWJvdXQgc2FtZSBpbnRl cm5hbCBhbmQgZXh0ZXJuYWwgY2xvY2tzIHdoaWNoCmNhbiBuZXZlciBvY2N1ci4KClNpZ25lZC1v ZmYtYnk6IEplYW4tRnJhbmNvaXMgTW9pbmUgPG1vaW5lamZAZnJlZS5mcj4KLS0tCnYzOiByZW1v dmUgdGhlIHRlc3Qgb2Ygc2FtZSBpbnRlcm5hbCBhbmQgZXh0ZXJuYWwgY2xvY2tzCgpUaGUgYXNz b2NpYXRlZCBwYXRjaDoKW1BBVENIIHYzIDEvMl0gQVNvQzoga2lya3dvb2Q6IGNsazogcHJvYmUg ZGVmZXIgd2hlbiBjbG9jayBub3QgeWV0IHJlYWR5CmlzIHVuY2hhbmdlZCBhbmQgbm90IHJlc2Vu dAotLS0KIHNvdW5kL3NvYy9raXJrd29vZC9raXJrd29vZC1pMnMuYyB8IDE2ICsrKysrKystLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc291bmQvc29jL2tpcmt3b29kL2tpcmt3b29kLWkycy5jIGIvc291bmQvc29j L2tpcmt3b29kL2tpcmt3b29kLWkycy5jCmluZGV4IDhhYzg5ZjUuLjJiYmJhYjUgMTAwNjQ0Ci0t LSBhL3NvdW5kL3NvYy9raXJrd29vZC9raXJrd29vZC1pMnMuYworKysgYi9zb3VuZC9zb2Mva2ly a3dvb2Qva2lya3dvb2QtaTJzLmMKQEAgLTQ5NiwxNSArNDk2LDEzIEBAIHN0YXRpYyBpbnQga2ly a3dvb2RfaTJzX2Rldl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlyZXR1 cm4gZXJyOwogCiAJcHJpdi0+ZXh0Y2xrID0gZGV2bV9jbGtfZ2V0KCZwZGV2LT5kZXYsICJleHRj bGsiKTsKLQlpZiAoIUlTX0VSUihwcml2LT5leHRjbGspKSB7Ci0JCWlmIChwcml2LT5leHRjbGsg PT0gcHJpdi0+Y2xrKSB7Ci0JCQlkZXZtX2Nsa19wdXQoJnBkZXYtPmRldiwgcHJpdi0+ZXh0Y2xr KTsKLQkJCXByaXYtPmV4dGNsayA9IEVSUl9QVFIoLUVJTlZBTCk7Ci0JCX0gZWxzZSB7Ci0JCQlk ZXZfaW5mbygmcGRldi0+ZGV2LCAiZm91bmQgZXh0ZXJuYWwgY2xvY2tcbiIpOwotCQkJY2xrX3By ZXBhcmVfZW5hYmxlKHByaXYtPmV4dGNsayk7Ci0JCQlzb2NfZGFpID0gJmtpcmt3b29kX2kyc19k YWlfZXh0Y2xrOwotCQl9CisJaWYgKElTX0VSUihwcml2LT5leHRjbGspKSB7CisJCWlmIChQVFJf RVJSKHByaXYtPmV4dGNsaykgPT0gLUVQUk9CRV9ERUZFUikKKwkJCXJldHVybiAtRVBST0JFX0RF RkVSOworCX0gZWxzZSB7CisJCWRldl9pbmZvKCZwZGV2LT5kZXYsICJmb3VuZCBleHRlcm5hbCBj bG9ja1xuIik7CisJCWNsa19wcmVwYXJlX2VuYWJsZShwcml2LT5leHRjbGspOworCQlzb2NfZGFp ID0ga2lya3dvb2RfaTJzX2RhaV9leHRjbGs7CiAJfQogCiAJLyogU29tZSBzZW5zaWJsZSBkZWZh dWx0cyAtIHRoaXMgcmVmbGVjdHMgdGhlIHBvd2VydXAgdmFsdWVzICovCgoKLS0gCktlbiBhciBj J2hlbnRhw7EJfAkgICAgICAqKiBCcmVpemggaGEgTGludXggYXRhdiEgKioKSmVmCQl8CQlodHRw Oi8vbW9pbmVqZi5mcmVlLmZyLwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpBbHNhLWRldmVsIG1haWxpbmcgbGlzdApBbHNhLWRldmVsQGFsc2EtcHJvamVj dC5vcmcKaHR0cDovL21haWxtYW4uYWxzYS1wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Fs c2EtZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: moinejf@free.fr (Jean-Francois Moine) Date: Fri, 18 Oct 2013 20:35:55 +0200 Subject: [PATCH v3 2/2] ASoC: kirkwood: fix loss of external clock at probe time Message-ID: <20131018203555.4d974251@armhf> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org At probe time, when the clock driver is not yet initialized, the external clock of the kirkwood sound device will not be usable. This patch fixes this problem defering the device probe. It also removes the test about same internal and external clocks which can never occur. Signed-off-by: Jean-Francois Moine --- v3: remove the test of same internal and external clocks The associated patch: [PATCH v3 1/2] ASoC: kirkwood: clk: probe defer when clock not yet ready is unchanged and not resent --- sound/soc/kirkwood/kirkwood-i2s.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/sound/soc/kirkwood/kirkwood-i2s.c b/sound/soc/kirkwood/kirkwood-i2s.c index 8ac89f5..2bbbab5 100644 --- a/sound/soc/kirkwood/kirkwood-i2s.c +++ b/sound/soc/kirkwood/kirkwood-i2s.c @@ -496,15 +496,13 @@ static int kirkwood_i2s_dev_probe(struct platform_device *pdev) return err; priv->extclk = devm_clk_get(&pdev->dev, "extclk"); - if (!IS_ERR(priv->extclk)) { - if (priv->extclk == priv->clk) { - devm_clk_put(&pdev->dev, priv->extclk); - priv->extclk = ERR_PTR(-EINVAL); - } else { - dev_info(&pdev->dev, "found external clock\n"); - clk_prepare_enable(priv->extclk); - soc_dai = &kirkwood_i2s_dai_extclk; - } + if (IS_ERR(priv->extclk)) { + if (PTR_ERR(priv->extclk) == -EPROBE_DEFER) + return -EPROBE_DEFER; + } else { + dev_info(&pdev->dev, "found external clock\n"); + clk_prepare_enable(priv->extclk); + soc_dai = kirkwood_i2s_dai_extclk; } /* Some sensible defaults - this reflects the powerup values */ -- Ken ar c'henta? | ** Breizh ha Linux atav! ** Jef | http://moinejf.free.fr/