diff options
Diffstat (limited to 'drivers/ide/ide-taskfile.c')
-rw-r--r-- | drivers/ide/ide-taskfile.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/ide/ide-taskfile.c b/drivers/ide/ide-taskfile.c index 7fb6f1c86272..f889373d7f95 100644 --- a/drivers/ide/ide-taskfile.c +++ b/drivers/ide/ide-taskfile.c | |||
@@ -729,7 +729,7 @@ int ide_cmd_ioctl (ide_drive_t *drive, unsigned int cmd, unsigned long arg) | |||
729 | u8 args[4], xfer_rate = 0; | 729 | u8 args[4], xfer_rate = 0; |
730 | ide_task_t tfargs; | 730 | ide_task_t tfargs; |
731 | struct ide_taskfile *tf = &tfargs.tf; | 731 | struct ide_taskfile *tf = &tfargs.tf; |
732 | struct hd_driveid *id = drive->id; | 732 | u16 *id = drive->id; |
733 | 733 | ||
734 | if (NULL == (void *) arg) { | 734 | if (NULL == (void *) arg) { |
735 | struct request *rq; | 735 | struct request *rq; |
@@ -772,7 +772,9 @@ int ide_cmd_ioctl (ide_drive_t *drive, unsigned int cmd, unsigned long arg) | |||
772 | if (tf->command == WIN_SETFEATURES && | 772 | if (tf->command == WIN_SETFEATURES && |
773 | tf->feature == SETFEATURES_XFER && | 773 | tf->feature == SETFEATURES_XFER && |
774 | tf->nsect >= XFER_SW_DMA_0 && | 774 | tf->nsect >= XFER_SW_DMA_0 && |
775 | (id->dma_ultra || id->dma_mword || id->dma_1word)) { | 775 | (id[ATA_ID_UDMA_MODES] || |
776 | id[ATA_ID_MWDMA_MODES] || | ||
777 | id[ATA_ID_SWDMA_MODES])) { | ||
776 | xfer_rate = args[1]; | 778 | xfer_rate = args[1]; |
777 | if (tf->nsect > XFER_UDMA_2 && !eighty_ninty_three(drive)) { | 779 | if (tf->nsect > XFER_UDMA_2 && !eighty_ninty_three(drive)) { |
778 | printk(KERN_WARNING "%s: UDMA speeds >UDMA33 cannot " | 780 | printk(KERN_WARNING "%s: UDMA speeds >UDMA33 cannot " |