"hdx=nodma"           : disallow DMA
 
- "hdx=swapdata"                : when the drive is a disk, byte swap all data
-
- "hdx=bswap"           : same as above..........
-
  "hdx=scsi"            : the return of the ide-scsi flag, this is useful for
                          allowing ide-floppy, ide-tape, and ide-cdrom|writers
                          to use ide-scsi emulation on a device specific option.
 
        ide_add_setting(drive,  "bios_head",    SETTING_RW,     TYPE_BYTE,      0,      255,                    1,      1,      &drive->bios_head,      NULL);
        ide_add_setting(drive,  "bios_sect",    SETTING_RW,     TYPE_BYTE,      0,      63,                     1,      1,      &drive->bios_sect,      NULL);
        ide_add_setting(drive,  "address",      SETTING_RW,     TYPE_BYTE,      0,      2,                      1,      1,      &drive->addressing,     set_lba_addressing);
-       ide_add_setting(drive,  "bswap",        SETTING_READ,   TYPE_BYTE,      0,      1,                      1,      1,      &drive->bswap,          NULL);
        ide_add_setting(drive,  "multcount",    SETTING_RW,     TYPE_BYTE,      0,      id->max_multsect,       1,      1,      &drive->mult_count,     set_multcount);
        ide_add_setting(drive,  "nowerr",       SETTING_RW,     TYPE_BYTE,      0,      1,                      1,      1,      &drive->nowerr,         set_nowerr);
        ide_add_setting(drive,  "lun",          SETTING_RW,     TYPE_INT,       0,      7,                      1,      1,      &drive->lun,            NULL);
 
 #include <asm/uaccess.h>
 #include <asm/io.h>
 
-static void ata_bswap_data (void *buffer, int wcount)
-{
-       u16 *p = buffer;
-
-       while (wcount--) {
-               *p = *p << 8 | *p >> 8; p++;
-               *p = *p << 8 | *p >> 8; p++;
-       }
-}
-
-static void taskfile_input_data(ide_drive_t *drive, void *buffer, u32 wcount)
-{
-       HWIF(drive)->ata_input_data(drive, buffer, wcount);
-       if (drive->bswap)
-               ata_bswap_data(buffer, wcount);
-}
-
-static void taskfile_output_data(ide_drive_t *drive, void *buffer, u32 wcount)
-{
-       if (drive->bswap) {
-               ata_bswap_data(buffer, wcount);
-               HWIF(drive)->ata_output_data(drive, buffer, wcount);
-               ata_bswap_data(buffer, wcount);
-       } else {
-               HWIF(drive)->ata_output_data(drive, buffer, wcount);
-       }
-}
-
 void ide_tf_load(ide_drive_t *drive, ide_task_t *task)
 {
        ide_hwif_t *hwif = drive->hwif;
 
        /* do the actual data transfer */
        if (write)
-               taskfile_output_data(drive, buf, SECTOR_WORDS);
+               hwif->ata_output_data(drive, buf, SECTOR_WORDS);
        else
-               taskfile_input_data(drive, buf, SECTOR_WORDS);
+               hwif->ata_input_data(drive, buf, SECTOR_WORDS);
 
        kunmap_atomic(buf, KM_BIO_SRC_IRQ);
 #ifdef CONFIG_HIGHMEM
 
        if (s[0] == 'h' && s[1] == 'd' && s[2] >= 'a' && s[2] <= max_drive) {
                const char *hd_words[] = {
                        "none", "noprobe", "nowerr", "cdrom", "nodma",
-                       "autotune", "noautotune", "minus8", "swapdata", "bswap",
+                       "autotune", "noautotune", "-8", "-9", "-10",
                        "noflush", "remap", "remap63", "scsi", NULL };
                unit = s[2] - 'a';
                hw   = unit / MAX_DRIVES;
                        case -7: /* "noautotune" */
                                drive->autotune = IDE_TUNE_NOAUTO;
                                goto obsolete_option;
-                       case -9: /* "swapdata" */
-                       case -10: /* "bswap" */
-                               drive->bswap = 1;
-                               goto done;
                        case -11: /* noflush */
                                drive->noflush = 1;
                                goto done;
 
        u8      state;                  /* retry state */
        u8      waiting_for_dma;        /* dma currently in progress */
        u8      unmask;                 /* okay to unmask other irqs */
-       u8      bswap;                  /* byte swap data */
        u8      noflush;                /* don't attempt flushes */
        u8      dsc_overlap;            /* DSC overlap */
        u8      nice1;                  /* give potential excess bandwidth */