From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=185.171.202.116 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1794393365; b=NKJabkCOO+vfDVl6Bm5HxZjtVNF5mMckncEYAy6FMMYudQRk9I4kGmdlTnHBK9vpJJ5p tQwpkGmOrIdqPEUM3zAC0CXoQ/STUP2jhgcT88AiJfQ6woC6zFRVvRIYj8fu9ya1mxYCV hoIlPGcGrz/ez6YcTiAojekdHEgw4sNkvAfi/EJcFest7Kl2RJYsFkrvb6tHQopc2pmsp PWSGZm0SEGocJT7JpTQzGVrZjpU0kgore5tQe7nP18GX02NWRy35bXDwBUbG7I+Ee+nvy S6JYZxILCgcL3pDjZqQ4DZpW2UTKHX8wMlasMthQoguk8l77HMwbOvYVeiST4lRNaoQ== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1794393365; h=DMARC-Filter:Received:Received:Received:DKIM-Signature:From:To:Cc: Subject:Date:Message-ID:X-Mailer:In-Reply-To:References:MIME-Version: Content-Transfer-Encoding:X-Last-TLS-Session-Version; bh=9GyQKB8iaVrL7OKczNALnDV+X9QlrYFe08OEdZjN8Mc=; b=hVwL11rY/kl49Ze9gu7AaUVF/4QrjmkNF+mDPO66TSAk5o0BhGZh8plRdD2t6BYktJM5 lwN0X5qNV4AEsBAjaWojyhOlOjLw0girEQjELs/MwkYaB/GINQU4teYpqw2yPngwfEFKN 7/ci+CCV49b3ikfJRlyWr1s1v0niqg6kYxL7PQLJSJ/ulyvBpRfZX7H+JUs1zJoy/BzvS 9tgzwxQ+WWFm/rSYoHdW1ZsAaV5gxKpMMNxktSIQEh/0UwC/kcs8LE8dGHfdbPXnmbppU +4oJw45XBr7HozF5SNt3Gvm7jNCrPLYeK2Dg/O7sZvj/F0VEIRtJHltgDfSt+8TWWDg== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass header.d=bootlin.com header.i=@bootlin.com header.a=rsa-sha256 header.s=dkim header.b=o0k7p7pP; arc=none smtp.remote-ip=185.171.202.116 Received: from smtpout-04.galae.net (smtpout-04.galae.net [185.171.202.116]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6AE7F606A899; Wed, 11 Nov 2026 10:36:04 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org 6AE7F606A899 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.a=rsa-sha256 header.s=dkim header.b=o0k7p7pP Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-04.galae.net (Postfix) with ESMTPS id E68EDC69165; Wed, 11 Nov 2026 10:36:04 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 380956017E; Wed, 11 Nov 2026 10:36:03 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 14E1911BC17BE; Wed, 11 Nov 2026 11:36:00 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1794393362; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=9GyQKB8iaVrL7OKczNALnDV+X9QlrYFe08OEdZjN8Mc=; b=o0k7p7pP1a0s0BOWRJ9MK7egn4KoazU750hM5HmzHXvHnOeGNO/d6NiY5xwbcGTMsrQ0/W ilMeMVvlcQ2lpNcp3+E7c/kw0FwK6vLCHisDyhsWkie/i4KLBDyFzo+Ht4DPl3oTRjn+dq PEqvvqpBo1FAU/gF85GdpCydKRIVLzqUbJtwOIgKWAEKzrvqZ84kI6z+h1rDpclzI5zG9U zMGyWl7Yyn52xyl7mDWmeRv+QMTAKbEyHhqzFqw8tY/01r3kySMTWMO9L8O52HZfMnbvDN Vxnszvpbt+jPVtCFEez7vmgLuZNH+tKLPQAMdwjfjsl5AaF/thOEGP2jda72Ig== From: Paul Cercueil To: Mark Brown Cc: linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Thomas Petazzoni , Bharat Bhushan , Sunil Kovvuri Goutham , Tanmay Jagdale , Jisheng Zhang , Paul Cercueil Subject: [PATCH v2 5/6] spi: cadence-xspi: Rework resource discovery Date: Wed, 11 Nov 2026 11:35:40 +0100 Message-ID: <20261111103541.100848-6-paul.cercueil@bootlin.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20261111103541.100848-1-paul.cercueil@bootlin.com> References: <20261111103541.100848-1-paul.cercueil@bootlin.com> X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Last-TLS-Session-Version: TLSv1.3 From: Tanmay Jagdale The previous code worked, but calling devm_platform_ioremap_resource_byname() on ACPI where resources aren't named causes warnings to be printed, one per call: cadence-xspi PRP0001:02: error -EINVAL: invalid resource (null) cadence-xspi PRP0001:02: error -EINVAL: invalid resource (null) cadence-xspi PRP0001:02: error -EINVAL: invalid resource (null) cadence-xspi PRP0001:02: error -EINVAL: invalid resource (null) We can avoid these warnings by first obtaining a pointer to the resource with platform_get_resource_byname() and fallback to platform_get_resource() if it fails, and then ioremap the resource using devm_ioremap_resource(). Signed-off-by: Tanmay Jagdale Co-developed-by: Paul Cercueil Signed-off-by: Paul Cercueil --- v2: - Drop error messages as devm_ioremap_resource() already prints errors. --- drivers/spi/spi-cadence-xspi.c | 56 ++++++++++++++++------------------ 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/drivers/spi/spi-cadence-xspi.c b/drivers/spi/spi-cadence-xspi.c index f4ce4820b08f..8fa58a0412e3 100644 --- a/drivers/spi/spi-cadence-xspi.c +++ b/drivers/spi/spi-cadence-xspi.c @@ -1276,44 +1276,42 @@ static int cdns_xspi_probe(struct platform_device *pdev) if (ret) return -ENODEV; - cdns_xspi->iobase = devm_platform_ioremap_resource_byname(pdev, "io"); - if (IS_ERR(cdns_xspi->iobase)) { - cdns_xspi->iobase = devm_platform_ioremap_resource(pdev, 0); - if (IS_ERR(cdns_xspi->iobase)) { - dev_err(dev, "Failed to remap controller base address\n"); - return PTR_ERR(cdns_xspi->iobase); - } - } + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "io"); + if (!res) + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + + cdns_xspi->iobase = devm_ioremap_resource(dev, res); + if (IS_ERR(cdns_xspi->iobase)) + return PTR_ERR(cdns_xspi->iobase); res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "sdma"); - cdns_xspi->sdmabase = devm_ioremap_resource(dev, res); - if (IS_ERR(cdns_xspi->sdmabase)) { + if (!res) res = platform_get_resource(pdev, IORESOURCE_MEM, 1); - cdns_xspi->sdmabase = devm_ioremap_resource(dev, res); - if (IS_ERR(cdns_xspi->sdmabase)) - return PTR_ERR(cdns_xspi->sdmabase); - } + + cdns_xspi->sdmabase = devm_ioremap_resource(dev, res); + if (IS_ERR(cdns_xspi->sdmabase)) + return PTR_ERR(cdns_xspi->sdmabase); cdns_xspi->sdmasize = resource_size(res); - cdns_xspi->auxbase = devm_platform_ioremap_resource_byname(pdev, "aux"); - if (IS_ERR(cdns_xspi->auxbase)) { - cdns_xspi->auxbase = devm_platform_ioremap_resource(pdev, 2); - if (IS_ERR(cdns_xspi->auxbase)) { - dev_err(dev, "Failed to remap AUX address\n"); - return PTR_ERR(cdns_xspi->auxbase); - } - } + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "aux"); + if (!res) + res = platform_get_resource(pdev, IORESOURCE_MEM, 2); + + cdns_xspi->auxbase = devm_ioremap_resource(dev, res); + if (IS_ERR(cdns_xspi->auxbase)) + return PTR_ERR(cdns_xspi->auxbase); #ifdef CONFIG_64BIT if (cdns_xspi->driver_data->mrvl_hw_overlay) { - cdns_xspi->xferbase = devm_platform_ioremap_resource_byname(pdev, "xfer"); + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "xfer"); + if (!res) + res = platform_get_resource(pdev, IORESOURCE_MEM, 3); + + cdns_xspi->xferbase = devm_ioremap_resource(dev, res); if (IS_ERR(cdns_xspi->xferbase)) { - cdns_xspi->xferbase = devm_platform_ioremap_resource(pdev, 3); - if (IS_ERR(cdns_xspi->xferbase)) { - dev_info(dev, "XFER register base not found, set it\n"); - // For compatibility with older firmware - cdns_xspi->xferbase = cdns_xspi->iobase + 0x8000; - } + dev_info(dev, "XFER register base not found, set it\n"); + // For compatibility with older firmware + cdns_xspi->xferbase = cdns_xspi->iobase + 0x8000; } } #endif -- 2.47.3