diff options
Diffstat (limited to 'drivers/ide/pci/piix.c')
-rw-r--r-- | drivers/ide/pci/piix.c | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/drivers/ide/pci/piix.c b/drivers/ide/pci/piix.c index bcdf8c17b90b..2e29543acff9 100644 --- a/drivers/ide/pci/piix.c +++ b/drivers/ide/pci/piix.c | |||
@@ -341,16 +341,6 @@ static u8 __devinit piix_cable_detect(ide_hwif_t *hwif) | |||
341 | 341 | ||
342 | static void __devinit init_hwif_piix(ide_hwif_t *hwif) | 342 | static void __devinit init_hwif_piix(ide_hwif_t *hwif) |
343 | { | 343 | { |
344 | #ifndef CONFIG_IA64 | ||
345 | if (!hwif->irq) | ||
346 | hwif->irq = hwif->channel ? 15 : 14; | ||
347 | #endif /* CONFIG_IA64 */ | ||
348 | |||
349 | if (hwif->pci_dev->device == PCI_DEVICE_ID_INTEL_82371MX) { | ||
350 | /* This is a painful system best to let it self tune for now */ | ||
351 | return; | ||
352 | } | ||
353 | |||
354 | hwif->set_pio_mode = &piix_set_pio_mode; | 344 | hwif->set_pio_mode = &piix_set_pio_mode; |
355 | hwif->set_dma_mode = &piix_set_dma_mode; | 345 | hwif->set_dma_mode = &piix_set_dma_mode; |
356 | 346 | ||
@@ -378,12 +368,18 @@ static void __devinit init_hwif_ich(ide_hwif_t *hwif) | |||
378 | hwif->ide_dma_clear_irq = &piix_dma_clear_irq; | 368 | hwif->ide_dma_clear_irq = &piix_dma_clear_irq; |
379 | } | 369 | } |
380 | 370 | ||
371 | #ifndef CONFIG_IA64 | ||
372 | #define IDE_HFLAGS_PIIX (IDE_HFLAG_LEGACY_IRQS | IDE_HFLAG_BOOTABLE) | ||
373 | #else | ||
374 | #define IDE_HFLAGS_PIIX IDE_HFLAG_BOOTABLE | ||
375 | #endif | ||
376 | |||
381 | #define DECLARE_PIIX_DEV(name_str, udma) \ | 377 | #define DECLARE_PIIX_DEV(name_str, udma) \ |
382 | { \ | 378 | { \ |
383 | .name = name_str, \ | 379 | .name = name_str, \ |
384 | .init_hwif = init_hwif_piix, \ | 380 | .init_hwif = init_hwif_piix, \ |
385 | .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}}, \ | 381 | .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}}, \ |
386 | .host_flags = IDE_HFLAG_BOOTABLE, \ | 382 | .host_flags = IDE_HFLAGS_PIIX, \ |
387 | .pio_mask = ATA_PIO4, \ | 383 | .pio_mask = ATA_PIO4, \ |
388 | .swdma_mask = ATA_SWDMA2_ONLY, \ | 384 | .swdma_mask = ATA_SWDMA2_ONLY, \ |
389 | .mwdma_mask = ATA_MWDMA12_ONLY, \ | 385 | .mwdma_mask = ATA_MWDMA12_ONLY, \ |
@@ -396,7 +392,7 @@ static void __devinit init_hwif_ich(ide_hwif_t *hwif) | |||
396 | .init_chipset = init_chipset_ich, \ | 392 | .init_chipset = init_chipset_ich, \ |
397 | .init_hwif = init_hwif_ich, \ | 393 | .init_hwif = init_hwif_ich, \ |
398 | .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}}, \ | 394 | .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}}, \ |
399 | .host_flags = IDE_HFLAG_BOOTABLE, \ | 395 | .host_flags = IDE_HFLAGS_PIIX, \ |
400 | .pio_mask = ATA_PIO4, \ | 396 | .pio_mask = ATA_PIO4, \ |
401 | .swdma_mask = ATA_SWDMA2_ONLY, \ | 397 | .swdma_mask = ATA_SWDMA2_ONLY, \ |
402 | .mwdma_mask = ATA_MWDMA12_ONLY, \ | 398 | .mwdma_mask = ATA_MWDMA12_ONLY, \ |
@@ -414,11 +410,11 @@ static ide_pci_device_t piix_pci_info[] __devinitdata = { | |||
414 | * of the bit 14 of the IDETIM register at offset 0x6c | 410 | * of the bit 14 of the IDETIM register at offset 0x6c |
415 | */ | 411 | */ |
416 | .name = "MPIIX", | 412 | .name = "MPIIX", |
417 | .init_hwif = init_hwif_piix, | ||
418 | .enablebits = {{0x6d,0xc0,0x80}, {0x6d,0xc0,0xc0}}, | 413 | .enablebits = {{0x6d,0xc0,0x80}, {0x6d,0xc0,0xc0}}, |
419 | .host_flags = IDE_HFLAG_ISA_PORTS | IDE_HFLAG_NO_DMA | | 414 | .host_flags = IDE_HFLAG_ISA_PORTS | IDE_HFLAG_NO_DMA | |
420 | IDE_HFLAG_BOOTABLE, | 415 | IDE_HFLAGS_PIIX, |
421 | .pio_mask = ATA_PIO4, | 416 | .pio_mask = ATA_PIO4, |
417 | /* This is a painful system best to let it self tune for now */ | ||
422 | }, | 418 | }, |
423 | 419 | ||
424 | /* 3 */ DECLARE_PIIX_DEV("PIIX3", 0x00), /* no udma */ | 420 | /* 3 */ DECLARE_PIIX_DEV("PIIX3", 0x00), /* no udma */ |