diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-06-15 15:00:21 -0400 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-06-15 15:00:21 -0400 |
commit | 62128b2ca812c1266f4ff7bac068bf0b626c6179 (patch) | |
tree | 057f05a7fedf5f7b762d7408ffbe9588732b38e0 /drivers | |
parent | 7775c9753b94fe429dc4323360d6502c95e0dd6e (diff) |
opti621: disable read prefetch
This fixes 2.6.25 regression (kernel.org bugzilla bug #10723) caused by:
commit 912fb29a36a7269ac1c4a4df45bc0ac1d2637972
Author: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Date: Fri Oct 19 00:30:11 2007 +0200
opti621: always tune PIO
...
Based on a bugreport from Juergen Kosel & inspired by pata_opti.c code.
Bisected-by: Juergen Kosel <juergen.kosel@gmx.de>
Tested-by: Juergen Kosel <juergen.kosel@gmx.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/ide/pci/opti621.c | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/drivers/ide/pci/opti621.c b/drivers/ide/pci/opti621.c index 6e99080497bf..e31e0f970a2c 100644 --- a/drivers/ide/pci/opti621.c +++ b/drivers/ide/pci/opti621.c | |||
@@ -102,18 +102,6 @@ | |||
102 | * address: 50 ns, data: 50 ns, recovery: 100 ns. | 102 | * address: 50 ns, data: 50 ns, recovery: 100 ns. |
103 | */ | 103 | */ |
104 | 104 | ||
105 | /* #define READ_PREFETCH 0 */ | ||
106 | /* Uncomment for disable read prefetch. | ||
107 | * There is some readprefetch capatibility in hdparm, | ||
108 | * but when I type hdparm -P 1 /dev/hda, I got errors | ||
109 | * and till reset drive is inaccessible. | ||
110 | * This (hw) read prefetch is safe on my drive. | ||
111 | */ | ||
112 | |||
113 | #ifndef READ_PREFETCH | ||
114 | #define READ_PREFETCH 0x40 /* read prefetch is enabled */ | ||
115 | #endif /* else read prefetch is disabled */ | ||
116 | |||
117 | #define READ_REG 0 /* index of Read cycle timing register */ | 105 | #define READ_REG 0 /* index of Read cycle timing register */ |
118 | #define WRITE_REG 1 /* index of Write cycle timing register */ | 106 | #define WRITE_REG 1 /* index of Write cycle timing register */ |
119 | #define CNTRL_REG 3 /* index of Control register */ | 107 | #define CNTRL_REG 3 /* index of Control register */ |
@@ -264,7 +252,8 @@ static void opti621_set_pio_mode(ide_drive_t *drive, const u8 pio) | |||
264 | 252 | ||
265 | cycle1 = ((first.data_time-1)<<4) | (first.recovery_time-2); | 253 | cycle1 = ((first.data_time-1)<<4) | (first.recovery_time-2); |
266 | cycle2 = ((second.data_time-1)<<4) | (second.recovery_time-2); | 254 | cycle2 = ((second.data_time-1)<<4) | (second.recovery_time-2); |
267 | misc = READ_PREFETCH | ((ax-1)<<4) | ((drdy-2)<<1); | 255 | |
256 | misc = ((ax - 1) << 4) | ((drdy - 2) << 1); | ||
268 | 257 | ||
269 | #ifdef OPTI621_DEBUG | 258 | #ifdef OPTI621_DEBUG |
270 | printk("%s: master: address: %d, data: %d, " | 259 | printk("%s: master: address: %d, data: %d, " |