Lines Matching refs:drive
120 static int sgiioc4_clearirq(ide_drive_t *drive) in sgiioc4_clearirq() argument
123 ide_hwif_t *hwif = drive->hwif; in sgiioc4_clearirq()
160 __func__, drive->name, pci_stat_cmd_reg); in sgiioc4_clearirq()
162 __func__, drive->name, in sgiioc4_clearirq()
177 static void sgiioc4_dma_start(ide_drive_t *drive) in sgiioc4_dma_start() argument
179 ide_hwif_t *hwif = drive->hwif; in sgiioc4_dma_start()
203 static int sgiioc4_dma_end(ide_drive_t *drive) in sgiioc4_dma_end() argument
206 ide_hwif_t *hwif = drive->hwif; in sgiioc4_dma_end()
219 __func__, drive->name, ioc4_dma); in sgiioc4_dma_end()
239 drive->name); in sgiioc4_dma_end()
251 __func__, drive->name, bc_dev, bc_mem); 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
263 static int sgiioc4_dma_test_irq(ide_drive_t *drive) in sgiioc4_dma_test_irq() argument
265 return sgiioc4_checkirq(drive->hwif); in sgiioc4_dma_test_irq()
268 static void sgiioc4_dma_host_set(ide_drive_t *drive, int on) in sgiioc4_dma_host_set() argument
271 sgiioc4_clearirq(drive); in sgiioc4_dma_host_set()
274 static void sgiioc4_resetproc(ide_drive_t *drive) in sgiioc4_resetproc() argument
276 struct ide_cmd *cmd = &drive->hwif->cmd; in sgiioc4_resetproc()
278 sgiioc4_dma_end(drive); in sgiioc4_resetproc()
279 ide_dma_unmap_sg(drive, cmd); in sgiioc4_resetproc()
280 sgiioc4_clearirq(drive); in sgiioc4_resetproc()
283 static void sgiioc4_dma_lost_irq(ide_drive_t *drive) in sgiioc4_dma_lost_irq() argument
285 sgiioc4_resetproc(drive); in sgiioc4_dma_lost_irq()
287 ide_dma_lost_irq(drive); in sgiioc4_dma_lost_irq()
357 static void sgiioc4_configure_for_dma(int dma_direction, ide_drive_t *drive) in sgiioc4_configure_for_dma() argument
360 ide_hwif_t *hwif = drive->hwif; in sgiioc4_configure_for_dma()
369 "transfer was still active\n", __func__, drive->name); in sgiioc4_configure_for_dma()
375 "still 1\n", __func__, drive->name); in sgiioc4_configure_for_dma()
382 __func__, drive->name, ioc4_dma); in sgiioc4_configure_for_dma()
388 "still 1\n", __func__, drive->name); in sgiioc4_configure_for_dma()
414 static int sgiioc4_build_dmatable(ide_drive_t *drive, struct ide_cmd *cmd) in sgiioc4_build_dmatable() argument
416 ide_hwif_t *hwif = drive->hwif; in sgiioc4_build_dmatable()
431 drive->name); in sgiioc4_build_dmatable()
472 static int sgiioc4_dma_setup(ide_drive_t *drive, struct ide_cmd *cmd) in sgiioc4_dma_setup() argument
477 if (sgiioc4_build_dmatable(drive, cmd) == 0) in sgiioc4_dma_setup()
488 sgiioc4_configure_for_dma(ddir, drive); in sgiioc4_dma_setup()