View | Details | Raw Unified | Return to bug 8627 | Differences between
and this patch

Collapse All | Expand All

(-)00_libata-dev/drivers/ata/libata-core.c (-3 / +6 lines)
Lines 5561-5569 inline unsigned int ata_host_intr (struc Link Here
5561
			if (!(host_stat & ATA_DMA_INTR))
5561
			if (!(host_stat & ATA_DMA_INTR))
5562
				goto idle_irq;
5562
				goto idle_irq;
5563
5563
5564
			/* before we do anything else, clear DMA-Start bit */
5565
			ap->ops->bmdma_stop(qc);
5566
5567
			if (unlikely(host_stat & ATA_DMA_ERR)) {
5564
			if (unlikely(host_stat & ATA_DMA_ERR)) {
5568
				/* error when transfering data to/from memory */
5565
				/* error when transfering data to/from memory */
5569
				qc->err_mask |= AC_ERR_HOST_BUS;
5566
				qc->err_mask |= AC_ERR_HOST_BUS;
Lines 5587-5592 inline unsigned int ata_host_intr (struc Link Here
5587
	if (unlikely(status & ATA_BUSY))
5584
	if (unlikely(status & ATA_BUSY))
5588
		goto idle_irq;
5585
		goto idle_irq;
5589
5586
5587
	/* stop DMA */
5588
	if (qc->tf.protocol == ATA_PROT_DMA ||
5589
	    qc->tf.protocol == ATA_PROT_ATAPI_DMA)
5590
		/* before we do anything else, clear DMA-Start bit */
5591
		ap->ops->bmdma_stop(qc);
5592
5590
	/* ack bmdma irq events */
5593
	/* ack bmdma irq events */
5591
	ap->ops->irq_clear(ap);
5594
	ap->ops->irq_clear(ap);
5592
5595

Return to bug 8627