
From: Simon Glass <sjg@chromium.org> Rather than casting between addresses and pointers, use the mapmem functions provided. Signed-off-by: Simon Glass <sjg@chromium.org> --- drivers/scsi/scsi.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c index fa27a353088..d16c6b2df3a 100644 --- a/drivers/scsi/scsi.c +++ b/drivers/scsi/scsi.c @@ -13,6 +13,7 @@ #include <env.h> #include <libata.h> #include <log.h> +#include <mapmem.h> #include <memalign.h> #include <part.h> #include <pci.h> @@ -144,7 +145,7 @@ static ulong scsi_read(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt, /* Setup device */ pccb->target = desc->target; pccb->lun = desc->lun; - buf_addr = (unsigned long)buffer; + buf_addr = map_to_sysmem(buffer); start = blknr; blks = blkcnt; if (uc_plat->max_bytes_per_req) @@ -159,7 +160,7 @@ static ulong scsi_read(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt, ulong to_read; /* number of blocks to read on this iteration */ to_read = blks; - pccb->pdata = (unsigned char *)buf_addr; + pccb->pdata = map_sysmem(buf_addr, 0); pccb->dma_dir = DMA_FROM_DEVICE; if (IS_ENABLED(CONFIG_SYS_64BIT_LBA) && start > SCSI_LBA48_READ) { @@ -219,7 +220,7 @@ static ulong scsi_write(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt, /* Setup device */ pccb->target = desc->target; pccb->lun = desc->lun; - buf_addr = (unsigned long)buffer; + buf_addr = map_to_sysmem(buffer); start = blknr; blks = blkcnt; if (uc_plat->max_bytes_per_req) @@ -233,7 +234,7 @@ static ulong scsi_write(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt, ulong to_write; /* # blocks to write on this iteration */ to_write = blks; - pccb->pdata = (unsigned char *)buf_addr; + pccb->pdata = map_sysmem(buf_addr, 0); pccb->dma_dir = DMA_TO_DEVICE; if (to_write > max_blks) { to_write = max_blks; -- 2.43.0