static void hpt3x3_freeze(struct ata_port *ap) { void __iomem *mmio = ap->ioaddr.bmdma_addr; iowrite8(ioread8(mmio + ATA_DMA_CMD) & ~ ATA_DMA_START, mmio + ATA_DMA_CMD); ata_sff_dma_pause(ap); ata_sff_freeze(ap); }
static inline void rb532_pata_finish_io(struct ata_port *ap) { struct ata_host *ah = ap->host; struct rb532_cf_info *info = ah->private_data; /* FIXME: Keep previous delay. If this is merely a fence then ata_sff_sync might be sufficient. */ ata_sff_dma_pause(ap); ndelay(RB500_CF_IO_DELAY); }
static inline void rb153_pata_finish_io(struct ata_port *ap) { struct rb153_cf_info *info = ap->host->private_data; /* FIXME: Keep previous delay. If this is merely a fence then * ata_sff_sync might be sufficient. */ ata_sff_dma_pause(ap); ndelay(RB153_CF_IO_DELAY); set_irq_type(info->irq, IRQ_TYPE_LEVEL_HIGH); }