aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/ide.txt4
-rw-r--r--drivers/ide/ide-disk.c1
-rw-r--r--drivers/ide/ide-taskfile.c32
-rw-r--r--drivers/ide/ide.c6
-rw-r--r--include/linux/ide.h1
5 files changed, 3 insertions, 41 deletions
diff --git a/Documentation/ide.txt b/Documentation/ide.txt
index b29ccb43d6cc..94e2e3b9e77f 100644
--- a/Documentation/ide.txt
+++ b/Documentation/ide.txt
@@ -244,10 +244,6 @@ Summary of ide driver parameters for kernel command line
244 244
245 "hdx=nodma" : disallow DMA 245 "hdx=nodma" : disallow DMA
246 246
247 "hdx=swapdata" : when the drive is a disk, byte swap all data
248
249 "hdx=bswap" : same as above..........
250
251 "hdx=scsi" : the return of the ide-scsi flag, this is useful for 247 "hdx=scsi" : the return of the ide-scsi flag, this is useful for
252 allowing ide-floppy, ide-tape, and ide-cdrom|writers 248 allowing ide-floppy, ide-tape, and ide-cdrom|writers
253 to use ide-scsi emulation on a device specific option. 249 to use ide-scsi emulation on a device specific option.
diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c
index c1fb75c387ea..041be43a62cb 100644
--- a/drivers/ide/ide-disk.c
+++ b/drivers/ide/ide-disk.c
@@ -761,7 +761,6 @@ static void idedisk_add_settings(ide_drive_t *drive)
761 ide_add_setting(drive, "bios_head", SETTING_RW, TYPE_BYTE, 0, 255, 1, 1, &drive->bios_head, NULL); 761 ide_add_setting(drive, "bios_head", SETTING_RW, TYPE_BYTE, 0, 255, 1, 1, &drive->bios_head, NULL);
762 ide_add_setting(drive, "bios_sect", SETTING_RW, TYPE_BYTE, 0, 63, 1, 1, &drive->bios_sect, NULL); 762 ide_add_setting(drive, "bios_sect", SETTING_RW, TYPE_BYTE, 0, 63, 1, 1, &drive->bios_sect, NULL);
763 ide_add_setting(drive, "address", SETTING_RW, TYPE_BYTE, 0, 2, 1, 1, &drive->addressing, set_lba_addressing); 763 ide_add_setting(drive, "address", SETTING_RW, TYPE_BYTE, 0, 2, 1, 1, &drive->addressing, set_lba_addressing);
764 ide_add_setting(drive, "bswap", SETTING_READ, TYPE_BYTE, 0, 1, 1, 1, &drive->bswap, NULL);
765 ide_add_setting(drive, "multcount", SETTING_RW, TYPE_BYTE, 0, id->max_multsect, 1, 1, &drive->mult_count, set_multcount); 764 ide_add_setting(drive, "multcount", SETTING_RW, TYPE_BYTE, 0, id->max_multsect, 1, 1, &drive->mult_count, set_multcount);
766 ide_add_setting(drive, "nowerr", SETTING_RW, TYPE_BYTE, 0, 1, 1, 1, &drive->nowerr, set_nowerr); 765 ide_add_setting(drive, "nowerr", SETTING_RW, TYPE_BYTE, 0, 1, 1, 1, &drive->nowerr, set_nowerr);
767 ide_add_setting(drive, "lun", SETTING_RW, TYPE_INT, 0, 7, 1, 1, &drive->lun, NULL); 766 ide_add_setting(drive, "lun", SETTING_RW, TYPE_INT, 0, 7, 1, 1, &drive->lun, NULL);
diff --git a/drivers/ide/ide-taskfile.c b/drivers/ide/ide-taskfile.c
index c58edc86ed3e..3ecafab8f54e 100644
--- a/drivers/ide/ide-taskfile.c
+++ b/drivers/ide/ide-taskfile.c
@@ -35,34 +35,6 @@
35#include <asm/uaccess.h> 35#include <asm/uaccess.h>
36#include <asm/io.h> 36#include <asm/io.h>
37 37
38static void ata_bswap_data (void *buffer, int wcount)
39{
40 u16 *p = buffer;
41
42 while (wcount--) {
43 *p = *p << 8 | *p >> 8; p++;
44 *p = *p << 8 | *p >> 8; p++;
45 }
46}
47
48static void taskfile_input_data(ide_drive_t *drive, void *buffer, u32 wcount)
49{
50 HWIF(drive)->ata_input_data(drive, buffer, wcount);
51 if (drive->bswap)
52 ata_bswap_data(buffer, wcount);
53}
54
55static void taskfile_output_data(ide_drive_t *drive, void *buffer, u32 wcount)
56{
57 if (drive->bswap) {
58 ata_bswap_data(buffer, wcount);
59 HWIF(drive)->ata_output_data(drive, buffer, wcount);
60 ata_bswap_data(buffer, wcount);
61 } else {
62 HWIF(drive)->ata_output_data(drive, buffer, wcount);
63 }
64}
65
66void ide_tf_load(ide_drive_t *drive, ide_task_t *task) 38void ide_tf_load(ide_drive_t *drive, ide_task_t *task)
67{ 39{
68 ide_hwif_t *hwif = drive->hwif; 40 ide_hwif_t *hwif = drive->hwif;
@@ -352,9 +324,9 @@ static void ide_pio_sector(ide_drive_t *drive, unsigned int write)
352 324
353 /* do the actual data transfer */ 325 /* do the actual data transfer */
354 if (write) 326 if (write)
355 taskfile_output_data(drive, buf, SECTOR_WORDS); 327 hwif->ata_output_data(drive, buf, SECTOR_WORDS);
356 else 328 else
357 taskfile_input_data(drive, buf, SECTOR_WORDS); 329 hwif->ata_input_data(drive, buf, SECTOR_WORDS);
358 330
359 kunmap_atomic(buf, KM_BIO_SRC_IRQ); 331 kunmap_atomic(buf, KM_BIO_SRC_IRQ);
360#ifdef CONFIG_HIGHMEM 332#ifdef CONFIG_HIGHMEM
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c
index 5f3e53ec5838..52115ef1f01a 100644
--- a/drivers/ide/ide.c
+++ b/drivers/ide/ide.c
@@ -1303,7 +1303,7 @@ static int __init ide_setup(char *s)
1303 if (s[0] == 'h' && s[1] == 'd' && s[2] >= 'a' && s[2] <= max_drive) { 1303 if (s[0] == 'h' && s[1] == 'd' && s[2] >= 'a' && s[2] <= max_drive) {
1304 const char *hd_words[] = { 1304 const char *hd_words[] = {
1305 "none", "noprobe", "nowerr", "cdrom", "nodma", 1305 "none", "noprobe", "nowerr", "cdrom", "nodma",
1306 "autotune", "noautotune", "minus8", "swapdata", "bswap", 1306 "autotune", "noautotune", "-8", "-9", "-10",
1307 "noflush", "remap", "remap63", "scsi", NULL }; 1307 "noflush", "remap", "remap63", "scsi", NULL };
1308 unit = s[2] - 'a'; 1308 unit = s[2] - 'a';
1309 hw = unit / MAX_DRIVES; 1309 hw = unit / MAX_DRIVES;
@@ -1339,10 +1339,6 @@ static int __init ide_setup(char *s)
1339 case -7: /* "noautotune" */ 1339 case -7: /* "noautotune" */
1340 drive->autotune = IDE_TUNE_NOAUTO; 1340 drive->autotune = IDE_TUNE_NOAUTO;
1341 goto obsolete_option; 1341 goto obsolete_option;
1342 case -9: /* "swapdata" */
1343 case -10: /* "bswap" */
1344 drive->bswap = 1;
1345 goto done;
1346 case -11: /* noflush */ 1342 case -11: /* noflush */
1347 drive->noflush = 1; 1343 drive->noflush = 1;
1348 goto done; 1344 goto done;
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 74f1ef9c6d94..f94cf036bd95 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -394,7 +394,6 @@ typedef struct ide_drive_s {
394 u8 state; /* retry state */ 394 u8 state; /* retry state */
395 u8 waiting_for_dma; /* dma currently in progress */ 395 u8 waiting_for_dma; /* dma currently in progress */
396 u8 unmask; /* okay to unmask other irqs */ 396 u8 unmask; /* okay to unmask other irqs */
397 u8 bswap; /* byte swap data */
398 u8 noflush; /* don't attempt flushes */ 397 u8 noflush; /* don't attempt flushes */
399 u8 dsc_overlap; /* DSC overlap */ 398 u8 dsc_overlap; /* DSC overlap */
400 u8 nice1; /* give potential excess bandwidth */ 399 u8 nice1; /* give potential excess bandwidth */