summaryrefslogtreecommitdiff
path: root/packages/linux/ixp4xx-kernel/2.6.16/70-artop-latency.patch
blob: ad3ad11999d9a9c818001bbb5474ab18abedc9b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
On some controllers the pci latency timer
default value does not allow burst mode.
This patch fixes the latency value if it
is <= 0x80.

Signed-off-by: Alessandro Zummo <a.zummo@towertech.it>

---
 drivers/scsi/pata_artop.c |    7 +++++++
 1 file changed, 7 insertions(+)

--- linux-ixp4xx.orig/drivers/scsi/pata_artop.c	2006-02-21 02:53:43.000000000 +0100
+++ linux-ixp4xx/drivers/scsi/pata_artop.c	2006-02-21 02:54:01.000000000 +0100
@@ -450,6 +450,13 @@ static int artop_init_one (struct pci_de
 		pci_read_config_byte(pdev, 0x49, &reg);		   
 		pci_write_config_byte(pdev, 0x49, reg & ~ 0x30);
 
+		/* PCI latency must be > 0x80 for burst mode, tweak it
+		 * if required.
+		 */
+		pci_read_config_byte(pdev, PCI_LATENCY_TIMER, &reg);
+		if (reg <= 0x80)
+			pci_write_config_byte(pdev, PCI_LATENCY_TIMER, 0x90);
+
 		/* Enable IRQ output and burst mode */
 		pci_read_config_byte(pdev, 0x4a, &reg);
 		pci_write_config_byte(pdev, 0x4a, (reg & ~0x01) | 0x80);