ide: call ide_build_sglist() prior to ->dma_setup (v2)
* Re-map sg table if needed in ide_build_sglist(). * Move ide_build_sglist() call from ->dma_setup to its users. * Un-export ide_build_sglist(). v2: * Build fix for CONFIG_BLK_DEV_IDEDMA=n (noticed by Randy Dunlap). There should be no functional changes caused by this patch. Cc: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
@@ -1429,10 +1429,10 @@ pmac_ide_build_dmatable(ide_drive_t *drive, struct request *rq)
|
||||
pmac_ide_hwif_t *pmif =
|
||||
(pmac_ide_hwif_t *)dev_get_drvdata(hwif->gendev.parent);
|
||||
struct dbdma_cmd *table;
|
||||
int i, count = 0;
|
||||
volatile struct dbdma_regs __iomem *dma = pmif->dma_regs;
|
||||
struct scatterlist *sg;
|
||||
int wr = (rq_data_dir(rq) == WRITE);
|
||||
int i = hwif->sg_nents, count = 0;
|
||||
|
||||
/* DMA table is already aligned */
|
||||
table = (struct dbdma_cmd *) pmif->dma_table_cpu;
|
||||
@@ -1442,11 +1442,6 @@ pmac_ide_build_dmatable(ide_drive_t *drive, struct request *rq)
|
||||
while (readl(&dma->status) & RUN)
|
||||
udelay(1);
|
||||
|
||||
hwif->sg_nents = i = ide_build_sglist(drive, rq);
|
||||
|
||||
if (!i)
|
||||
return 0;
|
||||
|
||||
/* Build DBDMA commands list */
|
||||
sg = hwif->sg_table;
|
||||
while (i && sg_dma_len(sg)) {
|
||||
|
Reference in New Issue
Block a user