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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 27AA4CD0405 for ; Mon, 5 Jan 2026 21:07:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=dpbQMbqsJKKioS0fNkIff5gURO/lF/Ipj4HJPiLvMsQ=; b=QRbir4dBevzxeN01yTLQSGEGLT PrpbeHfQyI57xG3JdaD5pGnYZrEhmgc2PDPJ1yJ0m4sAuS80jI9XVxgCwXE6vVfjapXiZGV5c+F8t WYqxkrTsOqRdycMSOj9xDQX01EHwhTJPU8vDLk7Y1binY5XOdwlQI5NW/4HeRMix6Urf8Z6tmkE8Q f28A40LrQ5xaSOKfwoTo7vT0D7CQxhHnt2zIG18Agzgr9RGtQO5ehMQPODJrEjvMA24OhFzJg48xb xlVgQSTK8MmHynox979mIksAKgXXXYBXs8XuTZ99TdeBU+8SO/Z98k2HbWb5Al9QQKsqwn2MfnGYu zcpc1S3g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vcrmx-0000000C5nk-19aP; Mon, 05 Jan 2026 21:06:55 +0000 Received: from sea.source.kernel.org ([2600:3c0a:e001:78e:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vcrmu-0000000C5m3-01z0; Mon, 05 Jan 2026 21:06:54 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id B2000408DF; Mon, 5 Jan 2026 21:06:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 78641C16AAE; Mon, 5 Jan 2026 21:06:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1767647211; bh=SGqvyNbapL7DF9Ho4FGpHDUF7ldVAxZx9cM+6JpIZxE=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=BPRyBdJhlShaF11A/HZfsOSVgD1I/OTDE5XtAhZU82hLcYzy9o10QI2LHCyM2fn+I nfj+rG13/TJFKMe41GOAmMmCsUk10Wvnr98E7g/UGNUo17Z2TNhyiFyimEL0df2b// 94MBGpaHHG2I7/nw2tcWtumtiAiJv4DMK42X1cocgxwzWWJ6FFuThNwRkISt5kMdkz AJjMBXIfvZ64e8knok5pbijfVagliZFihk4L7J8hBzteWnPYMMXDQduu56DYIZgfrv O9ucJePTGltILVSFki2XH0+YEAsY1vF8v7yb045/iwQNElDP4xrwhR92KF2RaXMqp/ qgAG0uBZFHipw== From: "Rob Herring (Arm)" Date: Mon, 05 Jan 2026 15:06:43 -0600 Subject: [PATCH v3 1/3] mtd: nand: atmel: Defer probe if SRAM is missing MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260105-at91-probe-v3-1-594013ff2965@kernel.org> References: <20260105-at91-probe-v3-0-594013ff2965@kernel.org> In-Reply-To: <20260105-at91-probe-v3-0-594013ff2965@kernel.org> To: Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Nicolas Ferre , Alexandre Belloni , Claudiu Beznea , Russell King Cc: linux-mtd@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.15-dev X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260105_130652_067329_DE062E97 X-CRM114-Status: GOOD ( 10.11 ) 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: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The Atmel NAND controller driver depends on an SRAM pool and has an implicit assumption that the SRAM pool has already been created. Changing the initcall ordering can break this. Unfortunately, fw_devlink can't save us here as there's not a standard property to track the dependency. So it's up to deferring probe to save us. Acked-by: Alexandre Belloni Tested-by: Alexandre Belloni Signed-off-by: Rob Herring (Arm) --- v3: - Use dev_err_probe() --- drivers/mtd/nand/raw/atmel/nand-controller.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/mtd/nand/raw/atmel/nand-controller.c b/drivers/mtd/nand/raw/atmel/nand-controller.c index 83ba4ebd02d4..e7fdf532c5fe 100644 --- a/drivers/mtd/nand/raw/atmel/nand-controller.c +++ b/drivers/mtd/nand/raw/atmel/nand-controller.c @@ -2304,10 +2304,8 @@ atmel_hsmc_nand_controller_init(struct atmel_hsmc_nand_controller *nc) nc->sram.pool = of_gen_pool_get(nc->base.dev->of_node, "atmel,nfc-sram", 0); - if (!nc->sram.pool) { - dev_err(nc->base.dev, "Missing SRAM\n"); - return -ENOMEM; - } + if (!nc->sram.pool) + return dev_err_probe(nc->base.dev, -EPROBE_DEFER, "Missing SRAM\n"); nc->sram.virt = (void __iomem *)gen_pool_dma_alloc(nc->sram.pool, ATMEL_NFC_SRAM_SIZE, -- 2.51.0