Lines Matching refs:hwif

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