Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6:
ide: update references to Documentation/ide/ide.txt (v2)
ide: move ide.txt to Documentation/ide/
ide: fix buggy code in ide_register_hw()
ide: fix enabling DMA on it821x in "smart" mode
ide-cd: mark REQ_TYPE_ATA_PC write requests with REQ_RW flag

+57 -43
-2
Documentation/00-INDEX
··· 183 - directory with info about Linux on Intel 32 bit architecture. 184 ia64/ 185 - directory with info about Linux on Intel 64 bit architecture. 186 - ide.txt 187 - - important info for users of ATA devices (IDE/EIDE disks and CD-ROMS). 188 infiniband/ 189 - directory with documents concerning Linux InfiniBand support. 190 initrd.txt
··· 183 - directory with info about Linux on Intel 32 bit architecture. 184 ia64/ 185 - directory with info about Linux on Intel 64 bit architecture. 186 infiniband/ 187 - directory with documents concerning Linux InfiniBand support. 188 initrd.txt
+9 -9
Documentation/cdrom/ide-cd
··· 45 --------------- 46 47 0. The ide-cd relies on the ide disk driver. See 48 - Documentation/ide.txt for up-to-date information on the ide 49 driver. 50 51 1. Make sure that the ide and ide-cd drivers are compiled into the ··· 64 65 Depending on what type of IDE interface you have, you may need to 66 specify additional configuration options. See 67 - Documentation/ide.txt. 68 69 2. You should also ensure that the iso9660 filesystem is either 70 compiled into the kernel or available as a loadable module. You ··· 84 on the primary IDE interface are called `hda' and `hdb', 85 respectively. The drives on the secondary interface are called 86 `hdc' and `hdd'. (Interfaces at other locations get other letters 87 - in the third position; see Documentation/ide.txt.) 88 89 If you want your CDROM drive to be found automatically by the 90 driver, you should make sure your IDE interface uses either the ··· 93 be jumpered as `master'. (If for some reason you cannot configure 94 your system in this manner, you can probably still use the driver. 95 You may have to pass extra configuration information to the kernel 96 - when you boot, however. See Documentation/ide.txt for more 97 information.) 98 99 4. Boot the system. If the drive is recognized, you should see a ··· 201 This section discusses some common problems encountered when trying to 202 use the driver, and some possible solutions. Note that if you are 203 experiencing problems, you should probably also review 204 - Documentation/ide.txt for current information about the underlying 205 IDE support code. Some of these items apply only to earlier versions 206 of the driver, but are mentioned here for completeness. 207 ··· 211 a. Drive is not detected during booting. 212 213 - Review the configuration instructions above and in 214 - Documentation/ide.txt, and check how your hardware is 215 configured. 216 217 - If your drive is the only device on an IDE interface, it should ··· 219 220 - If your IDE interface is not at the standard addresses of 0x170 221 or 0x1f0, you'll need to explicitly inform the driver using a 222 - lilo option. See Documentation/ide.txt. (This feature was 223 added around kernel version 1.3.30.) 224 225 - If the autoprobing is not finding your drive, you can tell the ··· 245 Support for some interfaces needing extra initialization is 246 provided in later 1.3.x kernels. You may need to turn on 247 additional kernel configuration options to get them to work; 248 - see Documentation/ide.txt. 249 250 Even if support is not available for your interface, you may be 251 able to get it to work with the following procedure. First boot ··· 299 be worked around by specifying the `serialize' option when 300 booting. Recent kernels should be able to detect the need for 301 this automatically in most cases, but the detection is not 302 - foolproof. See Documentation/ide.txt for more information 303 about the `serialize' option and the CMD640B. 304 305 - Note that many MS-DOS CDROM drivers will work with such buggy
··· 45 --------------- 46 47 0. The ide-cd relies on the ide disk driver. See 48 + Documentation/ide/ide.txt for up-to-date information on the ide 49 driver. 50 51 1. Make sure that the ide and ide-cd drivers are compiled into the ··· 64 65 Depending on what type of IDE interface you have, you may need to 66 specify additional configuration options. See 67 + Documentation/ide/ide.txt. 68 69 2. You should also ensure that the iso9660 filesystem is either 70 compiled into the kernel or available as a loadable module. You ··· 84 on the primary IDE interface are called `hda' and `hdb', 85 respectively. The drives on the secondary interface are called 86 `hdc' and `hdd'. (Interfaces at other locations get other letters 87 + in the third position; see Documentation/ide/ide.txt.) 88 89 If you want your CDROM drive to be found automatically by the 90 driver, you should make sure your IDE interface uses either the ··· 93 be jumpered as `master'. (If for some reason you cannot configure 94 your system in this manner, you can probably still use the driver. 95 You may have to pass extra configuration information to the kernel 96 + when you boot, however. See Documentation/ide/ide.txt for more 97 information.) 98 99 4. Boot the system. If the drive is recognized, you should see a ··· 201 This section discusses some common problems encountered when trying to 202 use the driver, and some possible solutions. Note that if you are 203 experiencing problems, you should probably also review 204 + Documentation/ide/ide.txt for current information about the underlying 205 IDE support code. Some of these items apply only to earlier versions 206 of the driver, but are mentioned here for completeness. 207 ··· 211 a. Drive is not detected during booting. 212 213 - Review the configuration instructions above and in 214 + Documentation/ide/ide.txt, and check how your hardware is 215 configured. 216 217 - If your drive is the only device on an IDE interface, it should ··· 219 220 - If your IDE interface is not at the standard addresses of 0x170 221 or 0x1f0, you'll need to explicitly inform the driver using a 222 + lilo option. See Documentation/ide/ide.txt. (This feature was 223 added around kernel version 1.3.30.) 224 225 - If the autoprobing is not finding your drive, you can tell the ··· 245 Support for some interfaces needing extra initialization is 246 provided in later 1.3.x kernels. You may need to turn on 247 additional kernel configuration options to get them to work; 248 + see Documentation/ide/ide.txt. 249 250 Even if support is not available for your interface, you may be 251 able to get it to work with the following procedure. First boot ··· 299 be worked around by specifying the `serialize' option when 300 booting. Recent kernels should be able to detect the need for 301 this automatically in most cases, but the detection is not 302 + foolproof. See Documentation/ide/ide.txt for more information 303 about the `serialize' option and the CMD640B. 304 305 - Note that many MS-DOS CDROM drivers will work with such buggy
+10 -10
Documentation/ide.txt Documentation/ide/ide.txt
··· 3 4 ============================================================================== 5 6 - 7 The hdparm utility can be used to control various IDE features on a 8 running system. It is packaged separately. Please Look for it on popular 9 linux FTP sites. 10 - 11 12 13 *** IMPORTANT NOTICES: BUGGY IDE CHIPSETS CAN CORRUPT DATA!! ··· 51 52 ================================================================================ 53 54 - This is the multiple IDE interface driver, as evolved from hd.c. 55 56 It supports up to 9 IDE interfaces per default, on one or more IRQs (usually 57 14 & 15). There can be up to two drives per interface, as per the ATA-6 spec. ··· 215 -------------------------------------------------------- 216 217 "hdx=" is recognized for all "x" from "a" to "h", such as "hdc". 218 - 219 "idex=" is recognized for all "x" from "0" to "3", such as "ide1". 220 221 "hdx=noprobe" : drive may be present, but do not probe for it 222 - 223 "hdx=none" : drive is NOT present, ignore cmos and do not probe 224 - 225 "hdx=nowerr" : ignore the WRERR_STAT bit on this drive 226 - 227 "hdx=cdrom" : drive is present, and is a cdrom drive 228 - 229 "hdx=cyl,head,sect" : disk drive is present, with specified geometry 230 231 "hdx=remap" : remap access of sector 0 to sector 1 (for EZDrive) ··· 261 "idex=base" : probe for an interface at the addr specified, 262 where "base" is usually 0x1f0 or 0x170 263 and "ctl" is assumed to be "base"+0x206 264 - 265 "idex=base,ctl" : specify both base and ctl 266 267 "idex=base,ctl,irq" : specify base, ctl, and irq number ··· 272 to take effect. 273 274 "idex=four" : four drives on idex and ide(x^1) share same ports 275 - 276 "idex=reset" : reset interface after probe 277 278 "idex=ata66" : informs the interface that it has an 80c cable
··· 3 4 ============================================================================== 5 6 + 7 The hdparm utility can be used to control various IDE features on a 8 running system. It is packaged separately. Please Look for it on popular 9 linux FTP sites. 10 + 11 12 13 *** IMPORTANT NOTICES: BUGGY IDE CHIPSETS CAN CORRUPT DATA!! ··· 51 52 ================================================================================ 53 54 + This is the multiple IDE interface driver, as evolved from hd.c. 55 56 It supports up to 9 IDE interfaces per default, on one or more IRQs (usually 57 14 & 15). There can be up to two drives per interface, as per the ATA-6 spec. ··· 215 -------------------------------------------------------- 216 217 "hdx=" is recognized for all "x" from "a" to "h", such as "hdc". 218 + 219 "idex=" is recognized for all "x" from "0" to "3", such as "ide1". 220 221 "hdx=noprobe" : drive may be present, but do not probe for it 222 + 223 "hdx=none" : drive is NOT present, ignore cmos and do not probe 224 + 225 "hdx=nowerr" : ignore the WRERR_STAT bit on this drive 226 + 227 "hdx=cdrom" : drive is present, and is a cdrom drive 228 + 229 "hdx=cyl,head,sect" : disk drive is present, with specified geometry 230 231 "hdx=remap" : remap access of sector 0 to sector 1 (for EZDrive) ··· 261 "idex=base" : probe for an interface at the addr specified, 262 where "base" is usually 0x1f0 or 0x170 263 and "ctl" is assumed to be "base"+0x206 264 + 265 "idex=base,ctl" : specify both base and ctl 266 267 "idex=base,ctl,irq" : specify base, ctl, and irq number ··· 272 to take effect. 273 274 "idex=four" : four drives on idex and ide(x^1) share same ports 275 + 276 "idex=reset" : reset interface after probe 277 278 "idex=ata66" : informs the interface that it has an 80c cable
+12
Documentation/ide/00-INDEX
···
··· 1 + 00-INDEX 2 + - this file 3 + ChangeLog.ide-cd.1994-2004 4 + - ide-cd changelog 5 + ChangeLog.ide-floppy.1996-2002 6 + - ide-floppy changelog 7 + ChangeLog.ide-tape.1995-2002 8 + - ide-tape changelog 9 + ide-tape.txt 10 + - info on the IDE ATAPI streaming tape driver 11 + ide.txt 12 + - important info for users of ATA devices (IDE/EIDE disks and CD-ROMS).
+4 -4
Documentation/kernel-parameters.txt
··· 712 Format: <cyl>,<head>,<sect> 713 714 hd?= [HW] (E)IDE subsystem 715 - hd?lun= See Documentation/ide.txt. 716 717 highmem=nn[KMG] [KNL,BOOT] forces the highmem zone to have an exact 718 size of <nn>. This works even on boxes that have no ··· 766 767 ide= [HW] (E)IDE subsystem 768 Format: ide=nodma or ide=doubler or ide=reverse 769 - See Documentation/ide.txt. 770 771 ide?= [HW] (E)IDE subsystem 772 Format: ide?=noprobe or chipset specific parameters. 773 - See Documentation/ide.txt. 774 775 idebus= [HW] (E)IDE subsystem - VLB/PCI bus speed 776 - See Documentation/ide.txt. 777 778 idle= [X86] 779 Format: idle=poll or idle=mwait
··· 712 Format: <cyl>,<head>,<sect> 713 714 hd?= [HW] (E)IDE subsystem 715 + hd?lun= See Documentation/ide/ide.txt. 716 717 highmem=nn[KMG] [KNL,BOOT] forces the highmem zone to have an exact 718 size of <nn>. This works even on boxes that have no ··· 766 767 ide= [HW] (E)IDE subsystem 768 Format: ide=nodma or ide=doubler or ide=reverse 769 + See Documentation/ide/ide.txt. 770 771 ide?= [HW] (E)IDE subsystem 772 Format: ide?=noprobe or chipset specific parameters. 773 + See Documentation/ide/ide.txt. 774 775 idebus= [HW] (E)IDE subsystem - VLB/PCI bus speed 776 + See Documentation/ide/ide.txt. 777 778 idle= [X86] 779 Format: idle=poll or idle=mwait
+15 -15
drivers/ide/Kconfig
··· 50 To compile this driver as a module, choose M here: the 51 module will be called ide. 52 53 - For further information, please read <file:Documentation/ide.txt>. 54 55 If unsure, say Y. 56 ··· 77 Useful information about large (>540 MB) IDE disks, multiple 78 interfaces, what to do if ATA/IDE devices are not automatically 79 detected, sound card ATA/IDE ports, module support, and other 80 - topics, is contained in <file:Documentation/ide.txt>. For detailed 81 information about hard drives, consult the Disk-HOWTO and the 82 Multi-Disk-HOWTO, available from 83 <http://www.tldp.org/docs.html#howto>. ··· 87 <ftp://ibiblio.org/pub/Linux/system/hardware/>. 88 89 To compile this driver as a module, choose M here and read 90 - <file:Documentation/ide.txt>. The module will be called ide-mod. 91 Do not compile this driver as a module if your root file system (the 92 one containing the directory /) is located on an IDE device. 93 ··· 98 99 if BLK_DEV_IDE 100 101 - comment "Please see Documentation/ide.txt for help/info on IDE drives" 102 103 config BLK_DEV_IDE_SATA 104 bool "Support for SATA (deprecated; conflicts with libata SATA driver)" ··· 235 along with other IDE devices, as "hdb" or "hdc", or something 236 similar, and will be mapped to a character device such as "ht0" 237 (check the boot messages with dmesg). Be sure to consult the 238 - <file:drivers/ide/ide-tape.c> and <file:Documentation/ide.txt> files 239 - for usage information. 240 241 To compile this driver as a module, choose M here: the 242 module will be called ide-tape. ··· 358 359 The CMD640 chip is also used on add-in cards by Acculogic, and on 360 the "CSA-6400E PCI to IDE controller" that some people have. For 361 - details, read <file:Documentation/ide.txt>. 362 363 config BLK_DEV_CMD640_ENHANCED 364 bool "CMD640 enhanced support" ··· 366 help 367 This option includes support for setting/autotuning PIO modes and 368 prefetch on CMD640 IDE interfaces. For details, read 369 - <file:Documentation/ide.txt>. If you have a CMD640 IDE interface 370 and your BIOS does not already do this for you, then say Y here. 371 Otherwise say N. 372 ··· 1069 This driver is enabled at runtime using the "ali14xx.probe" kernel 1070 boot parameter. It enables support for the secondary IDE interface 1071 of the ALI M1439/1443/1445/1487/1489 chipsets, and permits faster 1072 - I/O speeds to be set as well. See the files 1073 - <file:Documentation/ide.txt> and <file:drivers/ide/legacy/ali14xx.c> 1074 - for more info. 1075 1076 config BLK_DEV_DTC2278 1077 tristate "DTC-2278 support" ··· 1079 This driver is enabled at runtime using the "dtc2278.probe" kernel 1080 boot parameter. It enables support for the secondary IDE interface 1081 of the DTC-2278 card, and permits faster I/O speeds to be set as 1082 - well. See the <file:Documentation/ide.txt> and 1083 <file:drivers/ide/legacy/dtc2278.c> files for more info. 1084 1085 config BLK_DEV_HT6560B ··· 1088 This driver is enabled at runtime using the "ht6560b.probe" kernel 1089 boot parameter. It enables support for the secondary IDE interface 1090 of the Holtek card, and permits faster I/O speeds to be set as well. 1091 - See the <file:Documentation/ide.txt> and 1092 <file:drivers/ide/legacy/ht6560b.c> files for more info. 1093 1094 config BLK_DEV_QD65XX ··· 1096 help 1097 This driver is enabled at runtime using the "qd65xx.probe" kernel 1098 boot parameter. It permits faster I/O speeds to be set. See the 1099 - <file:Documentation/ide.txt> and <file:drivers/ide/legacy/qd65xx.c> 1100 for more info. 1101 1102 config BLK_DEV_UMC8672 ··· 1105 This driver is enabled at runtime using the "umc8672.probe" kernel 1106 boot parameter. It enables support for the secondary IDE interface 1107 of the UMC-8672, and permits faster I/O speeds to be set as well. 1108 - See the files <file:Documentation/ide.txt> and 1109 <file:drivers/ide/legacy/umc8672.c> for more info. 1110 1111 endif
··· 50 To compile this driver as a module, choose M here: the 51 module will be called ide. 52 53 + For further information, please read <file:Documentation/ide/ide.txt>. 54 55 If unsure, say Y. 56 ··· 77 Useful information about large (>540 MB) IDE disks, multiple 78 interfaces, what to do if ATA/IDE devices are not automatically 79 detected, sound card ATA/IDE ports, module support, and other 80 + topics, is contained in <file:Documentation/ide/ide.txt>. For detailed 81 information about hard drives, consult the Disk-HOWTO and the 82 Multi-Disk-HOWTO, available from 83 <http://www.tldp.org/docs.html#howto>. ··· 87 <ftp://ibiblio.org/pub/Linux/system/hardware/>. 88 89 To compile this driver as a module, choose M here and read 90 + <file:Documentation/ide/ide.txt>. The module will be called ide-mod. 91 Do not compile this driver as a module if your root file system (the 92 one containing the directory /) is located on an IDE device. 93 ··· 98 99 if BLK_DEV_IDE 100 101 + comment "Please see Documentation/ide/ide.txt for help/info on IDE drives" 102 103 config BLK_DEV_IDE_SATA 104 bool "Support for SATA (deprecated; conflicts with libata SATA driver)" ··· 235 along with other IDE devices, as "hdb" or "hdc", or something 236 similar, and will be mapped to a character device such as "ht0" 237 (check the boot messages with dmesg). Be sure to consult the 238 + <file:drivers/ide/ide-tape.c> and <file:Documentation/ide/ide.txt> 239 + files for usage information. 240 241 To compile this driver as a module, choose M here: the 242 module will be called ide-tape. ··· 358 359 The CMD640 chip is also used on add-in cards by Acculogic, and on 360 the "CSA-6400E PCI to IDE controller" that some people have. For 361 + details, read <file:Documentation/ide/ide.txt>. 362 363 config BLK_DEV_CMD640_ENHANCED 364 bool "CMD640 enhanced support" ··· 366 help 367 This option includes support for setting/autotuning PIO modes and 368 prefetch on CMD640 IDE interfaces. For details, read 369 + <file:Documentation/ide/ide.txt>. If you have a CMD640 IDE interface 370 and your BIOS does not already do this for you, then say Y here. 371 Otherwise say N. 372 ··· 1069 This driver is enabled at runtime using the "ali14xx.probe" kernel 1070 boot parameter. It enables support for the secondary IDE interface 1071 of the ALI M1439/1443/1445/1487/1489 chipsets, and permits faster 1072 + I/O speeds to be set as well. 1073 + See the files <file:Documentation/ide/ide.txt> and 1074 + <file:drivers/ide/legacy/ali14xx.c> for more info. 1075 1076 config BLK_DEV_DTC2278 1077 tristate "DTC-2278 support" ··· 1079 This driver is enabled at runtime using the "dtc2278.probe" kernel 1080 boot parameter. It enables support for the secondary IDE interface 1081 of the DTC-2278 card, and permits faster I/O speeds to be set as 1082 + well. See the <file:Documentation/ide/ide.txt> and 1083 <file:drivers/ide/legacy/dtc2278.c> files for more info. 1084 1085 config BLK_DEV_HT6560B ··· 1088 This driver is enabled at runtime using the "ht6560b.probe" kernel 1089 boot parameter. It enables support for the secondary IDE interface 1090 of the Holtek card, and permits faster I/O speeds to be set as well. 1091 + See the <file:Documentation/ide/ide.txt> and 1092 <file:drivers/ide/legacy/ht6560b.c> files for more info. 1093 1094 config BLK_DEV_QD65XX ··· 1096 help 1097 This driver is enabled at runtime using the "qd65xx.probe" kernel 1098 boot parameter. It permits faster I/O speeds to be set. See the 1099 + <file:Documentation/ide/ide.txt> and <file:drivers/ide/legacy/qd65xx.c> 1100 for more info. 1101 1102 config BLK_DEV_UMC8672 ··· 1105 This driver is enabled at runtime using the "umc8672.probe" kernel 1106 boot parameter. It enables support for the secondary IDE interface 1107 of the UMC-8672, and permits faster I/O speeds to be set as well. 1108 + See the files <file:Documentation/ide/ide.txt> and 1109 <file:drivers/ide/legacy/umc8672.c> for more info. 1110 1111 endif
+4
drivers/ide/ide-cd_ioctl.c
··· 457 layer. the packet must be complete, as we do not 458 touch it at all. */ 459 ide_cd_init_rq(drive, &req); 460 memcpy(req.cmd, cgc->cmd, CDROM_PACKET_SIZE); 461 if (cgc->sense) 462 memset(cgc->sense, 0, sizeof(struct request_sense));
··· 457 layer. the packet must be complete, as we do not 458 touch it at all. */ 459 ide_cd_init_rq(drive, &req); 460 + 461 + if (cgc->data_direction == CGC_DATA_WRITE) 462 + req.cmd_flags |= REQ_RW; 463 + 464 memcpy(req.cmd, cgc->cmd, CDROM_PACKET_SIZE); 465 if (cgc->sense) 466 memset(cgc->sense, 0, sizeof(struct request_sense));
+1 -1
drivers/ide/ide-dma.c
··· 713 } 714 715 if (hwif->host_flags & IDE_HFLAG_NO_SET_MODE) 716 - return 0; 717 718 if (ide_set_dma_mode(drive, speed)) 719 return 0;
··· 713 } 714 715 if (hwif->host_flags & IDE_HFLAG_NO_SET_MODE) 716 + return 1; 717 718 if (ide_set_dma_mode(drive, speed)) 719 return 0;
+2 -2
drivers/ide/ide.c
··· 667 668 do { 669 hwif = ide_deprecated_find_port(hw->io_ports[IDE_DATA_OFFSET]); 670 - index = hwif->index; 671 if (hwif) 672 goto found; 673 for (index = 0; index < MAX_HWIFS; index++) ··· 674 } while (retry--); 675 return -1; 676 found: 677 if (hwif->present) 678 ide_unregister(index, 0, 1); 679 else if (!hwif->hold) ··· 1180 * ide_setup() gets called VERY EARLY during initialization, 1181 * to handle kernel "command line" strings beginning with "hdx=" or "ide". 1182 * 1183 - * Remember to update Documentation/ide.txt if you change something here. 1184 */ 1185 static int __init ide_setup(char *s) 1186 {
··· 667 668 do { 669 hwif = ide_deprecated_find_port(hw->io_ports[IDE_DATA_OFFSET]); 670 if (hwif) 671 goto found; 672 for (index = 0; index < MAX_HWIFS; index++) ··· 675 } while (retry--); 676 return -1; 677 found: 678 + index = hwif->index; 679 if (hwif->present) 680 ide_unregister(index, 0, 1); 681 else if (!hwif->hold) ··· 1180 * ide_setup() gets called VERY EARLY during initialization, 1181 * to handle kernel "command line" strings beginning with "hdx=" or "ide". 1182 * 1183 + * Remember to update Documentation/ide/ide.txt if you change something here. 1184 */ 1185 static int __init ide_setup(char *s) 1186 {