提交 265b7215 编写于 作者: S Sergei Shtylyov 提交者: Jeff Garzik

pata_hpt37x: fix HPT370 DMA timeouts

The libata driver has copied the code from the IDE driver which caused a post
2.4.18 regression on many HPT370[A] chips -- DMA stopped to work completely,
only causing timeouts.  Now remove hpt370_bmdma_start() for good...
Signed-off-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
上级 79b42bab
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* Copyright (C) 1999-2003 Andre Hedrick <andre@linux-ide.org> * Copyright (C) 1999-2003 Andre Hedrick <andre@linux-ide.org>
* Portions Copyright (C) 2001 Sun Microsystems, Inc. * Portions Copyright (C) 2001 Sun Microsystems, Inc.
* Portions Copyright (C) 2003 Red Hat Inc * Portions Copyright (C) 2003 Red Hat Inc
* Portions Copyright (C) 2005-2007 MontaVista Software, Inc. * Portions Copyright (C) 2005-2009 MontaVista Software, Inc.
* *
* TODO * TODO
* Look into engine reset on timeout errors. Should not be required. * Look into engine reset on timeout errors. Should not be required.
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
#include <linux/libata.h> #include <linux/libata.h>
#define DRV_NAME "pata_hpt37x" #define DRV_NAME "pata_hpt37x"
#define DRV_VERSION "0.6.11" #define DRV_VERSION "0.6.12"
struct hpt_clock { struct hpt_clock {
u8 xfer_speed; u8 xfer_speed;
...@@ -444,23 +444,6 @@ static void hpt370_set_dmamode(struct ata_port *ap, struct ata_device *adev) ...@@ -444,23 +444,6 @@ static void hpt370_set_dmamode(struct ata_port *ap, struct ata_device *adev)
pci_write_config_dword(pdev, addr1, reg | mode); pci_write_config_dword(pdev, addr1, reg | mode);
} }
/**
* hpt370_bmdma_start - DMA engine begin
* @qc: ATA command
*
* The 370 and 370A want us to reset the DMA engine each time we
* use it. The 372 and later are fine.
*/
static void hpt370_bmdma_start(struct ata_queued_cmd *qc)
{
struct ata_port *ap = qc->ap;
struct pci_dev *pdev = to_pci_dev(ap->host->dev);
pci_write_config_byte(pdev, 0x50 + 4 * ap->port_no, 0x37);
udelay(10);
ata_bmdma_start(qc);
}
/** /**
* hpt370_bmdma_end - DMA engine stop * hpt370_bmdma_end - DMA engine stop
* @qc: ATA command * @qc: ATA command
...@@ -598,7 +581,6 @@ static struct scsi_host_template hpt37x_sht = { ...@@ -598,7 +581,6 @@ static struct scsi_host_template hpt37x_sht = {
static struct ata_port_operations hpt370_port_ops = { static struct ata_port_operations hpt370_port_ops = {
.inherits = &ata_bmdma_port_ops, .inherits = &ata_bmdma_port_ops,
.bmdma_start = hpt370_bmdma_start,
.bmdma_stop = hpt370_bmdma_stop, .bmdma_stop = hpt370_bmdma_stop,
.mode_filter = hpt370_filter, .mode_filter = hpt370_filter,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册