diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/ata/libata-core.c | 6 | ||||
-rw-r--r-- | drivers/ata/libata-sff.c | 3 | ||||
-rw-r--r-- | drivers/ata/sata_sil.c | 5 |
3 files changed, 11 insertions, 3 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index b35fdcb104ec..7f53ea725bce 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c | |||
@@ -4937,6 +4937,7 @@ unsigned int ata_qc_issue_prot(struct ata_queued_cmd *qc) | |||
4937 | inline unsigned int ata_host_intr (struct ata_port *ap, | 4937 | inline unsigned int ata_host_intr (struct ata_port *ap, |
4938 | struct ata_queued_cmd *qc) | 4938 | struct ata_queued_cmd *qc) |
4939 | { | 4939 | { |
4940 | struct ata_eh_info *ehi = &ap->eh_info; | ||
4940 | u8 status, host_stat = 0; | 4941 | u8 status, host_stat = 0; |
4941 | 4942 | ||
4942 | VPRINTK("ata%u: protocol %d task_state %d\n", | 4943 | VPRINTK("ata%u: protocol %d task_state %d\n", |
@@ -4997,6 +4998,11 @@ inline unsigned int ata_host_intr (struct ata_port *ap, | |||
4997 | ap->ops->irq_clear(ap); | 4998 | ap->ops->irq_clear(ap); |
4998 | 4999 | ||
4999 | ata_hsm_move(ap, qc, status, 0); | 5000 | ata_hsm_move(ap, qc, status, 0); |
5001 | |||
5002 | if (unlikely(qc->err_mask) && (qc->tf.protocol == ATA_PROT_DMA || | ||
5003 | qc->tf.protocol == ATA_PROT_ATAPI_DMA)) | ||
5004 | ata_ehi_push_desc(ehi, "BMDMA stat 0x%x", host_stat); | ||
5005 | |||
5000 | return 1; /* irq handled */ | 5006 | return 1; /* irq handled */ |
5001 | 5007 | ||
5002 | idle_irq: | 5008 | idle_irq: |
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c index a57de4a5aa45..95ff186f0ccd 100644 --- a/drivers/ata/libata-sff.c +++ b/drivers/ata/libata-sff.c | |||
@@ -743,7 +743,6 @@ void ata_bmdma_drive_eh(struct ata_port *ap, ata_prereset_fn_t prereset, | |||
743 | ata_reset_fn_t softreset, ata_reset_fn_t hardreset, | 743 | ata_reset_fn_t softreset, ata_reset_fn_t hardreset, |
744 | ata_postreset_fn_t postreset) | 744 | ata_postreset_fn_t postreset) |
745 | { | 745 | { |
746 | struct ata_eh_context *ehc = &ap->eh_context; | ||
747 | struct ata_queued_cmd *qc; | 746 | struct ata_queued_cmd *qc; |
748 | unsigned long flags; | 747 | unsigned long flags; |
749 | int thaw = 0; | 748 | int thaw = 0; |
@@ -763,8 +762,6 @@ void ata_bmdma_drive_eh(struct ata_port *ap, ata_prereset_fn_t prereset, | |||
763 | 762 | ||
764 | host_stat = ap->ops->bmdma_status(ap); | 763 | host_stat = ap->ops->bmdma_status(ap); |
765 | 764 | ||
766 | ata_ehi_push_desc(&ehc->i, "BMDMA stat 0x%x", host_stat); | ||
767 | |||
768 | /* BMDMA controllers indicate host bus error by | 765 | /* BMDMA controllers indicate host bus error by |
769 | * setting DMA_ERR bit and timing out. As it wasn't | 766 | * setting DMA_ERR bit and timing out. As it wasn't |
770 | * really a timeout event, adjust error mask and | 767 | * really a timeout event, adjust error mask and |
diff --git a/drivers/ata/sata_sil.c b/drivers/ata/sata_sil.c index f844a1faba18..7808d0369d91 100644 --- a/drivers/ata/sata_sil.c +++ b/drivers/ata/sata_sil.c | |||
@@ -356,6 +356,7 @@ static void sil_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val) | |||
356 | 356 | ||
357 | static void sil_host_intr(struct ata_port *ap, u32 bmdma2) | 357 | static void sil_host_intr(struct ata_port *ap, u32 bmdma2) |
358 | { | 358 | { |
359 | struct ata_eh_info *ehi = &ap->eh_info; | ||
359 | struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->active_tag); | 360 | struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->active_tag); |
360 | u8 status; | 361 | u8 status; |
361 | 362 | ||
@@ -428,6 +429,10 @@ static void sil_host_intr(struct ata_port *ap, u32 bmdma2) | |||
428 | /* kick HSM in the ass */ | 429 | /* kick HSM in the ass */ |
429 | ata_hsm_move(ap, qc, status, 0); | 430 | ata_hsm_move(ap, qc, status, 0); |
430 | 431 | ||
432 | if (unlikely(qc->err_mask) && (qc->tf.protocol == ATA_PROT_DMA || | ||
433 | qc->tf.protocol == ATA_PROT_ATAPI_DMA)) | ||
434 | ata_ehi_push_desc(ehi, "BMDMA2 stat 0x%x", bmdma2); | ||
435 | |||
431 | return; | 436 | return; |
432 | 437 | ||
433 | err_hsm: | 438 | err_hsm: |