| From b0bccb18bc523d1d5060d25958f12438062829a9 Mon Sep 17 00:00:00 2001 |
| From: Mark Lord <liml@rtr.ca> |
| Date: Mon, 19 Jan 2009 18:04:37 -0500 |
| Subject: sata_mv: fix 8-port timeouts on 508x/6081 chips |
| |
| From: Mark Lord <liml@rtr.ca> |
| |
| commit b0bccb18bc523d1d5060d25958f12438062829a9 upstream. |
| |
| Fix a longstanding bug for the 8-port Marvell Sata controllers (508x/6081), |
| where accesses to the upper 4 ports would cause lost-interrupts / timeouts |
| for the lower 4-ports. With this patch, the 6081 boards should finally be |
| reliable enough for mainstream use with Linux. |
| |
| Signed-off-by: Mark Lord <mlord@pobox.com> |
| Signed-off-by: Jeff Garzik <jgarzik@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/ata/sata_mv.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/ata/sata_mv.c |
| +++ b/drivers/ata/sata_mv.c |
| @@ -883,7 +883,7 @@ static void mv_start_dma(struct ata_port |
| struct mv_host_priv *hpriv = ap->host->private_data; |
| int hardport = mv_hardport_from_port(ap->port_no); |
| void __iomem *hc_mmio = mv_hc_base_from_port( |
| - mv_host_base(ap->host), hardport); |
| + mv_host_base(ap->host), ap->port_no); |
| u32 hc_irq_cause, ipending; |
| |
| /* clear EDMA event indicators, if any */ |