Lines Matching refs:hwif

108 static int sgiioc4_checkirq(ide_hwif_t *hwif)
110 unsigned long intr_addr = hwif->io_ports.irq_addr + IOC4_INTR_REG * 4;
123 ide_hwif_t *hwif = drive->hwif;
124 struct ide_io_ports *io_ports = &hwif->io_ports;
137 u8 stat = sgiioc4_read_status(hwif);
140 stat = sgiioc4_read_status(hwif);
143 stat = sgiioc4_read_status(hwif);
147 struct pci_dev *dev = to_pci_dev(hwif->dev);
179 ide_hwif_t *hwif = drive->hwif;
180 unsigned long ioc4_dma_addr = hwif->dma_base + IOC4_DMA_CTRL * 4;
187 static u32 sgiioc4_ide_dma_stop(ide_hwif_t *hwif, u64 dma_base)
206 ide_hwif_t *hwif = drive->hwif;
207 unsigned long dma_base = hwif->dma_base;
209 unsigned long *ending_dma = ide_get_hwifdata(hwif);
213 ioc4_dma = sgiioc4_ide_dma_stop(hwif, dma_base);
258 static void sgiioc4_set_dma_mode(ide_hwif_t *hwif, ide_drive_t *drive)
265 return sgiioc4_checkirq(drive->hwif);
276 struct ide_cmd *cmd = &drive->hwif->cmd;
290 static u8 sgiioc4_read_status(ide_hwif_t *hwif)
292 unsigned long port = hwif->io_ports.status_addr;
310 static int ide_dma_sgiioc4(ide_hwif_t *hwif, const struct ide_port_info *d)
312 struct pci_dev *dev = to_pci_dev(hwif->dev);
317 printk(KERN_INFO " %s: MMIO-DMA\n", hwif->name);
319 if (request_mem_region(dma_base, num_ports, hwif->name) == NULL) {
321 "already in use\n", __func__, hwif->name,
326 hwif->dma_base = (unsigned long)hwif->io_ports.irq_addr +
329 hwif->sg_max_nents = IOC4_PRD_ENTRIES;
331 hwif->prd_max_nents = IOC4_PRD_ENTRIES;
332 hwif->prd_ent_size = IOC4_PRD_BYTES;
334 if (ide_allocate_dma_engine(hwif))
338 (dma_addr_t *)&hwif->extra_base);
340 ide_set_hwifdata(hwif, pad);
344 ide_release_dma_engine(hwif);
347 __func__, hwif->name);
348 printk(KERN_INFO "%s: changing from DMA to PIO mode", hwif->name);
360 ide_hwif_t *hwif = drive->hwif;
361 unsigned long dma_base = hwif->dma_base;
371 ioc4_dma = sgiioc4_ide_dma_stop(hwif, dma_base);
384 ioc4_dma = sgiioc4_ide_dma_stop(hwif, dma_base);
392 dma_addr = cpu_to_le32(hwif->dmatable_dma);
396 memset(ide_get_hwifdata(hwif), 0, IOC4_IDE_CACHELINE_SIZE);
397 ending_dma_addr = cpu_to_le32(hwif->extra_base);
416 ide_hwif_t *hwif = drive->hwif;
417 unsigned int *table = hwif->dmatable_cpu;
419 struct scatterlist *sg = hwif->sg_table;