diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/ide/ide-iops.c | 18 | ||||
| -rw-r--r-- | drivers/ide/ide-taskfile.c | 6 |
2 files changed, 5 insertions, 19 deletions
diff --git a/drivers/ide/ide-iops.c b/drivers/ide/ide-iops.c index 09069da22749..99fe50e941be 100644 --- a/drivers/ide/ide-iops.c +++ b/drivers/ide/ide-iops.c | |||
| @@ -627,24 +627,6 @@ int ide_ata66_check (ide_drive_t *drive, ide_task_t *args) | |||
| 627 | return 0; | 627 | return 0; |
| 628 | } | 628 | } |
| 629 | 629 | ||
| 630 | /* | ||
| 631 | * Backside of HDIO_DRIVE_CMD call of SETFEATURES_XFER. | ||
| 632 | * 1 : Safe to update drive->id DMA registers. | ||
| 633 | * 0 : OOPs not allowed. | ||
| 634 | */ | ||
| 635 | int set_transfer (ide_drive_t *drive, ide_task_t *args) | ||
| 636 | { | ||
| 637 | if (args->tf.command == WIN_SETFEATURES && | ||
| 638 | args->tf.nsect >= XFER_SW_DMA_0 && | ||
| 639 | args->tf.feature == SETFEATURES_XFER && | ||
| 640 | (drive->id->dma_ultra || | ||
| 641 | drive->id->dma_mword || | ||
| 642 | drive->id->dma_1word)) | ||
| 643 | return 1; | ||
| 644 | |||
| 645 | return 0; | ||
| 646 | } | ||
| 647 | |||
| 648 | #ifdef CONFIG_BLK_DEV_IDEDMA | 630 | #ifdef CONFIG_BLK_DEV_IDEDMA |
| 649 | static u8 ide_auto_reduce_xfer (ide_drive_t *drive) | 631 | static u8 ide_auto_reduce_xfer (ide_drive_t *drive) |
| 650 | { | 632 | { |
diff --git a/drivers/ide/ide-taskfile.c b/drivers/ide/ide-taskfile.c index 16a9a581d089..bf72b6d9f685 100644 --- a/drivers/ide/ide-taskfile.c +++ b/drivers/ide/ide-taskfile.c | |||
| @@ -755,6 +755,7 @@ int ide_cmd_ioctl (ide_drive_t *drive, unsigned int cmd, unsigned long arg) | |||
| 755 | u8 args[4], xfer_rate = 0; | 755 | u8 args[4], xfer_rate = 0; |
| 756 | ide_task_t tfargs; | 756 | ide_task_t tfargs; |
| 757 | struct ide_taskfile *tf = &tfargs.tf; | 757 | struct ide_taskfile *tf = &tfargs.tf; |
| 758 | struct hd_driveid *id = drive->id; | ||
| 758 | 759 | ||
| 759 | if (NULL == (void *) arg) { | 760 | if (NULL == (void *) arg) { |
| 760 | struct request rq; | 761 | struct request rq; |
| @@ -792,7 +793,10 @@ int ide_cmd_ioctl (ide_drive_t *drive, unsigned int cmd, unsigned long arg) | |||
| 792 | return -ENOMEM; | 793 | return -ENOMEM; |
| 793 | } | 794 | } |
| 794 | 795 | ||
| 795 | if (set_transfer(drive, &tfargs)) { | 796 | if (tf->command == WIN_SETFEATURES && |
| 797 | tf->feature == SETFEATURES_XFER && | ||
| 798 | tf->nsect >= XFER_SW_DMA_0 && | ||
| 799 | (id->dma_ultra || id->dma_mword || id->dma_1word)) { | ||
| 796 | xfer_rate = args[1]; | 800 | xfer_rate = args[1]; |
| 797 | if (ide_ata66_check(drive, &tfargs)) | 801 | if (ide_ata66_check(drive, &tfargs)) |
| 798 | goto abort; | 802 | goto abort; |
