diff options
author | Jeff Garzik <jeff@garzik.org> | 2006-03-24 09:24:04 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-03-24 09:24:04 -0500 |
commit | 11ed56fb7899f9eb9eaef8e5919db1bf08f1b07e (patch) | |
tree | b01421cb139b11065d776ed361a7a12b3a1aecc9 /drivers/scsi/sata_mv.c | |
parent | 54da9a3968448681d0ddf193ec90f2480c5cba1c (diff) | |
parent | 2cc432eed0491df66e14b578139bba2c75fb3f9a (diff) |
Merge branch 'upstream'
Conflicts:
drivers/scsi/sata_vsc.c
Diffstat (limited to 'drivers/scsi/sata_mv.c')
-rw-r--r-- | drivers/scsi/sata_mv.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/scsi/sata_mv.c b/drivers/scsi/sata_mv.c index 692c63bdcff8..2819a75c4a84 100644 --- a/drivers/scsi/sata_mv.c +++ b/drivers/scsi/sata_mv.c | |||
@@ -378,7 +378,6 @@ static struct scsi_host_template mv_sht = { | |||
378 | .name = DRV_NAME, | 378 | .name = DRV_NAME, |
379 | .ioctl = ata_scsi_ioctl, | 379 | .ioctl = ata_scsi_ioctl, |
380 | .queuecommand = ata_scsi_queuecmd, | 380 | .queuecommand = ata_scsi_queuecmd, |
381 | .eh_timed_out = ata_scsi_timed_out, | ||
382 | .eh_strategy_handler = ata_scsi_error, | 381 | .eh_strategy_handler = ata_scsi_error, |
383 | .can_queue = MV_USE_Q_DEPTH, | 382 | .can_queue = MV_USE_Q_DEPTH, |
384 | .this_id = ATA_SHT_THIS_ID, | 383 | .this_id = ATA_SHT_THIS_ID, |
@@ -1263,6 +1262,7 @@ static u8 mv_get_crpb_status(struct ata_port *ap) | |||
1263 | void __iomem *port_mmio = mv_ap_base(ap); | 1262 | void __iomem *port_mmio = mv_ap_base(ap); |
1264 | struct mv_port_priv *pp = ap->private_data; | 1263 | struct mv_port_priv *pp = ap->private_data; |
1265 | u32 out_ptr; | 1264 | u32 out_ptr; |
1265 | u8 ata_status; | ||
1266 | 1266 | ||
1267 | out_ptr = readl(port_mmio + EDMA_RSP_Q_OUT_PTR_OFS); | 1267 | out_ptr = readl(port_mmio + EDMA_RSP_Q_OUT_PTR_OFS); |
1268 | 1268 | ||
@@ -1270,6 +1270,8 @@ static u8 mv_get_crpb_status(struct ata_port *ap) | |||
1270 | WARN_ON(((out_ptr >> EDMA_RSP_Q_PTR_SHIFT) & MV_MAX_Q_DEPTH_MASK) != | 1270 | WARN_ON(((out_ptr >> EDMA_RSP_Q_PTR_SHIFT) & MV_MAX_Q_DEPTH_MASK) != |
1271 | pp->rsp_consumer); | 1271 | pp->rsp_consumer); |
1272 | 1272 | ||
1273 | ata_status = pp->crpb[pp->rsp_consumer].flags >> CRPB_FLAG_STATUS_SHIFT; | ||
1274 | |||
1273 | /* increment our consumer index... */ | 1275 | /* increment our consumer index... */ |
1274 | pp->rsp_consumer = mv_inc_q_index(&pp->rsp_consumer); | 1276 | pp->rsp_consumer = mv_inc_q_index(&pp->rsp_consumer); |
1275 | 1277 | ||
@@ -1284,7 +1286,7 @@ static u8 mv_get_crpb_status(struct ata_port *ap) | |||
1284 | writelfl(out_ptr, port_mmio + EDMA_RSP_Q_OUT_PTR_OFS); | 1286 | writelfl(out_ptr, port_mmio + EDMA_RSP_Q_OUT_PTR_OFS); |
1285 | 1287 | ||
1286 | /* Return ATA status register for completed CRPB */ | 1288 | /* Return ATA status register for completed CRPB */ |
1287 | return (pp->crpb[pp->rsp_consumer].flags >> CRPB_FLAG_STATUS_SHIFT); | 1289 | return ata_status; |
1288 | } | 1290 | } |
1289 | 1291 | ||
1290 | /** | 1292 | /** |
@@ -1353,7 +1355,6 @@ static void mv_host_intr(struct ata_host_set *host_set, u32 relevant, | |||
1353 | u32 hc_irq_cause; | 1355 | u32 hc_irq_cause; |
1354 | int shift, port, port0, hard_port, handled; | 1356 | int shift, port, port0, hard_port, handled; |
1355 | unsigned int err_mask; | 1357 | unsigned int err_mask; |
1356 | u8 ata_status = 0; | ||
1357 | 1358 | ||
1358 | if (hc == 0) { | 1359 | if (hc == 0) { |
1359 | port0 = 0; | 1360 | port0 = 0; |
@@ -1371,6 +1372,7 @@ static void mv_host_intr(struct ata_host_set *host_set, u32 relevant, | |||
1371 | hc,relevant,hc_irq_cause); | 1372 | hc,relevant,hc_irq_cause); |
1372 | 1373 | ||
1373 | for (port = port0; port < port0 + MV_PORTS_PER_HC; port++) { | 1374 | for (port = port0; port < port0 + MV_PORTS_PER_HC; port++) { |
1375 | u8 ata_status = 0; | ||
1374 | ap = host_set->ports[port]; | 1376 | ap = host_set->ports[port]; |
1375 | hard_port = port & MV_PORT_MASK; /* range 0-3 */ | 1377 | hard_port = port & MV_PORT_MASK; /* range 0-3 */ |
1376 | handled = 0; /* ensure ata_status is set if handled++ */ | 1378 | handled = 0; /* ensure ata_status is set if handled++ */ |