|
@@ -1263,6 +1263,7 @@ static u8 mv_get_crpb_status(struct ata_port *ap)
|
|
void __iomem *port_mmio = mv_ap_base(ap);
|
|
void __iomem *port_mmio = mv_ap_base(ap);
|
|
struct mv_port_priv *pp = ap->private_data;
|
|
struct mv_port_priv *pp = ap->private_data;
|
|
u32 out_ptr;
|
|
u32 out_ptr;
|
|
|
|
+ u8 ata_status;
|
|
|
|
|
|
out_ptr = readl(port_mmio + EDMA_RSP_Q_OUT_PTR_OFS);
|
|
out_ptr = readl(port_mmio + EDMA_RSP_Q_OUT_PTR_OFS);
|
|
|
|
|
|
@@ -1270,6 +1271,8 @@ static u8 mv_get_crpb_status(struct ata_port *ap)
|
|
WARN_ON(((out_ptr >> EDMA_RSP_Q_PTR_SHIFT) & MV_MAX_Q_DEPTH_MASK) !=
|
|
WARN_ON(((out_ptr >> EDMA_RSP_Q_PTR_SHIFT) & MV_MAX_Q_DEPTH_MASK) !=
|
|
pp->rsp_consumer);
|
|
pp->rsp_consumer);
|
|
|
|
|
|
|
|
+ ata_status = pp->crpb[pp->rsp_consumer].flags >> CRPB_FLAG_STATUS_SHIFT;
|
|
|
|
+
|
|
/* increment our consumer index... */
|
|
/* increment our consumer index... */
|
|
pp->rsp_consumer = mv_inc_q_index(&pp->rsp_consumer);
|
|
pp->rsp_consumer = mv_inc_q_index(&pp->rsp_consumer);
|
|
|
|
|
|
@@ -1284,7 +1287,7 @@ static u8 mv_get_crpb_status(struct ata_port *ap)
|
|
writelfl(out_ptr, port_mmio + EDMA_RSP_Q_OUT_PTR_OFS);
|
|
writelfl(out_ptr, port_mmio + EDMA_RSP_Q_OUT_PTR_OFS);
|
|
|
|
|
|
/* Return ATA status register for completed CRPB */
|
|
/* Return ATA status register for completed CRPB */
|
|
- return (pp->crpb[pp->rsp_consumer].flags >> CRPB_FLAG_STATUS_SHIFT);
|
|
|
|
|
|
+ return ata_status;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|