diff options
| -rw-r--r-- | Documentation/DocBook/libata.tmpl | 49 | ||||
| -rw-r--r-- | drivers/ata/pata_pcmcia.c | 4 | ||||
| -rw-r--r-- | drivers/ide/ide-cs.c | 4 |
3 files changed, 20 insertions, 37 deletions
diff --git a/Documentation/DocBook/libata.tmpl b/Documentation/DocBook/libata.tmpl index ba9975771503..ff3e5bec1c24 100644 --- a/Documentation/DocBook/libata.tmpl +++ b/Documentation/DocBook/libata.tmpl | |||
| @@ -107,10 +107,6 @@ void (*dev_config) (struct ata_port *, struct ata_device *); | |||
| 107 | issue of SET FEATURES - XFER MODE, and prior to operation. | 107 | issue of SET FEATURES - XFER MODE, and prior to operation. |
| 108 | </para> | 108 | </para> |
| 109 | <para> | 109 | <para> |
| 110 | Called by ata_device_add() after ata_dev_identify() determines | ||
| 111 | a device is present. | ||
| 112 | </para> | ||
| 113 | <para> | ||
| 114 | This entry may be specified as NULL in ata_port_operations. | 110 | This entry may be specified as NULL in ata_port_operations. |
| 115 | </para> | 111 | </para> |
| 116 | 112 | ||
| @@ -154,8 +150,8 @@ unsigned int (*mode_filter) (struct ata_port *, struct ata_device *, unsigned in | |||
| 154 | 150 | ||
| 155 | <sect2><title>Taskfile read/write</title> | 151 | <sect2><title>Taskfile read/write</title> |
| 156 | <programlisting> | 152 | <programlisting> |
| 157 | void (*tf_load) (struct ata_port *ap, struct ata_taskfile *tf); | 153 | void (*sff_tf_load) (struct ata_port *ap, struct ata_taskfile *tf); |
| 158 | void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf); | 154 | void (*sff_tf_read) (struct ata_port *ap, struct ata_taskfile *tf); |
| 159 | </programlisting> | 155 | </programlisting> |
| 160 | 156 | ||
| 161 | <para> | 157 | <para> |
| @@ -164,36 +160,35 @@ void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf); | |||
| 164 | hardware registers / DMA buffers, to obtain the current set of | 160 | hardware registers / DMA buffers, to obtain the current set of |
| 165 | taskfile register values. | 161 | taskfile register values. |
| 166 | Most drivers for taskfile-based hardware (PIO or MMIO) use | 162 | Most drivers for taskfile-based hardware (PIO or MMIO) use |
| 167 | ata_tf_load() and ata_tf_read() for these hooks. | 163 | ata_sff_tf_load() and ata_sff_tf_read() for these hooks. |
| 168 | </para> | 164 | </para> |
| 169 | 165 | ||
| 170 | </sect2> | 166 | </sect2> |
| 171 | 167 | ||
| 172 | <sect2><title>PIO data read/write</title> | 168 | <sect2><title>PIO data read/write</title> |
| 173 | <programlisting> | 169 | <programlisting> |
| 174 | void (*data_xfer) (struct ata_device *, unsigned char *, unsigned int, int); | 170 | void (*sff_data_xfer) (struct ata_device *, unsigned char *, unsigned int, int); |
| 175 | </programlisting> | 171 | </programlisting> |
| 176 | 172 | ||
| 177 | <para> | 173 | <para> |
| 178 | All bmdma-style drivers must implement this hook. This is the low-level | 174 | All bmdma-style drivers must implement this hook. This is the low-level |
| 179 | operation that actually copies the data bytes during a PIO data | 175 | operation that actually copies the data bytes during a PIO data |
| 180 | transfer. | 176 | transfer. |
| 181 | Typically the driver | 177 | Typically the driver will choose one of ata_sff_data_xfer_noirq(), |
| 182 | will choose one of ata_pio_data_xfer_noirq(), ata_pio_data_xfer(), or | 178 | ata_sff_data_xfer(), or ata_sff_data_xfer32(). |
| 183 | ata_mmio_data_xfer(). | ||
| 184 | </para> | 179 | </para> |
| 185 | 180 | ||
| 186 | </sect2> | 181 | </sect2> |
| 187 | 182 | ||
| 188 | <sect2><title>ATA command execute</title> | 183 | <sect2><title>ATA command execute</title> |
| 189 | <programlisting> | 184 | <programlisting> |
| 190 | void (*exec_command)(struct ata_port *ap, struct ata_taskfile *tf); | 185 | void (*sff_exec_command)(struct ata_port *ap, struct ata_taskfile *tf); |
| 191 | </programlisting> | 186 | </programlisting> |
| 192 | 187 | ||
| 193 | <para> | 188 | <para> |
| 194 | causes an ATA command, previously loaded with | 189 | causes an ATA command, previously loaded with |
| 195 | ->tf_load(), to be initiated in hardware. | 190 | ->tf_load(), to be initiated in hardware. |
| 196 | Most drivers for taskfile-based hardware use ata_exec_command() | 191 | Most drivers for taskfile-based hardware use ata_sff_exec_command() |
| 197 | for this hook. | 192 | for this hook. |
| 198 | </para> | 193 | </para> |
| 199 | 194 | ||
| @@ -218,8 +213,8 @@ command. | |||
| 218 | 213 | ||
| 219 | <sect2><title>Read specific ATA shadow registers</title> | 214 | <sect2><title>Read specific ATA shadow registers</title> |
| 220 | <programlisting> | 215 | <programlisting> |
| 221 | u8 (*check_status)(struct ata_port *ap); | 216 | u8 (*sff_check_status)(struct ata_port *ap); |
| 222 | u8 (*check_altstatus)(struct ata_port *ap); | 217 | u8 (*sff_check_altstatus)(struct ata_port *ap); |
| 223 | </programlisting> | 218 | </programlisting> |
| 224 | 219 | ||
| 225 | <para> | 220 | <para> |
| @@ -227,20 +222,14 @@ u8 (*check_altstatus)(struct ata_port *ap); | |||
| 227 | hardware. On some hardware, reading the Status register has | 222 | hardware. On some hardware, reading the Status register has |
| 228 | the side effect of clearing the interrupt condition. | 223 | the side effect of clearing the interrupt condition. |
| 229 | Most drivers for taskfile-based hardware use | 224 | Most drivers for taskfile-based hardware use |
| 230 | ata_check_status() for this hook. | 225 | ata_sff_check_status() for this hook. |
| 231 | </para> | ||
| 232 | <para> | ||
| 233 | Note that because this is called from ata_device_add(), at | ||
| 234 | least a dummy function that clears device interrupts must be | ||
| 235 | provided for all drivers, even if the controller doesn't | ||
| 236 | actually have a taskfile status register. | ||
| 237 | </para> | 226 | </para> |
| 238 | 227 | ||
| 239 | </sect2> | 228 | </sect2> |
| 240 | 229 | ||
| 241 | <sect2><title>Select ATA device on bus</title> | 230 | <sect2><title>Select ATA device on bus</title> |
| 242 | <programlisting> | 231 | <programlisting> |
| 243 | void (*dev_select)(struct ata_port *ap, unsigned int device); | 232 | void (*sff_dev_select)(struct ata_port *ap, unsigned int device); |
| 244 | </programlisting> | 233 | </programlisting> |
| 245 | 234 | ||
| 246 | <para> | 235 | <para> |
| @@ -251,9 +240,7 @@ void (*dev_select)(struct ata_port *ap, unsigned int device); | |||
| 251 | </para> | 240 | </para> |
| 252 | <para> | 241 | <para> |
| 253 | Most drivers for taskfile-based hardware use | 242 | Most drivers for taskfile-based hardware use |
| 254 | ata_std_dev_select() for this hook. Controllers which do not | 243 | ata_sff_dev_select() for this hook. |
| 255 | support second drives on a port (such as SATA contollers) will | ||
| 256 | use ata_noop_dev_select(). | ||
| 257 | </para> | 244 | </para> |
| 258 | 245 | ||
| 259 | </sect2> | 246 | </sect2> |
| @@ -441,13 +428,13 @@ void (*irq_clear) (struct ata_port *); | |||
| 441 | to struct ata_host_set. | 428 | to struct ata_host_set. |
| 442 | </para> | 429 | </para> |
| 443 | <para> | 430 | <para> |
| 444 | Most legacy IDE drivers use ata_interrupt() for the | 431 | Most legacy IDE drivers use ata_sff_interrupt() for the |
| 445 | irq_handler hook, which scans all ports in the host_set, | 432 | irq_handler hook, which scans all ports in the host_set, |
| 446 | determines which queued command was active (if any), and calls | 433 | determines which queued command was active (if any), and calls |
| 447 | ata_host_intr(ap,qc). | 434 | ata_sff_host_intr(ap,qc). |
| 448 | </para> | 435 | </para> |
| 449 | <para> | 436 | <para> |
| 450 | Most legacy IDE drivers use ata_bmdma_irq_clear() for the | 437 | Most legacy IDE drivers use ata_sff_irq_clear() for the |
| 451 | irq_clear() hook, which simply clears the interrupt and error | 438 | irq_clear() hook, which simply clears the interrupt and error |
| 452 | flags in the DMA status register. | 439 | flags in the DMA status register. |
| 453 | </para> | 440 | </para> |
| @@ -496,10 +483,6 @@ void (*host_stop) (struct ata_host_set *host_set); | |||
| 496 | data from port at this time. | 483 | data from port at this time. |
| 497 | </para> | 484 | </para> |
| 498 | <para> | 485 | <para> |
| 499 | Many drivers use ata_port_stop() as this hook, which frees the | ||
| 500 | PRD table. | ||
| 501 | </para> | ||
| 502 | <para> | ||
| 503 | ->host_stop() is called after all ->port_stop() calls | 486 | ->host_stop() is called after all ->port_stop() calls |
| 504 | have completed. The hook must finalize hardware shutdown, release DMA | 487 | have completed. The hook must finalize hardware shutdown, release DMA |
| 505 | and other resources, etc. | 488 | and other resources, etc. |
diff --git a/drivers/ata/pata_pcmcia.c b/drivers/ata/pata_pcmcia.c index 4164dd244dd0..d94b8f0bd743 100644 --- a/drivers/ata/pata_pcmcia.c +++ b/drivers/ata/pata_pcmcia.c | |||
| @@ -424,7 +424,7 @@ static struct pcmcia_device_id pcmcia_devices[] = { | |||
| 424 | PCMCIA_DEVICE_PROD_ID12("Hyperstone", "Model1", 0x3d5b9ef5, 0xca6ab420), | 424 | PCMCIA_DEVICE_PROD_ID12("Hyperstone", "Model1", 0x3d5b9ef5, 0xca6ab420), |
| 425 | PCMCIA_DEVICE_PROD_ID12("IBM", "microdrive", 0xb569a6e5, 0xa6d76178), | 425 | PCMCIA_DEVICE_PROD_ID12("IBM", "microdrive", 0xb569a6e5, 0xa6d76178), |
| 426 | PCMCIA_DEVICE_PROD_ID12("IBM", "IBM17JSSFP20", 0xb569a6e5, 0xf2508753), | 426 | PCMCIA_DEVICE_PROD_ID12("IBM", "IBM17JSSFP20", 0xb569a6e5, 0xf2508753), |
| 427 | PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF CARD 1GB", 0x2e6d1829, 0x3e520e17), | 427 | PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF CARD 1GB", 0x2e6d1829, 0x55d5bffb), |
| 428 | PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF CARD 4GB", 0x2e6d1829, 0x531e7d10), | 428 | PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF CARD 4GB", 0x2e6d1829, 0x531e7d10), |
| 429 | PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF8GB", 0x2e6d1829, 0xacbe682e), | 429 | PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF8GB", 0x2e6d1829, 0xacbe682e), |
| 430 | PCMCIA_DEVICE_PROD_ID12("IO DATA", "CBIDE2 ", 0x547e66dc, 0x8671043b), | 430 | PCMCIA_DEVICE_PROD_ID12("IO DATA", "CBIDE2 ", 0x547e66dc, 0x8671043b), |
| @@ -446,7 +446,7 @@ static struct pcmcia_device_id pcmcia_devices[] = { | |||
| 446 | PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS1GCF80", 0x709b1bf1, 0x2a54d4b1), | 446 | PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS1GCF80", 0x709b1bf1, 0x2a54d4b1), |
| 447 | PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS2GCF120", 0x709b1bf1, 0x969aa4f2), | 447 | PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS2GCF120", 0x709b1bf1, 0x969aa4f2), |
| 448 | PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF120", 0x709b1bf1, 0xf54a91c8), | 448 | PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF120", 0x709b1bf1, 0xf54a91c8), |
| 449 | PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF133", 0x709b1bf1, 0x9351e59d), | 449 | PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF133", 0x709b1bf1, 0x7558f133), |
| 450 | PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS8GCF133", 0x709b1bf1, 0xb2f89b47), | 450 | PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS8GCF133", 0x709b1bf1, 0xb2f89b47), |
| 451 | PCMCIA_DEVICE_PROD_ID12("WIT", "IDE16", 0x244e5994, 0x3e232852), | 451 | PCMCIA_DEVICE_PROD_ID12("WIT", "IDE16", 0x244e5994, 0x3e232852), |
| 452 | PCMCIA_DEVICE_PROD_ID12("WEIDA", "TWTTI", 0xcc7cf69c, 0x212bb918), | 452 | PCMCIA_DEVICE_PROD_ID12("WEIDA", "TWTTI", 0xcc7cf69c, 0x212bb918), |
diff --git a/drivers/ide/ide-cs.c b/drivers/ide/ide-cs.c index defce2877eef..b85450865ff0 100644 --- a/drivers/ide/ide-cs.c +++ b/drivers/ide/ide-cs.c | |||
| @@ -409,7 +409,7 @@ static struct pcmcia_device_id ide_ids[] = { | |||
| 409 | PCMCIA_DEVICE_PROD_ID12("Hyperstone", "Model1", 0x3d5b9ef5, 0xca6ab420), | 409 | PCMCIA_DEVICE_PROD_ID12("Hyperstone", "Model1", 0x3d5b9ef5, 0xca6ab420), |
| 410 | PCMCIA_DEVICE_PROD_ID12("IBM", "microdrive", 0xb569a6e5, 0xa6d76178), | 410 | PCMCIA_DEVICE_PROD_ID12("IBM", "microdrive", 0xb569a6e5, 0xa6d76178), |
| 411 | PCMCIA_DEVICE_PROD_ID12("IBM", "IBM17JSSFP20", 0xb569a6e5, 0xf2508753), | 411 | PCMCIA_DEVICE_PROD_ID12("IBM", "IBM17JSSFP20", 0xb569a6e5, 0xf2508753), |
| 412 | PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF CARD 1GB", 0x2e6d1829, 0x3e520e17), | 412 | PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF CARD 1GB", 0x2e6d1829, 0x55d5bffb), |
| 413 | PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF CARD 4GB", 0x2e6d1829, 0x531e7d10), | 413 | PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF CARD 4GB", 0x2e6d1829, 0x531e7d10), |
| 414 | PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF8GB", 0x2e6d1829, 0xacbe682e), | 414 | PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF8GB", 0x2e6d1829, 0xacbe682e), |
| 415 | PCMCIA_DEVICE_PROD_ID12("IO DATA", "CBIDE2 ", 0x547e66dc, 0x8671043b), | 415 | PCMCIA_DEVICE_PROD_ID12("IO DATA", "CBIDE2 ", 0x547e66dc, 0x8671043b), |
| @@ -431,7 +431,7 @@ static struct pcmcia_device_id ide_ids[] = { | |||
| 431 | PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS1GCF80", 0x709b1bf1, 0x2a54d4b1), | 431 | PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS1GCF80", 0x709b1bf1, 0x2a54d4b1), |
| 432 | PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS2GCF120", 0x709b1bf1, 0x969aa4f2), | 432 | PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS2GCF120", 0x709b1bf1, 0x969aa4f2), |
| 433 | PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF120", 0x709b1bf1, 0xf54a91c8), | 433 | PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF120", 0x709b1bf1, 0xf54a91c8), |
| 434 | PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF133", 0x709b1bf1, 0x9351e59d), | 434 | PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF133", 0x709b1bf1, 0x7558f133), |
| 435 | PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS8GCF133", 0x709b1bf1, 0xb2f89b47), | 435 | PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS8GCF133", 0x709b1bf1, 0xb2f89b47), |
| 436 | PCMCIA_DEVICE_PROD_ID12("WIT", "IDE16", 0x244e5994, 0x3e232852), | 436 | PCMCIA_DEVICE_PROD_ID12("WIT", "IDE16", 0x244e5994, 0x3e232852), |
| 437 | PCMCIA_DEVICE_PROD_ID12("WEIDA", "TWTTI", 0xcc7cf69c, 0x212bb918), | 437 | PCMCIA_DEVICE_PROD_ID12("WEIDA", "TWTTI", 0xcc7cf69c, 0x212bb918), |
