libata-sff: prd is BMDMA specific
struct ata_prd and ap->prd are BMDMA specific. Add bmdma_ prefix to them and move them inside CONFIG_ATA_SFF. Signed-off-by: Tejun Heo <tj@kernel.org> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
This commit is contained in:
@ -500,7 +500,7 @@ static int pdc_sata_scr_write(struct ata_link *link,
|
||||
static void pdc_atapi_pkt(struct ata_queued_cmd *qc)
|
||||
{
|
||||
struct ata_port *ap = qc->ap;
|
||||
dma_addr_t sg_table = ap->prd_dma;
|
||||
dma_addr_t sg_table = ap->bmdma_prd_dma;
|
||||
unsigned int cdb_len = qc->dev->cdb_len;
|
||||
u8 *cdb = qc->cdb;
|
||||
struct pdc_port_priv *pp = ap->private_data;
|
||||
@ -588,6 +588,7 @@ static void pdc_atapi_pkt(struct ata_queued_cmd *qc)
|
||||
static void pdc_fill_sg(struct ata_queued_cmd *qc)
|
||||
{
|
||||
struct ata_port *ap = qc->ap;
|
||||
struct ata_bmdma_prd *prd = ap->bmdma_prd;
|
||||
struct scatterlist *sg;
|
||||
const u32 SG_COUNT_ASIC_BUG = 41*4;
|
||||
unsigned int si, idx;
|
||||
@ -614,8 +615,8 @@ static void pdc_fill_sg(struct ata_queued_cmd *qc)
|
||||
if ((offset + sg_len) > 0x10000)
|
||||
len = 0x10000 - offset;
|
||||
|
||||
ap->prd[idx].addr = cpu_to_le32(addr);
|
||||
ap->prd[idx].flags_len = cpu_to_le32(len & 0xffff);
|
||||
prd[idx].addr = cpu_to_le32(addr);
|
||||
prd[idx].flags_len = cpu_to_le32(len & 0xffff);
|
||||
VPRINTK("PRD[%u] = (0x%X, 0x%X)\n", idx, addr, len);
|
||||
|
||||
idx++;
|
||||
@ -624,27 +625,27 @@ static void pdc_fill_sg(struct ata_queued_cmd *qc)
|
||||
}
|
||||
}
|
||||
|
||||
len = le32_to_cpu(ap->prd[idx - 1].flags_len);
|
||||
len = le32_to_cpu(prd[idx - 1].flags_len);
|
||||
|
||||
if (len > SG_COUNT_ASIC_BUG) {
|
||||
u32 addr;
|
||||
|
||||
VPRINTK("Splitting last PRD.\n");
|
||||
|
||||
addr = le32_to_cpu(ap->prd[idx - 1].addr);
|
||||
ap->prd[idx - 1].flags_len = cpu_to_le32(len - SG_COUNT_ASIC_BUG);
|
||||
addr = le32_to_cpu(prd[idx - 1].addr);
|
||||
prd[idx - 1].flags_len = cpu_to_le32(len - SG_COUNT_ASIC_BUG);
|
||||
VPRINTK("PRD[%u] = (0x%X, 0x%X)\n", idx - 1, addr, SG_COUNT_ASIC_BUG);
|
||||
|
||||
addr = addr + len - SG_COUNT_ASIC_BUG;
|
||||
len = SG_COUNT_ASIC_BUG;
|
||||
ap->prd[idx].addr = cpu_to_le32(addr);
|
||||
ap->prd[idx].flags_len = cpu_to_le32(len);
|
||||
prd[idx].addr = cpu_to_le32(addr);
|
||||
prd[idx].flags_len = cpu_to_le32(len);
|
||||
VPRINTK("PRD[%u] = (0x%X, 0x%X)\n", idx, addr, len);
|
||||
|
||||
idx++;
|
||||
}
|
||||
|
||||
ap->prd[idx - 1].flags_len |= cpu_to_le32(ATA_PRD_EOT);
|
||||
prd[idx - 1].flags_len |= cpu_to_le32(ATA_PRD_EOT);
|
||||
}
|
||||
|
||||
static void pdc_qc_prep(struct ata_queued_cmd *qc)
|
||||
@ -659,7 +660,7 @@ static void pdc_qc_prep(struct ata_queued_cmd *qc)
|
||||
pdc_fill_sg(qc);
|
||||
/*FALLTHROUGH*/
|
||||
case ATA_PROT_NODATA:
|
||||
i = pdc_pkt_header(&qc->tf, qc->ap->prd_dma,
|
||||
i = pdc_pkt_header(&qc->tf, qc->ap->bmdma_prd_dma,
|
||||
qc->dev->devno, pp->pkt);
|
||||
if (qc->tf.flags & ATA_TFLAG_LBA48)
|
||||
i = pdc_prep_lba48(&qc->tf, pp->pkt, i);
|
||||
|
Reference in New Issue
Block a user