diff options
Diffstat (limited to 'drivers/ide/pci/sc1200.c')
-rw-r--r-- | drivers/ide/pci/sc1200.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/ide/pci/sc1200.c b/drivers/ide/pci/sc1200.c index 8efaed16fea3..5c8367df14e4 100644 --- a/drivers/ide/pci/sc1200.c +++ b/drivers/ide/pci/sc1200.c | |||
@@ -105,16 +105,18 @@ static u8 sc1200_udma_filter(ide_drive_t *drive) | |||
105 | { | 105 | { |
106 | ide_hwif_t *hwif = drive->hwif; | 106 | ide_hwif_t *hwif = drive->hwif; |
107 | ide_drive_t *mate = &hwif->drives[(drive->dn & 1) ^ 1]; | 107 | ide_drive_t *mate = &hwif->drives[(drive->dn & 1) ^ 1]; |
108 | struct hd_driveid *mateid = mate->id; | 108 | u16 *mateid = mate->id; |
109 | u8 mask = hwif->ultra_mask; | 109 | u8 mask = hwif->ultra_mask; |
110 | 110 | ||
111 | if (mate->present == 0) | 111 | if (mate->present == 0) |
112 | goto out; | 112 | goto out; |
113 | 113 | ||
114 | if ((mateid->capability & 1) && __ide_dma_bad_drive(mate) == 0) { | 114 | if ((mate->driveid->capability & 1) && __ide_dma_bad_drive(mate) == 0) { |
115 | if ((mateid->field_valid & 4) && (mateid->dma_ultra & 7)) | 115 | if ((mateid[ATA_ID_FIELD_VALID] & 4) && |
116 | (mateid[ATA_ID_UDMA_MODES] & 7)) | ||
116 | goto out; | 117 | goto out; |
117 | if ((mateid->field_valid & 2) && (mateid->dma_mword & 7)) | 118 | if ((mateid[ATA_ID_FIELD_VALID] & 2) && |
119 | (mateid[ATA_ID_MWDMA_MODES] & 7)) | ||
118 | mask = 0; | 120 | mask = 0; |
119 | } | 121 | } |
120 | out: | 122 | out: |