1 diff -urN linux.ide.orig/drivers/ide/Config.in linux.ide/drivers/ide/Config.in
2 --- linux.ide.orig/drivers/ide/Config.in Sun Sep 29 15:53:53 2002
3 +++ linux.ide/drivers/ide/Config.in Sun Sep 29 15:54:43 2002
5 dep_mbool ' ALI M15x3 WDC support (DANGEROUS)' CONFIG_WDC_ALI15X3 $CONFIG_BLK_DEV_ALI15X3
6 dep_bool ' AMD Viper support' CONFIG_BLK_DEV_AMD74XX $CONFIG_BLK_DEV_IDEDMA_PCI
7 dep_mbool ' AMD Viper ATA-66 Override (WIP)' CONFIG_AMD74XX_OVERRIDE $CONFIG_BLK_DEV_AMD74XX $CONFIG_IDEDMA_PCI_WIP
8 - dep_bool ' CMD64X chipset support' CONFIG_BLK_DEV_CMD64X $CONFIG_BLK_DEV_IDEDMA_PCI
9 + dep_bool ' CMD64X and CMD680 chipset support' CONFIG_BLK_DEV_CMD64X $CONFIG_BLK_DEV_IDEDMA_PCI
10 dep_bool ' CMD680 chipset tuning support' CONFIG_BLK_DEV_CMD680 $CONFIG_BLK_DEV_CMD64X
11 dep_bool ' CY82C693 chipset support' CONFIG_BLK_DEV_CY82C693 $CONFIG_BLK_DEV_IDEDMA_PCI
12 dep_bool ' Cyrix CS5530 MediaGX chipset support' CONFIG_BLK_DEV_CS5530 $CONFIG_BLK_DEV_IDEDMA_PCI
13 dep_bool ' HPT34X chipset support' CONFIG_BLK_DEV_HPT34X $CONFIG_BLK_DEV_IDEDMA_PCI
14 dep_mbool ' HPT34X AUTODMA support (WIP)' CONFIG_HPT34X_AUTODMA $CONFIG_BLK_DEV_HPT34X $CONFIG_IDEDMA_PCI_WIP
15 - dep_bool ' HPT366 chipset support' CONFIG_BLK_DEV_HPT366 $CONFIG_BLK_DEV_IDEDMA_PCI
16 + dep_bool ' HPT366/368/370 chipset support' CONFIG_BLK_DEV_HPT366 $CONFIG_BLK_DEV_IDEDMA_PCI
17 if [ "$CONFIG_X86" = "y" -o "$CONFIG_IA64" = "y" ]; then
18 dep_mbool ' Intel PIIXn chipsets support' CONFIG_BLK_DEV_PIIX $CONFIG_BLK_DEV_IDEDMA_PCI
19 dep_mbool ' PIIXn Tuning support' CONFIG_PIIX_TUNING $CONFIG_BLK_DEV_PIIX $CONFIG_IDEDMA_PCI_AUTO
21 EXT_DIRECT CONFIG_IDE_EXT_DIRECT" 8xx_PCCARD
24 - bool ' Other IDE chipset support' CONFIG_IDE_CHIPSETS
26 + dep_bool ' Other IDE chipset support' CONFIG_IDE_CHIPSETS $CONFIG_ISA
27 if [ "$CONFIG_IDE_CHIPSETS" = "y" ]; then
28 comment 'Note: most of these also require special kernel boot parameters'
29 bool ' Generic 4 drives/port support' CONFIG_BLK_DEV_4DRIVES
30 diff -urN linux.ide.orig/drivers/ide/hpt366.c linux.ide/drivers/ide/hpt366.c
31 --- linux.ide.orig/drivers/ide/hpt366.c Sun Sep 29 15:53:53 2002
32 +++ linux.ide/drivers/ide/hpt366.c Sun Sep 29 15:59:45 2002
34 dma_func = ide_dma_off_quietly;
37 - config_chipset_for_pio(drive);
38 +/* config_chipset_for_pio(drive); */
40 return HWIF(drive)->dmaproc(dma_func, drive);
42 diff -urN linux.ide.orig/drivers/ide/ide-cd.c linux.ide/drivers/ide/ide-cd.c
43 --- linux.ide.orig/drivers/ide/ide-cd.c Sun Sep 29 15:53:53 2002
44 +++ linux.ide/drivers/ide/ide-cd.c Sun Sep 29 15:54:43 2002
46 layer. the packet must be complete, as we do not
48 memset(&pc, 0, sizeof(pc));
50 + memset(cgc->sense, 0, sizeof(struct request_sense));
51 memcpy(pc.c, cgc->cmd, CDROM_PACKET_SIZE);
52 pc.buffer = cgc->buffer;
53 pc.buflen = cgc->buflen;
55 devinfo->dev = MKDEV (HWIF(drive)->major, minor);
56 devinfo->ops = &ide_cdrom_dops;
58 - *(int *)&devinfo->speed = CDROM_STATE_FLAGS (drive)->current_speed;
59 - *(int *)&devinfo->capacity = nslots;
60 + devinfo->speed = CDROM_STATE_FLAGS (drive)->current_speed;
61 + devinfo->capacity = nslots;
62 devinfo->handle = (void *) drive;
63 strcpy(devinfo->name, drive->name);
65 diff -urN linux.ide.orig/drivers/ide/ide-features.c linux.ide/drivers/ide/ide-features.c
66 --- linux.ide.orig/drivers/ide/ide-features.c Sun Sep 29 15:53:53 2002
67 +++ linux.ide/drivers/ide/ide-features.c Sun Sep 29 15:54:43 2002
72 +#ifdef CONFIG_BLK_DEV_IDEDMA
74 * All hosts that use the 80c ribbon mus use!
76 byte eighty_ninty_three (ide_drive_t *drive)
78 +#ifdef CONFIG_BLK_DEV_IDEPCI
79 + if (HWIF(drive)->pci_devid.vid==0x105a)
80 + return(HWIF(drive)->udma_four);
82 + /* PDC202XX: that's because some HDD will return wrong info */
83 return ((byte) ((HWIF(drive)->udma_four) &&
84 #ifndef CONFIG_IDEDMA_IVB
85 (drive->id->hw_config & 0x4000) &&
86 #endif /* CONFIG_IDEDMA_IVB */
87 (drive->id->hw_config & 0x6000)) ? 1 : 0);
89 +#endif // CONFIG_BLK_DEV_IDEDMA
92 * Similar to ide_wait_stat(), except it never calls ide_error internally.
94 EXPORT_SYMBOL(ide_driveid_update);
95 EXPORT_SYMBOL(ide_ata66_check);
96 EXPORT_SYMBOL(set_transfer);
97 +#ifdef CONFIG_BLK_DEV_IDEDMA
98 EXPORT_SYMBOL(eighty_ninty_three);
99 +#endif // CONFIG_BLK_DEV_IDEDMA
100 EXPORT_SYMBOL(ide_config_drive_speed);
102 diff -urN linux.ide.orig/drivers/ide/ide-pci.c linux.ide/drivers/ide/ide-pci.c
103 --- linux.ide.orig/drivers/ide/ide-pci.c Sun Sep 29 15:53:53 2002
104 +++ linux.ide/drivers/ide/ide-pci.c Sun Sep 29 15:54:43 2002
106 {DEVID_VIA_IDE, "VIA_IDE", NULL, NULL, NULL, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, ON_BOARD, 0 },
107 {DEVID_MR_IDE, "VP_IDE", PCI_VIA82CXXX, ATA66_VIA82CXXX,INIT_VIA82CXXX, DMA_VIA82CXXX, {{0x40,0x02,0x02}, {0x40,0x01,0x01}}, ON_BOARD, 0 },
108 {DEVID_VP_IDE, "VP_IDE", PCI_VIA82CXXX, ATA66_VIA82CXXX,INIT_VIA82CXXX, DMA_VIA82CXXX, {{0x40,0x02,0x02}, {0x40,0x01,0x01}}, ON_BOARD, 0 },
109 -#ifdef CONFIG_PDC202XX_FORCE
110 +#ifndef CONFIG_PDC202XX_FORCE
111 {DEVID_PDC20246,"PDC20246", PCI_PDC202XX, NULL, INIT_PDC202XX, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, OFF_BOARD, 16 },
112 {DEVID_PDC20262,"PDC20262", PCI_PDC202XX, ATA66_PDC202XX, INIT_PDC202XX, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, OFF_BOARD, 48 },
113 {DEVID_PDC20265,"PDC20265", PCI_PDC202XX, ATA66_PDC202XX, INIT_PDC202XX, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, ON_BOARD, 48 },
114 @@ -674,25 +674,18 @@
118 - if (dev->class >> 8 == PCI_CLASS_STORAGE_RAID)
120 - /* By rights we want to ignore these, but the Promise Fastrak
121 - people have some strange ideas about proprietary so we have
122 - to act otherwise on those. The supertrak however we need
124 - if (IDE_PCI_DEVID_EQ(d->devid, DEVID_PDC20265))
126 - printk(KERN_INFO "ide: Found promise 20265 in RAID mode.\n");
127 - if(dev->bus->self && dev->bus->self->vendor == PCI_VENDOR_ID_INTEL &&
128 - dev->bus->self->device == PCI_DEVICE_ID_INTEL_I960)
130 - printk(KERN_INFO "ide: Skipping Promise PDC20265 attached to I2O RAID controller.\n");
133 +#ifdef CONFIG_PDC202XX_FORCE
134 + if (dev->class >> 8 == PCI_CLASS_STORAGE_RAID) {
136 + * By rights we want to ignore Promise FastTrak and SuperTrak
137 + * series here, those use own driver.
139 + if (dev->vendor == PCI_VENDOR_ID_PROMISE) {
140 + printk(KERN_INFO "ide: Skipping Promise RAID controller.\n");
143 - /* Its attached to something else, just a random bridge.
144 - Suspect a fastrak and fall through */
146 +#endif /* CONFIG_PDC202XX_FORCE */
147 if ((dev->class & ~(0xfa)) != ((PCI_CLASS_STORAGE_IDE << 8) | 5)) {
148 printk("%s: not 100%% native mode: will probe irqs later\n", d->name);
152 pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq);
153 pci_read_config_byte(dev2, PCI_INTERRUPT_LINE, &irq2);
156 dev2->irq = dev->irq;
157 - pci_write_config_byte(dev2, PCI_INTERRUPT_LINE, irq);
158 + pci_write_config_byte(dev2, PCI_INTERRUPT_LINE, irq);
162 diff -urN linux.ide.orig/drivers/ide/ide-probe.c-1.07 linux.ide/drivers/ide/ide-probe.c-1.07
163 --- linux.ide.orig/drivers/ide/ide-probe.c-1.07 Sun Sep 29 15:53:54 2002
164 +++ linux.ide/drivers/ide/ide-probe.c-1.07 Sun Sep 29 15:54:43 2002
166 gd = kmalloc (sizeof(struct gendisk), GFP_KERNEL);
169 + memset (gd, 0, sizeof(struct gendisk));
170 gd->sizes = kmalloc (minors * sizeof(int), GFP_KERNEL);
172 goto err_kmalloc_gd_sizes;
173 diff -urN linux.ide.orig/drivers/ide/sis5513.c linux.ide/drivers/ide/sis5513.c
174 --- linux.ide.orig/drivers/ide/sis5513.c Sun Sep 29 15:53:54 2002
175 +++ linux.ide/drivers/ide/sis5513.c Sun Sep 29 15:54:43 2002
176 @@ -172,13 +172,13 @@
177 unsigned char chipset_family;
179 } SiSHostChipInfo[] = {
180 - { "SiS750", PCI_DEVICE_ID_SI_750, ATA_100, SIS5513_LATENCY },
181 - { "SiS745", PCI_DEVICE_ID_SI_745, ATA_100, SIS5513_LATENCY },
182 +// { "SiS750", PCI_DEVICE_ID_SI_750, ATA_100, SIS5513_LATENCY },
183 +// { "SiS745", PCI_DEVICE_ID_SI_745, ATA_100, SIS5513_LATENCY },
184 { "SiS740", PCI_DEVICE_ID_SI_740, ATA_100, SIS5513_LATENCY },
185 { "SiS735", PCI_DEVICE_ID_SI_735, ATA_100, SIS5513_LATENCY },
186 { "SiS730", PCI_DEVICE_ID_SI_730, ATA_100a, SIS5513_LATENCY },
187 - { "SiS650", PCI_DEVICE_ID_SI_650, ATA_100, SIS5513_LATENCY },
188 - { "SiS645", PCI_DEVICE_ID_SI_645, ATA_100, SIS5513_LATENCY },
189 +// { "SiS650", PCI_DEVICE_ID_SI_650, ATA_100, SIS5513_LATENCY },
190 +// { "SiS645", PCI_DEVICE_ID_SI_645, ATA_100, SIS5513_LATENCY },
191 { "SiS635", PCI_DEVICE_ID_SI_635, ATA_100, SIS5513_LATENCY },
192 { "SiS640", PCI_DEVICE_ID_SI_640, ATA_66, SIS5513_LATENCY },
193 { "SiS630", PCI_DEVICE_ID_SI_630, ATA_66, SIS5513_LATENCY },
194 diff -urN linux.ide.orig/drivers/ide/via82cxxx.c linux.ide/drivers/ide/via82cxxx.c
195 --- linux.ide.orig/drivers/ide/via82cxxx.c Sun Sep 29 15:53:54 2002
196 +++ linux.ide/drivers/ide/via82cxxx.c Sun Sep 29 16:58:35 2002
201 * Backported to 2.2.21rc3 2002/05/20 by Krzysztof Oledzki
203 - * Copyright (c) 2000-2001 Vojtech Pavlik
204 + * VIA IDE driver for Linux. Supports southbridges:
206 + * vt82c576, vt82c586, vt82c586a, vt82c586b, vt82c596a, vt82c596b,
207 + * vt82c686, vt82c686a, vt82c686b, vt8231, vt8233, vt8233c, vt8233a,
210 + * Copyright (c) 2000-2002 Vojtech Pavlik
212 * Based on the work of:
219 - * VIA IDE driver for Linux. Supports
221 - * vt82c576, vt82c586, vt82c586a, vt82c586b, vt82c596a, vt82c596b,
222 - * vt82c686, vt82c686a, vt82c686b, vt8231, vt8233, vt8233c, vt8233a
224 - * southbridges, which can be found in
226 - * VIA Apollo Master, VP, VP2, VP2/97, VP3, VPX, VPX/97, MVP3, MVP4, P6, Pro,
227 - * ProII, ProPlus, Pro133, Pro133+, Pro133A, Pro133A Dual, Pro133T, Pro133Z,
228 - * PLE133, PLE133T, Pro266, Pro266T, ProP4X266, PM601, PM133, PN133, PL133T,
229 - * PX266, PM266, KX133, KT133, KT133A, KT133E, KLE133, KT266, KX266, KM133,
230 - * KM133A, KL133, KN133, KM266
231 - * PC-Chips VXPro, VXPro+, VXTwo, TXPro-III, TXPro-AGP, AGPPro, ViaGra, BXToo,
233 - * AMD 640, 640 AGP, 750 IronGate, 760, 760MP
234 - * ETEQ 6618, 6628, 6629, 6638
237 - * chipsets. Supports
239 - * PIO 0-5, MWDMA 0-2, SWDMA 0-2 and UDMA 0-6
241 - * (this includes UDMA33, 66, 100 and 133) modes. UDMA66 and higher modes are
242 - * autoenabled only in case the BIOS has detected a 80 wire cable. To ignore
243 - * the BIOS data and assume the cable is present, use 'ide0=ata66' or
244 - * 'ide1=ata66' on the kernel command line.
248 - * This program is free software; you can redistribute it and/or modify
249 - * it under the terms of the GNU General Public License as published by
250 - * the Free Software Foundation; either version 2 of the License, or
251 - * (at your option) any later version.
253 - * This program is distributed in the hope that it will be useful,
254 - * but WITHOUT ANY WARRANTY; without even the implied warranty of
255 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
256 - * GNU General Public License for more details.
258 - * You should have received a copy of the GNU General Public License
259 - * along with this program; if not, write to the Free Software
260 - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
262 - * Should you need to contact me, the author, you can do so either by
263 - * e-mail - mail your message to <vojtech@ucw.cz>, or by paper mail:
264 - * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic
265 + * Tis program is free software; you can redistribute it and/or modify it
266 + * under the terms of the GNU General Public License version 2 as published by
267 + * the Free Software Foundation.nclude <linux/kernel.h>
270 #include <linux/config.h>
272 } via_isa_bridges[] = {
273 #ifdef FUTURE_BRIDGES
274 { "vt8237", PCI_DEVICE_ID_VIA_8237, 0x00, 0x2f, VIA_UDMA_133 },
275 - { "vt8235", PCI_DEVICE_ID_VIA_8235, 0x00, 0x2f, VIA_UDMA_133 },
277 + { "vt8235", PCI_DEVICE_ID_VIA_8235, 0x00, 0x2f, VIA_UDMA_133 },
278 { "vt8233a", PCI_DEVICE_ID_VIA_8233A, 0x00, 0x2f, VIA_UDMA_133 },
279 { "vt8233c", PCI_DEVICE_ID_VIA_8233C_0, 0x00, 0x2f, VIA_UDMA_100 },
280 { "vt8233", PCI_DEVICE_ID_VIA_8233_0, 0x00, 0x2f, VIA_UDMA_100 },
281 { "vt8231", PCI_DEVICE_ID_VIA_8231, 0x00, 0x2f, VIA_UDMA_100 },
282 - { "vt82c686b", PCI_DEVICE_ID_VIA_82C686, 0x40, 0x4f, VIA_UDMA_100 },
283 +// { "vt82c686b", PCI_DEVICE_ID_VIA_82C686, 0x40, 0x4f, VIA_UDMA_100 },
284 { "vt82c686a", PCI_DEVICE_ID_VIA_82C686, 0x10, 0x2f, VIA_UDMA_66 },
285 { "vt82c686", PCI_DEVICE_ID_VIA_82C686, 0x00, 0x0f, VIA_UDMA_33 | VIA_BAD_CLK66 },
286 { "vt82c596b", PCI_DEVICE_ID_VIA_82C596, 0x10, 0x2f, VIA_UDMA_66 },
287 { "vt82c596a", PCI_DEVICE_ID_VIA_82C596, 0x00, 0x0f, VIA_UDMA_33 | VIA_BAD_CLK66 },
288 - { "vt82c586b", PCI_DEVICE_ID_VIA_82C586_0, 0x47, 0x4f, VIA_UDMA_33 | VIA_SET_FIFO },
289 - { "vt82c586b", PCI_DEVICE_ID_VIA_82C586_0, 0x40, 0x46, VIA_UDMA_33 | VIA_SET_FIFO | VIA_BAD_PREQ },
290 - { "vt82c586b", PCI_DEVICE_ID_VIA_82C586_0, 0x30, 0x3f, VIA_UDMA_33 | VIA_SET_FIFO },
291 +// { "vt82c586b", PCI_DEVICE_ID_VIA_82C586_0, 0x47, 0x4f, VIA_UDMA_33 | VIA_SET_FIFO },
292 +// { "vt82c586b", PCI_DEVICE_ID_VIA_82C586_0, 0x40, 0x46, VIA_UDMA_33 | VIA_SET_FIFO | VIA_BAD_PREQ },
293 +// { "vt82c586b", PCI_DEVICE_ID_VIA_82C586_0, 0x30, 0x3f, VIA_UDMA_33 | VIA_SET_FIFO },
294 { "vt82c586a", PCI_DEVICE_ID_VIA_82C586_0, 0x20, 0x2f, VIA_UDMA_33 | VIA_SET_FIFO },
295 { "vt82c586", PCI_DEVICE_ID_VIA_82C586_0, 0x00, 0x0f, VIA_UDMA_NONE | VIA_SET_FIFO },
296 { "vt82c576", PCI_DEVICE_ID_VIA_82C576, 0x00, 0x2f, VIA_UDMA_NONE | VIA_SET_FIFO | VIA_NO_UNMASK },
299 via_print("----------VIA BusMastering IDE Configuration----------------");
301 - via_print("Driver Version: 3.34");
302 + via_print("Driver Version: 3.35");
303 via_print("South Bridge: VIA %s", via_config->name);
305 pci_read_config_byte(isa_dev, PCI_REVISION_ID, &t);
309 if (!via_config->id) {
310 - printk(KERN_WARNING "VP_IDE: Unknown VIA SouthBridge, contact Vojtech Pavlik <vojtech@ucw.cz>\n");
311 + printk(KERN_WARNING "VP_IDE: Unknown VIA SouthBridge, disabling DMA.\n");
315 diff -urN linux.ide.orig/include/linux/pci.h linux.ide/include/linux/pci.h
316 --- linux.ide.orig/include/linux/pci.h Sun Sep 29 15:53:56 2002
317 +++ linux.ide/include/linux/pci.h Sun Sep 29 16:04:18 2002
319 #define PCI_DEVICE_ID_VIA_8622 0x3102
320 #define PCI_DEVICE_ID_VIA_8361 0x3112
321 #define PCI_DEVICE_ID_VIA_8233A 0x3147
322 +#define PCI_DEVICE_ID_VIA_8235 0x3177
323 #define PCI_DEVICE_ID_VIA_86C100A 0x6100
324 #define PCI_DEVICE_ID_VIA_8231 0x8231
325 #define PCI_DEVICE_ID_VIA_8231_4 0x8235