mtd: spi-nor: cqspi: Fix build on arches missing readsl/writesl

Linux-MTD Mailing List linux-mtd at lists.infradead.org
Sun Feb 12 18:59:07 PST 2017


Gitweb:     http://git.infradead.org/?p=mtd-2.6.git;a=commit;h=0cf1725676a97fc8b4dd88794ea0acc1325b4fb7
Commit:     0cf1725676a97fc8b4dd88794ea0acc1325b4fb7
Parent:     7ce7d89f48834cefece7804d38fc5d85382edf77
Author:     Marek Vasut <marex at denx.de>
AuthorDate: Tue Aug 2 15:10:47 2016 +0200
Committer:  Cyrille Pitchen <cyrille.pitchen at atmel.com>
CommitDate: Wed Jan 4 09:54:03 2017 +0100

    mtd: spi-nor: cqspi: Fix build on arches missing readsl/writesl
    
    The x86-64 and some other architectures are missing readsl/writesl
    functions, so this driver won't build on them. Use a more portable
    ioread32_rep()/iowrite32_rep() instead.
    
    Signed-off-by: Marek Vasut <marex at denx.de>
    Cc: Alan Tull <atull at opensource.altera.com>
    Cc: Brian Norris <computersforpeace at gmail.com>
    Cc: David Woodhouse <dwmw2 at infradead.org>
    Cc: Dinh Nguyen <dinguyen at opensource.altera.com>
    Cc: Graham Moore <grmoore at opensource.altera.com>
    Cc: Vignesh R <vigneshr at ti.com>
    Cc: Yves Vandervennet <yvanderv at opensource.altera.com>
    Suggested-by: Stefan Roese <sr at denx.de>
    Signed-off-by: Cyrille Pitchen <cyrille.pitchen at atmel.com>
---
 drivers/mtd/spi-nor/Kconfig           | 2 +-
 drivers/mtd/spi-nor/cadence-quadspi.c | 6 ++++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/mtd/spi-nor/Kconfig b/drivers/mtd/spi-nor/Kconfig
index 4a682ee..1e6f037 100644
--- a/drivers/mtd/spi-nor/Kconfig
+++ b/drivers/mtd/spi-nor/Kconfig
@@ -40,7 +40,7 @@ config SPI_ATMEL_QUADSPI
 
 config SPI_CADENCE_QUADSPI
 	tristate "Cadence Quad SPI controller"
-	depends on OF && ARM
+	depends on OF && (ARM || COMPILE_TEST)
 	help
 	  Enable support for the Cadence Quad SPI Flash controller.
 
diff --git a/drivers/mtd/spi-nor/cadence-quadspi.c b/drivers/mtd/spi-nor/cadence-quadspi.c
index d489fbd..3fb7be8 100644
--- a/drivers/mtd/spi-nor/cadence-quadspi.c
+++ b/drivers/mtd/spi-nor/cadence-quadspi.c
@@ -526,7 +526,8 @@ static int cqspi_indirect_read_execute(struct spi_nor *nor,
 			bytes_to_read *= cqspi->fifo_width;
 			bytes_to_read = bytes_to_read > remaining ?
 					remaining : bytes_to_read;
-			readsl(ahb_base, rxbuf, DIV_ROUND_UP(bytes_to_read, 4));
+			ioread32_rep(ahb_base, rxbuf,
+				     DIV_ROUND_UP(bytes_to_read, 4));
 			rxbuf += bytes_to_read;
 			remaining -= bytes_to_read;
 			bytes_to_read = cqspi_get_rd_sram_level(cqspi);
@@ -610,7 +611,8 @@ static int cqspi_indirect_write_execute(struct spi_nor *nor,
 
 	while (remaining > 0) {
 		write_bytes = remaining > page_size ? page_size : remaining;
-		writesl(cqspi->ahb_base, txbuf, DIV_ROUND_UP(write_bytes, 4));
+		iowrite32_rep(cqspi->ahb_base, txbuf,
+			      DIV_ROUND_UP(write_bytes, 4));
 
 		ret = wait_for_completion_timeout(&cqspi->transfer_complete,
 						  msecs_to_jiffies



More information about the linux-mtd-cvs mailing list