From f07a4c844da9f0ecae5bbee1ab94be56505f26f7 Mon Sep 17 00:00:00 2001 From: Thomas Bushnell Date: Tue, 25 Feb 1997 21:28:37 +0000 Subject: Initial source --- i386/i386at/gpl/linux/block/rz1000.c | 56 ++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 i386/i386at/gpl/linux/block/rz1000.c (limited to 'i386/i386at/gpl/linux/block/rz1000.c') diff --git a/i386/i386at/gpl/linux/block/rz1000.c b/i386/i386at/gpl/linux/block/rz1000.c new file mode 100644 index 0000000..11f1dbd --- /dev/null +++ b/i386/i386at/gpl/linux/block/rz1000.c @@ -0,0 +1,56 @@ +/* + * linux/drivers/block/rz1000.c Version 0.02 Feb 08, 1996 + * + * Copyright (C) 1995-1996 Linus Torvalds & author (see below) + */ + +/* + * Principal Author/Maintainer: mlord@bnr.ca (Mark Lord) + * + * This file provides support for disabling the buggy read-ahead + * mode of the RZ1000 IDE chipset, commonly used on Intel motherboards. + */ + +#undef REALLY_SLOW_IO /* most systems can safely undef this */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "ide.h" + +static void ide_pci_access_error (int rc) +{ + printk("ide: pcibios access failed - %s\n", pcibios_strerror(rc)); +} + +void init_rz1000 (byte bus, byte fn) +{ + int rc; + unsigned short reg; + + printk("ide: buggy RZ1000 interface: "); + if ((rc = pcibios_read_config_word (bus, fn, PCI_COMMAND, ®))) { + ide_pci_access_error (rc); + } else if (!(reg & 1)) { + printk("not enabled\n"); + } else { + if ((rc = pcibios_read_config_word(bus, fn, 0x40, ®)) + || (rc = pcibios_write_config_word(bus, fn, 0x40, reg & 0xdfff))) + { + ide_hwifs[0].no_unmask = 1; + ide_hwifs[1].no_unmask = 1; + ide_hwifs[0].serialized = 1; + ide_pci_access_error (rc); + printk("serialized, disabled unmasking\n"); + } else + printk("disabled read-ahead\n"); + } +} -- cgit v1.2.3