mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 08:42:12 +02:00
scsi: Add dma direction member to command structure
Some SCSI devices like UFS use DMA for executing scsi commands and hence need to know the direction of transfer of the dma. Add a dma_dir element to the command structure to facilitate this. Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
This commit is contained in:
@@ -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) {
|
||||
|
Reference in New Issue
Block a user