diff options
Diffstat (limited to 'drivers/ide/pci/cs5530.c')
-rw-r--r-- | drivers/ide/pci/cs5530.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/ide/pci/cs5530.c b/drivers/ide/pci/cs5530.c index f235db8c678b..774ff58603a2 100644 --- a/drivers/ide/pci/cs5530.c +++ b/drivers/ide/pci/cs5530.c | |||
@@ -82,16 +82,18 @@ static u8 cs5530_udma_filter(ide_drive_t *drive) | |||
82 | { | 82 | { |
83 | ide_hwif_t *hwif = drive->hwif; | 83 | ide_hwif_t *hwif = drive->hwif; |
84 | ide_drive_t *mate = &hwif->drives[(drive->dn & 1) ^ 1]; | 84 | ide_drive_t *mate = &hwif->drives[(drive->dn & 1) ^ 1]; |
85 | struct hd_driveid *mateid = mate->id; | 85 | u16 *mateid = mate->id; |
86 | u8 mask = hwif->ultra_mask; | 86 | u8 mask = hwif->ultra_mask; |
87 | 87 | ||
88 | if (mate->present == 0) | 88 | if (mate->present == 0) |
89 | goto out; | 89 | goto out; |
90 | 90 | ||
91 | if ((mateid->capability & 1) && __ide_dma_bad_drive(mate) == 0) { | 91 | if ((mate->driveid->capability & 1) && __ide_dma_bad_drive(mate) == 0) { |
92 | if ((mateid->field_valid & 4) && (mateid->dma_ultra & 7)) | 92 | if ((mateid[ATA_ID_FIELD_VALID] & 4) && |
93 | (mateid[ATA_ID_UDMA_MODES] & 7)) | ||
93 | goto out; | 94 | goto out; |
94 | if ((mateid->field_valid & 2) && (mateid->dma_mword & 7)) | 95 | if ((mateid[ATA_ID_FIELD_VALID] & 2) && |
96 | (mateid[ATA_ID_MWDMA_MODES] & 7)) | ||
95 | mask = 0; | 97 | mask = 0; |
96 | } | 98 | } |
97 | out: | 99 | out: |