diff options
Diffstat (limited to 'drivers/ide/ide.c')
-rw-r--r-- | drivers/ide/ide.c | 86 |
1 files changed, 4 insertions, 82 deletions
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c index 077fb674a96d..5e88a060df06 100644 --- a/drivers/ide/ide.c +++ b/drivers/ide/ide.c | |||
@@ -16,10 +16,6 @@ | |||
16 | * (usually 14 & 15). | 16 | * (usually 14 & 15). |
17 | * There can be up to two drives per interface, as per the ATA-2 spec. | 17 | * There can be up to two drives per interface, as per the ATA-2 spec. |
18 | * | 18 | * |
19 | * Primary: ide0, port 0x1f0; major=3; hda is minor=0; hdb is minor=64 | ||
20 | * Secondary: ide1, port 0x170; major=22; hdc is minor=0; hdd is minor=64 | ||
21 | * Tertiary: ide2, port 0x???; major=33; hde is minor=0; hdf is minor=64 | ||
22 | * Quaternary: ide3, port 0x???; major=34; hdg is minor=0; hdh is minor=64 | ||
23 | * ... | 19 | * ... |
24 | * | 20 | * |
25 | * From hd.c: | 21 | * From hd.c: |
@@ -47,80 +43,6 @@ | |||
47 | * This was a rewrite of just about everything from hd.c, though some original | 43 | * This was a rewrite of just about everything from hd.c, though some original |
48 | * code is still sprinkled about. Think of it as a major evolution, with | 44 | * code is still sprinkled about. Think of it as a major evolution, with |
49 | * inspiration from lots of linux users, esp. hamish@zot.apana.org.au | 45 | * inspiration from lots of linux users, esp. hamish@zot.apana.org.au |
50 | * | ||
51 | * Version 1.0 ALPHA initial code, primary i/f working okay | ||
52 | * Version 1.3 BETA dual i/f on shared irq tested & working! | ||
53 | * Version 1.4 BETA added auto probing for irq(s) | ||
54 | * Version 1.5 BETA added ALPHA (untested) support for IDE cd-roms, | ||
55 | * ... | ||
56 | * Version 5.50 allow values as small as 20 for idebus= | ||
57 | * Version 5.51 force non io_32bit in drive_cmd_intr() | ||
58 | * change delay_10ms() to delay_50ms() to fix problems | ||
59 | * Version 5.52 fix incorrect invalidation of removable devices | ||
60 | * add "hdx=slow" command line option | ||
61 | * Version 5.60 start to modularize the driver; the disk and ATAPI | ||
62 | * drivers can be compiled as loadable modules. | ||
63 | * move IDE probe code to ide-probe.c | ||
64 | * move IDE disk code to ide-disk.c | ||
65 | * add support for generic IDE device subdrivers | ||
66 | * add m68k code from Geert Uytterhoeven | ||
67 | * probe all interfaces by default | ||
68 | * add ioctl to (re)probe an interface | ||
69 | * Version 6.00 use per device request queues | ||
70 | * attempt to optimize shared hwgroup performance | ||
71 | * add ioctl to manually adjust bandwidth algorithms | ||
72 | * add kerneld support for the probe module | ||
73 | * fix bug in ide_error() | ||
74 | * fix bug in the first ide_get_lock() call for Atari | ||
75 | * don't flush leftover data for ATAPI devices | ||
76 | * Version 6.01 clear hwgroup->active while the hwgroup sleeps | ||
77 | * support HDIO_GETGEO for floppies | ||
78 | * Version 6.02 fix ide_ack_intr() call | ||
79 | * check partition table on floppies | ||
80 | * Version 6.03 handle bad status bit sequencing in ide_wait_stat() | ||
81 | * Version 6.10 deleted old entries from this list of updates | ||
82 | * replaced triton.c with ide-dma.c generic PCI DMA | ||
83 | * added support for BIOS-enabled UltraDMA | ||
84 | * rename all "promise" things to "pdc4030" | ||
85 | * fix EZ-DRIVE handling on small disks | ||
86 | * Version 6.11 fix probe error in ide_scan_devices() | ||
87 | * fix ancient "jiffies" polling bugs | ||
88 | * mask all hwgroup interrupts on each irq entry | ||
89 | * Version 6.12 integrate ioctl and proc interfaces | ||
90 | * fix parsing of "idex=" command line parameter | ||
91 | * Version 6.13 add support for ide4/ide5 courtesy rjones@orchestream.com | ||
92 | * Version 6.14 fixed IRQ sharing among PCI devices | ||
93 | * Version 6.15 added SMP awareness to IDE drivers | ||
94 | * Version 6.16 fixed various bugs; even more SMP friendly | ||
95 | * Version 6.17 fix for newest EZ-Drive problem | ||
96 | * Version 6.18 default unpartitioned-disk translation now "BIOS LBA" | ||
97 | * Version 6.19 Re-design for a UNIFORM driver for all platforms, | ||
98 | * model based on suggestions from Russell King and | ||
99 | * Geert Uytterhoeven | ||
100 | * Promise DC4030VL now supported. | ||
101 | * add support for ide6/ide7 | ||
102 | * delay_50ms() changed to ide_delay_50ms() and exported. | ||
103 | * Version 6.20 Added/Fixed Generic ATA-66 support and hwif detection. | ||
104 | * Added hdx=flash to allow for second flash disk | ||
105 | * detection w/o the hang loop. | ||
106 | * Added support for ide8/ide9 | ||
107 | * Added idex=ata66 for the quirky chipsets that are | ||
108 | * ATA-66 compliant, but have yet to determine a method | ||
109 | * of verification of the 80c cable presence. | ||
110 | * Specifically Promise's PDC20262 chipset. | ||
111 | * Version 6.21 Fixing/Fixed SMP spinlock issue with insight from an old | ||
112 | * hat that clarified original low level driver design. | ||
113 | * Version 6.30 Added SMP support; fixed multmode issues. -ml | ||
114 | * Version 6.31 Debug Share INTR's and request queue streaming | ||
115 | * Native ATA-100 support | ||
116 | * Prep for Cascades Project | ||
117 | * Version 7.00alpha First named revision of ide rearrange | ||
118 | * | ||
119 | * Some additional driver compile-time options are in ./include/linux/ide.h | ||
120 | * | ||
121 | * To do, in likely order of completion: | ||
122 | * - modify kernel to obtain BIOS geometry for drives on 2nd/3rd/4th i/f | ||
123 | * | ||
124 | */ | 46 | */ |
125 | 47 | ||
126 | #define REVISION "Revision: 7.00alpha2" | 48 | #define REVISION "Revision: 7.00alpha2" |
@@ -455,6 +377,10 @@ static void ide_hwif_restore(ide_hwif_t *hwif, ide_hwif_t *tmp_hwif) | |||
455 | hwif->straight8 = tmp_hwif->straight8; | 377 | hwif->straight8 = tmp_hwif->straight8; |
456 | hwif->bus_state = tmp_hwif->bus_state; | 378 | hwif->bus_state = tmp_hwif->bus_state; |
457 | 379 | ||
380 | hwif->host_flags = tmp_hwif->host_flags; | ||
381 | |||
382 | hwif->pio_mask = tmp_hwif->pio_mask; | ||
383 | |||
458 | hwif->atapi_dma = tmp_hwif->atapi_dma; | 384 | hwif->atapi_dma = tmp_hwif->atapi_dma; |
459 | hwif->ultra_mask = tmp_hwif->ultra_mask; | 385 | hwif->ultra_mask = tmp_hwif->ultra_mask; |
460 | hwif->mwdma_mask = tmp_hwif->mwdma_mask; | 386 | hwif->mwdma_mask = tmp_hwif->mwdma_mask; |
@@ -1171,10 +1097,6 @@ int generic_ide_ioctl(ide_drive_t *drive, struct file *file, struct block_device | |||
1171 | return 0; | 1097 | return 0; |
1172 | } | 1098 | } |
1173 | 1099 | ||
1174 | case CDROMEJECT: | ||
1175 | case CDROMCLOSETRAY: | ||
1176 | return scsi_cmd_ioctl(file, bdev->bd_disk->queue, bdev->bd_disk, cmd, p); | ||
1177 | |||
1178 | case HDIO_GET_BUSSTATE: | 1100 | case HDIO_GET_BUSSTATE: |
1179 | if (!capable(CAP_SYS_ADMIN)) | 1101 | if (!capable(CAP_SYS_ADMIN)) |
1180 | return -EACCES; | 1102 | return -EACCES; |