You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
ide: add IDE_HFLAG_SERIALIZE_DMA host flag
* Add IDE_HFLAG_SERIALIZE_DMA host flag to serialize ports if DMA is available and handle it in ide_init_port(). * Convert sl82c105 host driver to use this new flag. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
@@ -1367,8 +1367,11 @@ static void ide_init_port(ide_hwif_t *hwif, unsigned int port,
|
||||
if (hwif->chipset != ide_dtc2278 || hwif->channel == 0)
|
||||
hwif->port_ops = d->port_ops;
|
||||
|
||||
if ((d->host_flags & IDE_HFLAG_SERIALIZE) && hwif->mate)
|
||||
hwif->mate->serialized = hwif->serialized = 1;
|
||||
if ((d->host_flags & IDE_HFLAG_SERIALIZE) ||
|
||||
((d->host_flags & IDE_HFLAG_SERIALIZE_DMA) && hwif->dma_base)) {
|
||||
if (hwif->mate)
|
||||
hwif->mate->serialized = hwif->serialized = 1;
|
||||
}
|
||||
|
||||
hwif->swdma_mask = d->swdma_mask;
|
||||
hwif->mwdma_mask = d->mwdma_mask;
|
||||
|
||||
@@ -296,9 +296,6 @@ static void __devinit init_hwif_sl82c105(ide_hwif_t *hwif)
|
||||
hwif->dma_start = &sl82c105_dma_start;
|
||||
hwif->ide_dma_end = &sl82c105_dma_end;
|
||||
hwif->dma_timeout = &sl82c105_dma_timeout;
|
||||
|
||||
if (hwif->mate)
|
||||
hwif->serialized = hwif->mate->serialized = 1;
|
||||
}
|
||||
|
||||
static const struct ide_port_ops sl82c105_port_ops = {
|
||||
@@ -319,6 +316,7 @@ static const struct ide_port_info sl82c105_chipset __devinitdata = {
|
||||
#if defined(CONFIG_LOPEC) || defined(CONFIG_SANDPOINT)
|
||||
IDE_HFLAG_FORCE_LEGACY_IRQS |
|
||||
#endif
|
||||
IDE_HFLAG_SERIALIZE_DMA |
|
||||
IDE_HFLAG_NO_AUTODMA,
|
||||
.pio_mask = ATA_PIO5,
|
||||
.mwdma_mask = ATA_MWDMA2,
|
||||
@@ -338,6 +336,7 @@ static int __devinit sl82c105_init_one(struct pci_dev *dev, const struct pci_dev
|
||||
"revision %d, BM-DMA disabled\n", rev);
|
||||
d.init_hwif = NULL;
|
||||
d.mwdma_mask = 0;
|
||||
d.host_flags &= ~IDE_HFLAG_SERIALIZE_DMA;
|
||||
}
|
||||
|
||||
return ide_setup_pci_device(dev, &d);
|
||||
|
||||
Reference in New Issue
Block a user