diff options
Diffstat (limited to 'drivers/ide/pci/piix.c')
-rw-r--r-- | drivers/ide/pci/piix.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/ide/pci/piix.c b/drivers/ide/pci/piix.c index 8b219dd63024..1547c37f3332 100644 --- a/drivers/ide/pci/piix.c +++ b/drivers/ide/pci/piix.c | |||
@@ -394,14 +394,14 @@ static void piix_dma_clear_irq(ide_drive_t *drive) | |||
394 | hwif->OUTB(dma_stat, hwif->dma_status); | 394 | hwif->OUTB(dma_stat, hwif->dma_status); |
395 | } | 395 | } |
396 | 396 | ||
397 | static int __devinit piix_cable_detect(ide_hwif_t *hwif) | 397 | static u8 __devinit piix_cable_detect(ide_hwif_t *hwif) |
398 | { | 398 | { |
399 | struct pci_dev *dev = hwif->pci_dev; | 399 | struct pci_dev *dev = hwif->pci_dev; |
400 | u8 reg54h = 0, mask = hwif->channel ? 0xc0 : 0x30; | 400 | u8 reg54h = 0, mask = hwif->channel ? 0xc0 : 0x30; |
401 | 401 | ||
402 | pci_read_config_byte(dev, 0x54, ®54h); | 402 | pci_read_config_byte(dev, 0x54, ®54h); |
403 | 403 | ||
404 | return (reg54h & mask) ? 1 : 0; | 404 | return (reg54h & mask) ? ATA_CBL_PATA80 : ATA_CBL_PATA40; |
405 | } | 405 | } |
406 | 406 | ||
407 | /** | 407 | /** |
@@ -444,8 +444,8 @@ static void __devinit init_hwif_piix(ide_hwif_t *hwif) | |||
444 | hwif->swdma_mask = 0x04; | 444 | hwif->swdma_mask = 0x04; |
445 | 445 | ||
446 | if (hwif->ultra_mask & 0x78) { | 446 | if (hwif->ultra_mask & 0x78) { |
447 | if (!hwif->udma_four) | 447 | if (hwif->cbl != ATA_CBL_PATA40_SHORT) |
448 | hwif->udma_four = piix_cable_detect(hwif); | 448 | hwif->cbl = piix_cable_detect(hwif); |
449 | } | 449 | } |
450 | 450 | ||
451 | if (no_piix_dma) | 451 | if (no_piix_dma) |