diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
commit | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch) | |
tree | 0bba044c4ce775e45a88a51686b5d9f90697ea9d /drivers/ide/pci/rz1000.c |
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.
Let it rip!
Diffstat (limited to 'drivers/ide/pci/rz1000.c')
-rw-r--r-- | drivers/ide/pci/rz1000.c | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/drivers/ide/pci/rz1000.c b/drivers/ide/pci/rz1000.c new file mode 100644 index 000000000000..608cd7609072 --- /dev/null +++ b/drivers/ide/pci/rz1000.c | |||
@@ -0,0 +1,91 @@ | |||
1 | /* | ||
2 | * linux/drivers/ide/pci/rz1000.c Version 0.06 January 12, 2003 | ||
3 | * | ||
4 | * Copyright (C) 1995-1998 Linus Torvalds & author (see below) | ||
5 | */ | ||
6 | |||
7 | /* | ||
8 | * Principal Author: mlord@pobox.com (Mark Lord) | ||
9 | * | ||
10 | * See linux/MAINTAINERS for address of current maintainer. | ||
11 | * | ||
12 | * This file provides support for disabling the buggy read-ahead | ||
13 | * mode of the RZ1000 IDE chipset, commonly used on Intel motherboards. | ||
14 | * | ||
15 | * Dunno if this fixes both ports, or only the primary port (?). | ||
16 | */ | ||
17 | |||
18 | #undef REALLY_SLOW_IO /* most systems can safely undef this */ | ||
19 | |||
20 | #include <linux/config.h> /* for CONFIG_BLK_DEV_IDEPCI */ | ||
21 | #include <linux/types.h> | ||
22 | #include <linux/module.h> | ||
23 | #include <linux/kernel.h> | ||
24 | #include <linux/delay.h> | ||
25 | #include <linux/timer.h> | ||
26 | #include <linux/mm.h> | ||
27 | #include <linux/ioport.h> | ||
28 | #include <linux/blkdev.h> | ||
29 | #include <linux/hdreg.h> | ||
30 | #include <linux/pci.h> | ||
31 | #include <linux/ide.h> | ||
32 | #include <linux/init.h> | ||
33 | |||
34 | #include <asm/io.h> | ||
35 | |||
36 | static void __devinit init_hwif_rz1000 (ide_hwif_t *hwif) | ||
37 | { | ||
38 | u16 reg; | ||
39 | struct pci_dev *dev = hwif->pci_dev; | ||
40 | |||
41 | hwif->chipset = ide_rz1000; | ||
42 | if (!pci_read_config_word (dev, 0x40, ®) && | ||
43 | !pci_write_config_word(dev, 0x40, reg & 0xdfff)) { | ||
44 | printk(KERN_INFO "%s: disabled chipset read-ahead " | ||
45 | "(buggy RZ1000/RZ1001)\n", hwif->name); | ||
46 | } else { | ||
47 | hwif->serialized = 1; | ||
48 | hwif->drives[0].no_unmask = 1; | ||
49 | hwif->drives[1].no_unmask = 1; | ||
50 | printk(KERN_INFO "%s: serialized, disabled unmasking " | ||
51 | "(buggy RZ1000/RZ1001)\n", hwif->name); | ||
52 | } | ||
53 | } | ||
54 | |||
55 | static ide_pci_device_t rz1000_chipset __devinitdata = { | ||
56 | .name = "RZ100x", | ||
57 | .init_hwif = init_hwif_rz1000, | ||
58 | .channels = 2, | ||
59 | .autodma = NODMA, | ||
60 | .bootable = ON_BOARD, | ||
61 | }; | ||
62 | |||
63 | static int __devinit rz1000_init_one(struct pci_dev *dev, const struct pci_device_id *id) | ||
64 | { | ||
65 | return ide_setup_pci_device(dev, &rz1000_chipset); | ||
66 | } | ||
67 | |||
68 | static struct pci_device_id rz1000_pci_tbl[] = { | ||
69 | { PCI_VENDOR_ID_PCTECH, PCI_DEVICE_ID_PCTECH_RZ1000, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | ||
70 | { PCI_VENDOR_ID_PCTECH, PCI_DEVICE_ID_PCTECH_RZ1001, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | ||
71 | { 0, }, | ||
72 | }; | ||
73 | MODULE_DEVICE_TABLE(pci, rz1000_pci_tbl); | ||
74 | |||
75 | static struct pci_driver driver = { | ||
76 | .name = "RZ1000_IDE", | ||
77 | .id_table = rz1000_pci_tbl, | ||
78 | .probe = rz1000_init_one, | ||
79 | }; | ||
80 | |||
81 | static int rz1000_ide_init(void) | ||
82 | { | ||
83 | return ide_pci_register_driver(&driver); | ||
84 | } | ||
85 | |||
86 | module_init(rz1000_ide_init); | ||
87 | |||
88 | MODULE_AUTHOR("Andre Hedrick"); | ||
89 | MODULE_DESCRIPTION("PCI driver module for RZ1000 IDE"); | ||
90 | MODULE_LICENSE("GPL"); | ||
91 | |||