From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.2 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_2 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BFAB1C4338F for ; Wed, 28 Jul 2021 07:38:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A430D60F9C for ; Wed, 28 Jul 2021 07:38:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234995AbhG1Hik convert rfc822-to-8bit (ORCPT ); Wed, 28 Jul 2021 03:38:40 -0400 Received: from relay8-d.mail.gandi.net ([217.70.183.201]:57451 "EHLO relay8-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234417AbhG1Hif (ORCPT ); Wed, 28 Jul 2021 03:38:35 -0400 Received: (Authenticated sender: clement.leger@bootlin.com) by relay8-d.mail.gandi.net (Postfix) with ESMTPSA id 374BD1BF206; Wed, 28 Jul 2021 07:38:32 +0000 (UTC) Date: Wed, 28 Jul 2021 09:38:31 +0200 From: =?UTF-8?B?Q2zDqW1lbnQgTMOpZ2Vy?= To: Vinod Koul Cc: Ludovic Desroches , Tudor Ambarus , Alexandre Belloni , linux-arm-kernel@lists.infradead.org, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] dmaengine: at_xdmac: use module_platform_driver Message-ID: <20210728093831.27430737@fixe.home> In-Reply-To: References: <20210625090042.17085-1-clement.leger@bootlin.com> Organization: Bootlin X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Precedence: bulk List-ID: X-Mailing-List: dmaengine@vger.kernel.org Le Wed, 28 Jul 2021 12:26:50 +0530, Vinod Koul a écrit : > On 25-06-21, 11:00, Clément Léger wrote: > > The driver was previously probed with platform_driver_probe. This > > does not allow the driver to be probed again later if probe function > > returns -EPROBE_DEFER. This patch replace the use of > > platform_driver_probe with module_platform_driver which allows that. > > > > Signed-off-by: Clément Léger > > --- > > drivers/dma/at_xdmac.c | 6 +----- > > 1 file changed, 1 insertion(+), 5 deletions(-) > > > > diff --git a/drivers/dma/at_xdmac.c b/drivers/dma/at_xdmac.c > > index 64a52bf4d737..109a4c0895f4 100644 > > --- a/drivers/dma/at_xdmac.c > > +++ b/drivers/dma/at_xdmac.c > > @@ -2238,11 +2238,7 @@ static struct platform_driver > > at_xdmac_driver = { } > > }; > > > > -static int __init at_xdmac_init(void) > > -{ > > - return platform_driver_probe(&at_xdmac_driver, > > at_xdmac_probe); -} > > -subsys_initcall(at_xdmac_init); > > +module_platform_driver(at_xdmac_driver); > > You are also changing the init call here, there is a reason why > dmaengine drivers are subsys_initcall.. have you tested this? > I understood that the subsys initcall was there to probe the DMA driver earlier than other drivers (at least I guess this was the reason). I also tested it and can confirm you this works as expected on my platform (sama5d2_xplained and sama5d27_som1). In my configuration, the clocks are provided using SCMI and the SCMI driver probes them later than other drivers. With the current subsys_initcall, platform_driver_probe calls __platform_driver_probe which will eventually calls platform_probe. This one will fails because SCMI clocks are not available at this time. And as said in the kernel doc, __platform_driver_probe is incompatible with deferred probing. This leads to failure of all drivers that needs DMA channels provbided by at_xdmac. With module_platform_driver, the at_xdmac driver is correctly probed again later and all drivers that depends on DMA channels provided by this one are also correctly probed. The deferred probing mechanism seems to do its job correctly (at least in my case). From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_2 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8043CC4338F for ; Wed, 28 Jul 2021 07:40:56 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3F36960560 for ; Wed, 28 Jul 2021 07:40:56 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 3F36960560 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=bootlin.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=to1XSzxUzdedeBZEPrAw5qUU0eZKcPMGxfoIa7aDvrY=; b=GaPusVeWlEafRT vTa2VGAPP60Z/w6cSXEdDI8816J8GL48LBKKNhG7wsa/ZHUfA9HIH7dxC5NjsLx0xU+V7cbp1+IS+ R5/CTOwiH+4zF72uQOc7TfmxrQpB/MjqqZ+72/1bkXH9PGaVYYsngsti29WE1XnB26IxrmotZJeDX pgPUZ4EUZV4hBSWNz3pmiLzt9zUZkFU0JcvtfMH8k0HzsEshQICvBPNTo4HZOTJ0xp4Y/2y9kepbN a45bUr/0vN6296cKz70ru9h/mzl42N7QGsvaxdPc5g21zaXcUS2IhbKfRrvHyHkgVMuMUOCJNN18g hdEUOmP3EBYokOB0ZT7A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1m8e9K-00HOLF-3u; Wed, 28 Jul 2021 07:38:42 +0000 Received: from relay8-d.mail.gandi.net ([217.70.183.201]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1m8e9F-00HOKK-7l for linux-arm-kernel@lists.infradead.org; Wed, 28 Jul 2021 07:38:39 +0000 Received: (Authenticated sender: clement.leger@bootlin.com) by relay8-d.mail.gandi.net (Postfix) with ESMTPSA id 374BD1BF206; Wed, 28 Jul 2021 07:38:32 +0000 (UTC) Date: Wed, 28 Jul 2021 09:38:31 +0200 From: =?UTF-8?B?Q2zDqW1lbnQgTMOpZ2Vy?= To: Vinod Koul Cc: Ludovic Desroches , Tudor Ambarus , Alexandre Belloni , linux-arm-kernel@lists.infradead.org, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] dmaengine: at_xdmac: use module_platform_driver Message-ID: <20210728093831.27430737@fixe.home> In-Reply-To: References: <20210625090042.17085-1-clement.leger@bootlin.com> Organization: Bootlin X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210728_003837_454245_94DA22C5 X-CRM114-Status: GOOD ( 24.03 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org TGUgV2VkLCAyOCBKdWwgMjAyMSAxMjoyNjo1MCArMDUzMCwKVmlub2QgS291bCA8dmtvdWxAa2Vy bmVsLm9yZz4gYSDDqWNyaXQgOgoKPiBPbiAyNS0wNi0yMSwgMTE6MDAsIENsw6ltZW50IEzDqWdl ciB3cm90ZToKPiA+IFRoZSBkcml2ZXIgd2FzIHByZXZpb3VzbHkgcHJvYmVkIHdpdGggcGxhdGZv cm1fZHJpdmVyX3Byb2JlLiBUaGlzCj4gPiBkb2VzIG5vdCBhbGxvdyB0aGUgZHJpdmVyIHRvIGJl IHByb2JlZCBhZ2FpbiBsYXRlciBpZiBwcm9iZSBmdW5jdGlvbgo+ID4gcmV0dXJucyAtRVBST0JF X0RFRkVSLiBUaGlzIHBhdGNoIHJlcGxhY2UgdGhlIHVzZSBvZgo+ID4gcGxhdGZvcm1fZHJpdmVy X3Byb2JlIHdpdGggbW9kdWxlX3BsYXRmb3JtX2RyaXZlciB3aGljaCBhbGxvd3MgdGhhdC4KPiA+ IAo+ID4gU2lnbmVkLW9mZi1ieTogQ2zDqW1lbnQgTMOpZ2VyIDxjbGVtZW50LmxlZ2VyQGJvb3Rs aW4uY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9kbWEvYXRfeGRtYWMuYyB8IDYgKy0tLS0tCj4g PiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCA1IGRlbGV0aW9ucygtKQo+ID4gCj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEvYXRfeGRtYWMuYyBiL2RyaXZlcnMvZG1hL2F0X3hk bWFjLmMKPiA+IGluZGV4IDY0YTUyYmY0ZDczNy4uMTA5YTRjMDg5NWY0IDEwMDY0NAo+ID4gLS0t IGEvZHJpdmVycy9kbWEvYXRfeGRtYWMuYwo+ID4gKysrIGIvZHJpdmVycy9kbWEvYXRfeGRtYWMu Ywo+ID4gQEAgLTIyMzgsMTEgKzIyMzgsNyBAQCBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZl cgo+ID4gYXRfeGRtYWNfZHJpdmVyID0geyB9Cj4gPiAgfTsKPiA+ICAKPiA+IC1zdGF0aWMgaW50 IF9faW5pdCBhdF94ZG1hY19pbml0KHZvaWQpCj4gPiAtewo+ID4gLQlyZXR1cm4gcGxhdGZvcm1f ZHJpdmVyX3Byb2JlKCZhdF94ZG1hY19kcml2ZXIsCj4gPiBhdF94ZG1hY19wcm9iZSk7IC19Cj4g PiAtc3Vic3lzX2luaXRjYWxsKGF0X3hkbWFjX2luaXQpOwo+ID4gK21vZHVsZV9wbGF0Zm9ybV9k cml2ZXIoYXRfeGRtYWNfZHJpdmVyKTsgIAo+IAo+IFlvdSBhcmUgYWxzbyBjaGFuZ2luZyB0aGUg aW5pdCBjYWxsIGhlcmUsIHRoZXJlIGlzIGEgcmVhc29uIHdoeQo+IGRtYWVuZ2luZSBkcml2ZXJz IGFyZSBzdWJzeXNfaW5pdGNhbGwuLiBoYXZlIHlvdSB0ZXN0ZWQgdGhpcz8KPiAKCkkgdW5kZXJz dG9vZCB0aGF0IHRoZSBzdWJzeXMgaW5pdGNhbGwgd2FzIHRoZXJlIHRvIHByb2JlIHRoZSBETUEg ZHJpdmVyCmVhcmxpZXIgdGhhbiBvdGhlciBkcml2ZXJzIChhdCBsZWFzdCBJIGd1ZXNzIHRoaXMg d2FzIHRoZSByZWFzb24pLiBJCmFsc28gdGVzdGVkIGl0IGFuZCBjYW4gY29uZmlybSB5b3UgdGhp cyB3b3JrcyBhcyBleHBlY3RlZCBvbiBteQpwbGF0Zm9ybSAoc2FtYTVkMl94cGxhaW5lZCBhbmQg c2FtYTVkMjdfc29tMSkuCgpJbiBteSBjb25maWd1cmF0aW9uLCB0aGUgY2xvY2tzIGFyZSBwcm92 aWRlZCB1c2luZyBTQ01JIGFuZCB0aGUgU0NNSQpkcml2ZXIgcHJvYmVzIHRoZW0gbGF0ZXIgdGhh biBvdGhlciBkcml2ZXJzLiAKCldpdGggdGhlIGN1cnJlbnQgc3Vic3lzX2luaXRjYWxsLCBwbGF0 Zm9ybV9kcml2ZXJfcHJvYmUgY2FsbHMKX19wbGF0Zm9ybV9kcml2ZXJfcHJvYmUgd2hpY2ggd2ls bCBldmVudHVhbGx5IGNhbGxzIHBsYXRmb3JtX3Byb2JlLgpUaGlzIG9uZSB3aWxsIGZhaWxzIGJl Y2F1c2UgU0NNSSBjbG9ja3MgYXJlIG5vdCBhdmFpbGFibGUgYXQgdGhpcyB0aW1lLgpBbmQgYXMg c2FpZCBpbiB0aGUga2VybmVsIGRvYywgX19wbGF0Zm9ybV9kcml2ZXJfcHJvYmUgaXMgaW5jb21w YXRpYmxlCndpdGggZGVmZXJyZWQgcHJvYmluZy4gVGhpcyBsZWFkcyB0byBmYWlsdXJlIG9mIGFs bCBkcml2ZXJzIHRoYXQgbmVlZHMKRE1BIGNoYW5uZWxzIHByb3ZiaWRlZCBieSBhdF94ZG1hYy4K CldpdGggbW9kdWxlX3BsYXRmb3JtX2RyaXZlciwgdGhlIGF0X3hkbWFjIGRyaXZlciBpcyBjb3Jy ZWN0bHkgcHJvYmVkCmFnYWluIGxhdGVyIGFuZCBhbGwgZHJpdmVycyB0aGF0IGRlcGVuZHMgb24g RE1BIGNoYW5uZWxzIHByb3ZpZGVkIGJ5CnRoaXMgb25lIGFyZSBhbHNvIGNvcnJlY3RseSBwcm9i ZWQuIFRoZSBkZWZlcnJlZCBwcm9iaW5nIG1lY2hhbmlzbSBzZWVtcwp0byBkbyBpdHMgam9iIGNv cnJlY3RseSAoYXQgbGVhc3QgaW4gbXkgY2FzZSkuCgoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0Cmxp bnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK