|
@@ -169,6 +169,7 @@ static ulong scsi_read(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
|
|
|
block_dev->devnum, start, blks, (unsigned long)buffer);
|
|
|
do {
|
|
|
pccb->pdata = (unsigned char *)buf_addr;
|
|
|
+ pccb->dma_dir = DMA_FROM_DEVICE;
|
|
|
#ifdef CONFIG_SYS_64BIT_LBA
|
|
|
if (start > SCSI_LBA48_READ) {
|
|
|
unsigned long blocks;
|
|
@@ -237,6 +238,7 @@ static ulong scsi_write(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
|
|
|
__func__, block_dev->devnum, start, blks, (unsigned long)buffer);
|
|
|
do {
|
|
|
pccb->pdata = (unsigned char *)buf_addr;
|
|
|
+ pccb->dma_dir = DMA_TO_DEVICE;
|
|
|
if (blks > max_blks) {
|
|
|
pccb->datalen = block_dev->blksz * max_blks;
|
|
|
smallblks = max_blks;
|
|
@@ -385,6 +387,7 @@ static int scsi_read_capacity(struct udevice *dev, struct scsi_cmd *pccb,
|
|
|
pccb->msgout[0] = SCSI_IDENTIFY; /* NOT USED */
|
|
|
|
|
|
pccb->datalen = 16;
|
|
|
+ pccb->dma_dir = DMA_FROM_DEVICE;
|
|
|
if (scsi_exec(dev, pccb))
|
|
|
return 1;
|
|
|
|
|
@@ -487,6 +490,7 @@ static int scsi_detect_dev(struct udevice *dev, int target, int lun,
|
|
|
pccb->lun = lun;
|
|
|
pccb->pdata = (unsigned char *)&tempbuff;
|
|
|
pccb->datalen = 512;
|
|
|
+ pccb->dma_dir = DMA_FROM_DEVICE;
|
|
|
scsi_setup_inquiry(pccb);
|
|
|
if (scsi_exec(dev, pccb)) {
|
|
|
if (pccb->contr_stat == SCSI_SEL_TIME_OUT) {
|