[PATCH] fixup! mtd: spi-nor: enable module in PBL

Sascha Hauer s.hauer at pengutronix.de
Tue Oct 20 00:39:55 PDT 2026


Building spi-nor.c for PBL breaks the sandbox build: the PBL only
provides get_time_ns() and is_timeout() with CONFIG_PBL_CLOCKSOURCE,
which sandbox only selects with COMPILE_TEST, and sandbox links the PBL
objects with --whole-archive:

  undefined reference to `get_time_ns'
  undefined reference to `is_timeout'

Use the read_poll_get_time_ns()/read_poll_is_timeout() wrappers from
<linux/iopoll.h>, which fall back to polling without timeout when there
is no PBL clocksource, like read_poll_timeout() already does.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
 drivers/mtd/spi-nor/spi-nor.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
index 1acf124cd0..221fea774f 100644
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
@@ -12,6 +12,7 @@
 #include <driver.h>
 #include <errno.h>
 #include <linux/err.h>
+#include <linux/iopoll.h>
 #include <linux/sizes.h>
 #include <linux/math64.h>
 #include <linux/mod_devicetable.h>
@@ -371,12 +372,12 @@ static int spi_nor_ready(struct spi_nor *nor)
 static int spi_nor_wait_till_ready_with_timeout(struct spi_nor *nor,
 						uint64_t timeout_ns)
 {
-	uint64_t start = get_time_ns();
+	uint64_t start = read_poll_get_time_ns();
 	int timeout = 0;
 	int ret;
 
 	while (!timeout) {
-		if (is_timeout(start, timeout_ns))
+		if (read_poll_is_timeout(start, timeout_ns))
 			timeout = 1;
 
 		ret = spi_nor_ready(nor);
-- 
2.47.3




More information about the barebox mailing list