hc
2023-11-06 9df731a176aab8e03b984b681b1bea01ccff6644
u-boot/drivers/scsi/scsi.c
....@@ -172,6 +172,7 @@
172172 block_dev->devnum, start, blks, (unsigned long)buffer);
173173 do {
174174 pccb->pdata = (unsigned char *)buf_addr;
175
+ pccb->dma_dir = DMA_FROM_DEVICE;
175176 #ifdef CONFIG_SYS_64BIT_LBA
176177 if (start > SCSI_LBA48_READ) {
177178 unsigned long blocks;
....@@ -247,6 +248,7 @@
247248 __func__, block_dev->devnum, start, blks, (unsigned long)buffer);
248249 do {
249250 pccb->pdata = (unsigned char *)buf_addr;
251
+ pccb->dma_dir = DMA_TO_DEVICE;
250252 if (blks > SCSI_MAX_WRITE_BLK) {
251253 pccb->datalen = (block_dev->blksz *
252254 SCSI_MAX_WRITE_BLK);
....@@ -395,6 +397,7 @@
395397 pccb->msgout[0] = SCSI_IDENTIFY; /* NOT USED */
396398
397399 pccb->datalen = 16;
400
+ pccb->dma_dir = DMA_FROM_DEVICE;
398401 if (scsi_exec(dev, pccb))
399402 return 1;
400403
....@@ -500,6 +503,7 @@
500503 pccb->lun = lun;
501504 pccb->pdata = (unsigned char *)&tempbuff;
502505 pccb->datalen = 512;
506
+ pccb->dma_dir = DMA_FROM_DEVICE;
503507 scsi_setup_inquiry(pccb);
504508 if (scsi_exec(dev, pccb)) {
505509 if (pccb->contr_stat == SCSI_SEL_TIME_OUT) {