Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 62128b2c authored by Bartlomiej Zolnierkiewicz's avatar Bartlomiej Zolnierkiewicz
Browse files

opti621: disable read prefetch



This fixes 2.6.25 regression (kernel.org bugzilla bug #10723) caused by:

commit 912fb29a
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: default avatarJuergen Kosel <juergen.kosel@gmx.de>
Tested-by: default avatarJuergen Kosel <juergen.kosel@gmx.de>
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent 7775c975
Loading
Loading
Loading
Loading
+2 −13
Original line number Diff line number Diff line
@@ -102,18 +102,6 @@
 *  address: 50 ns, data: 50 ns, recovery: 100 ns.
 */

/* #define READ_PREFETCH 0 */
/* Uncomment for disable read prefetch.
 * There is some readprefetch capatibility in hdparm,
 * but when I type hdparm -P 1 /dev/hda, I got errors
 * and till reset drive is inaccessible.
 * This (hw) read prefetch is safe on my drive.
 */

#ifndef READ_PREFETCH
#define READ_PREFETCH 0x40 /* read prefetch is enabled */
#endif /* else read prefetch is disabled */

#define READ_REG 0	/* index of Read cycle timing register */
#define WRITE_REG 1	/* index of Write cycle timing register */
#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)

	cycle1 = ((first.data_time-1)<<4)  | (first.recovery_time-2);
	cycle2 = ((second.data_time-1)<<4) | (second.recovery_time-2);
	misc = READ_PREFETCH | ((ax-1)<<4) | ((drdy-2)<<1);

	misc = ((ax - 1) << 4) | ((drdy - 2) << 1);

#ifdef OPTI621_DEBUG
	printk("%s: master: address: %d, data: %d, "