Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide:
cy82c693: fix PCI device selection
icside: DMA support fix
IDE: Don't powerdown Compaq Triflex IDE device on suspend
piix: ICH7 MWDMA1 errata

+29 -13
+3 -3
drivers/ide/cy82c693.c
··· 1 1 /* 2 2 * Copyright (C) 1998-2000 Andreas S. Krebs (akrebs@altavista.net), Maintainer 3 3 * Copyright (C) 1998-2002 Andre Hedrick <andre@linux-ide.org>, Integrator 4 - * Copyright (C) 2007-2010 Bartlomiej Zolnierkiewicz 4 + * Copyright (C) 2007-2011 Bartlomiej Zolnierkiewicz 5 5 * 6 6 * CYPRESS CY82C693 chipset IDE controller 7 7 * ··· 90 90 u8 time_16, time_8; 91 91 92 92 /* select primary or secondary channel */ 93 - if (hwif->index > 0) { /* drive is on the secondary channel */ 93 + if (drive->dn > 1) { /* drive is on the secondary channel */ 94 94 dev = pci_get_slot(dev->bus, dev->devfn+1); 95 95 if (!dev) { 96 96 printk(KERN_ERR "%s: tune_drive: " ··· 141 141 pci_write_config_byte(dev, CY82_IDE_SLAVE_IOW, time_16); 142 142 pci_write_config_byte(dev, CY82_IDE_SLAVE_8BIT, time_8); 143 143 } 144 - if (hwif->index > 0) 144 + if (drive->dn > 1) 145 145 pci_dev_put(dev); 146 146 } 147 147
+1 -1
drivers/ide/icside.c
··· 521 521 if (ec->dma != NO_DMA && !request_dma(ec->dma, DRV_NAME)) { 522 522 d.init_dma = icside_dma_init; 523 523 d.port_ops = &icside_v6_port_ops; 524 + } else 524 525 d.dma_ops = NULL; 525 - } 526 526 527 527 ret = ide_host_register(host, &d, hws); 528 528 if (ret)
+10 -8
drivers/ide/piix.c
··· 331 331 .udma_mask = udma, \ 332 332 } 333 333 334 - #define DECLARE_ICH_DEV(udma) \ 334 + #define DECLARE_ICH_DEV(mwdma, udma) \ 335 335 { \ 336 336 .name = DRV_NAME, \ 337 337 .init_chipset = init_chipset_ich, \ ··· 340 340 .port_ops = &ich_port_ops, \ 341 341 .pio_mask = ATA_PIO4, \ 342 342 .swdma_mask = ATA_SWDMA2_ONLY, \ 343 - .mwdma_mask = ATA_MWDMA12_ONLY, \ 343 + .mwdma_mask = mwdma, \ 344 344 .udma_mask = udma, \ 345 345 } 346 346 ··· 362 362 /* 2: PIIX4 */ 363 363 DECLARE_PIIX_DEV(ATA_UDMA2), 364 364 /* 3: ICH0 */ 365 - DECLARE_ICH_DEV(ATA_UDMA2), 365 + DECLARE_ICH_DEV(ATA_MWDMA12_ONLY, ATA_UDMA2), 366 366 /* 4: ICH */ 367 - DECLARE_ICH_DEV(ATA_UDMA4), 367 + DECLARE_ICH_DEV(ATA_MWDMA12_ONLY, ATA_UDMA4), 368 368 /* 5: PIIX4 */ 369 369 DECLARE_PIIX_DEV(ATA_UDMA4), 370 - /* 6: ICH[2-7]/ICH[2-3]M/C-ICH/ICH5-SATA/ESB2/ICH8M */ 371 - DECLARE_ICH_DEV(ATA_UDMA5), 370 + /* 6: ICH[2-6]/ICH[2-3]M/C-ICH/ICH5-SATA/ESB2/ICH8M */ 371 + DECLARE_ICH_DEV(ATA_MWDMA12_ONLY, ATA_UDMA5), 372 + /* 7: ICH7/7-R, no MWDMA1 */ 373 + DECLARE_ICH_DEV(ATA_MWDMA2_ONLY, ATA_UDMA5), 372 374 }; 373 375 374 376 /** ··· 440 438 #endif 441 439 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ESB_2), 6 }, 442 440 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ICH6_19), 6 }, 443 - { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ICH7_21), 6 }, 441 + { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ICH7_21), 7 }, 444 442 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_82801DB_1), 6 }, 445 - { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ESB2_18), 6 }, 443 + { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ESB2_18), 7 }, 446 444 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ICH8_6), 6 }, 447 445 { 0, }, 448 446 };
+15 -1
drivers/ide/triflex.c
··· 113 113 }; 114 114 MODULE_DEVICE_TABLE(pci, triflex_pci_tbl); 115 115 116 + #ifdef CONFIG_PM 117 + static int triflex_ide_pci_suspend(struct pci_dev *dev, pm_message_t state) 118 + { 119 + /* 120 + * We must not disable or powerdown the device. 121 + * APM bios refuses to suspend if IDE is not accessible. 122 + */ 123 + pci_save_state(dev); 124 + return 0; 125 + } 126 + #else 127 + #define triflex_ide_pci_suspend NULL 128 + #endif 129 + 116 130 static struct pci_driver triflex_pci_driver = { 117 131 .name = "TRIFLEX_IDE", 118 132 .id_table = triflex_pci_tbl, 119 133 .probe = triflex_init_one, 120 134 .remove = ide_pci_remove, 121 - .suspend = ide_pci_suspend, 135 + .suspend = triflex_ide_pci_suspend, 122 136 .resume = ide_pci_resume, 123 137 }; 124 138