Lines Matching refs:ap

329 static void ep93xx_pata_set_piomode(struct ata_port *ap,  in ep93xx_pata_set_piomode()  argument
332 struct ep93xx_pata_data *drv_data = ap->host->private_data; in ep93xx_pata_set_piomode()
357 static u8 ep93xx_pata_check_status(struct ata_port *ap) in ep93xx_pata_check_status() argument
359 struct ep93xx_pata_data *drv_data = ap->host->private_data; in ep93xx_pata_check_status()
364 static u8 ep93xx_pata_check_altstatus(struct ata_port *ap) in ep93xx_pata_check_altstatus() argument
366 struct ep93xx_pata_data *drv_data = ap->host->private_data; in ep93xx_pata_check_altstatus()
372 static void ep93xx_pata_tf_load(struct ata_port *ap, in ep93xx_pata_tf_load() argument
375 struct ep93xx_pata_data *drv_data = ap->host->private_data; in ep93xx_pata_tf_load()
378 if (tf->ctl != ap->last_ctl) { in ep93xx_pata_tf_load()
380 ap->last_ctl = tf->ctl; in ep93xx_pata_tf_load()
381 ata_wait_idle(ap); in ep93xx_pata_tf_load()
410 ata_wait_idle(ap); in ep93xx_pata_tf_load()
414 static void ep93xx_pata_tf_read(struct ata_port *ap, struct ata_taskfile *tf) in ep93xx_pata_tf_read() argument
416 struct ep93xx_pata_data *drv_data = ap->host->private_data; in ep93xx_pata_tf_read()
418 tf->command = ep93xx_pata_check_status(ap); in ep93xx_pata_tf_read()
440 ap->last_ctl = tf->ctl; in ep93xx_pata_tf_read()
445 static void ep93xx_pata_exec_command(struct ata_port *ap, in ep93xx_pata_exec_command() argument
448 struct ep93xx_pata_data *drv_data = ap->host->private_data; in ep93xx_pata_exec_command()
452 ata_sff_pause(ap); in ep93xx_pata_exec_command()
456 static void ep93xx_pata_dev_select(struct ata_port *ap, unsigned int device) in ep93xx_pata_dev_select() argument
458 struct ep93xx_pata_data *drv_data = ap->host->private_data; in ep93xx_pata_dev_select()
465 ata_sff_pause(ap); /* needed; also flushes, for mmio */ in ep93xx_pata_dev_select()
469 static void ep93xx_pata_set_devctl(struct ata_port *ap, u8 ctl) in ep93xx_pata_set_devctl() argument
471 struct ep93xx_pata_data *drv_data = ap->host->private_data; in ep93xx_pata_set_devctl()
481 struct ata_port *ap = adev->link->ap; in ep93xx_pata_data_xfer() local
482 struct ep93xx_pata_data *drv_data = ap->host->private_data; in ep93xx_pata_data_xfer()
519 static bool ep93xx_pata_device_is_present(struct ata_port *ap, in ep93xx_pata_device_is_present() argument
522 struct ep93xx_pata_data *drv_data = ap->host->private_data; in ep93xx_pata_device_is_present()
525 ap->ops->sff_dev_select(ap, device); in ep93xx_pata_device_is_present()
550 struct ata_port *ap = link->ap; in ep93xx_pata_wait_after_reset() local
551 struct ep93xx_pata_data *drv_data = ap->host->private_data; in ep93xx_pata_wait_after_reset()
556 ata_msleep(ap, ATA_WAIT_AFTER_RESET); in ep93xx_pata_wait_after_reset()
574 ap->ops->sff_dev_select(ap, 1); in ep93xx_pata_wait_after_reset()
601 ap->ops->sff_dev_select(ap, 0); in ep93xx_pata_wait_after_reset()
603 ap->ops->sff_dev_select(ap, 1); in ep93xx_pata_wait_after_reset()
605 ap->ops->sff_dev_select(ap, 0); in ep93xx_pata_wait_after_reset()
611 static int ep93xx_pata_bus_softreset(struct ata_port *ap, unsigned int devmask, in ep93xx_pata_bus_softreset() argument
614 struct ep93xx_pata_data *drv_data = ap->host->private_data; in ep93xx_pata_bus_softreset()
616 ep93xx_pata_write_reg(drv_data, ap->ctl, IDECTRL_ADDR_CTL); in ep93xx_pata_bus_softreset()
618 ep93xx_pata_write_reg(drv_data, ap->ctl | ATA_SRST, IDECTRL_ADDR_CTL); in ep93xx_pata_bus_softreset()
620 ep93xx_pata_write_reg(drv_data, ap->ctl, IDECTRL_ADDR_CTL); in ep93xx_pata_bus_softreset()
621 ap->last_ctl = ap->ctl; in ep93xx_pata_bus_softreset()
623 return ep93xx_pata_wait_after_reset(&ap->link, devmask, deadline); in ep93xx_pata_bus_softreset()
704 struct ep93xx_pata_data *drv_data = qc->ap->host->private_data; in ep93xx_pata_dma_start()
714 dev_err(qc->ap->dev, "failed to prepare slave for sg dma\n"); in ep93xx_pata_dma_start()
721 dev_err(qc->ap->dev, "failed to submit dma transfer\n"); in ep93xx_pata_dma_start()
744 struct ep93xx_pata_data *drv_data = qc->ap->host->private_data; in ep93xx_pata_dma_stop()
762 ata_sff_dma_pause(qc->ap); in ep93xx_pata_dma_stop()
767 qc->ap->ops->sff_exec_command(qc->ap, &qc->tf); in ep93xx_pata_dma_setup()
770 static u8 ep93xx_pata_dma_status(struct ata_port *ap) in ep93xx_pata_dma_status() argument
772 struct ep93xx_pata_data *drv_data = ap->host->private_data; in ep93xx_pata_dma_status()
806 struct ata_port *ap = al->ap; in ep93xx_pata_softreset() local
807 unsigned int slave_possible = ap->flags & ATA_FLAG_SLAVE_POSS; in ep93xx_pata_softreset()
813 if (ep93xx_pata_device_is_present(ap, 0)) in ep93xx_pata_softreset()
815 if (slave_possible && ep93xx_pata_device_is_present(ap, 1)) in ep93xx_pata_softreset()
819 ap->ops->sff_dev_select(al->ap, 0); in ep93xx_pata_softreset()
822 rc = ep93xx_pata_bus_softreset(ap, devmask, deadline); in ep93xx_pata_softreset()
843 struct ata_port *ap; in ep93xx_pata_drain_fifo() local
850 ap = qc->ap; in ep93xx_pata_drain_fifo()
851 drv_data = ap->host->private_data; in ep93xx_pata_drain_fifo()
853 for (count = 0; (ap->ops->sff_check_status(ap) & ATA_DRQ) in ep93xx_pata_drain_fifo()
859 ata_port_dbg(ap, "drained %d bytes to clear DRQ.\n", count); in ep93xx_pata_drain_fifo()
863 static int ep93xx_pata_port_start(struct ata_port *ap) in ep93xx_pata_port_start() argument
865 struct ep93xx_pata_data *drv_data = ap->host->private_data; in ep93xx_pata_port_start()
917 struct ata_port *ap; in ep93xx_pata_probe() local
965 ap = host->ports[0]; in ep93xx_pata_probe()
966 ap->dev = &pdev->dev; in ep93xx_pata_probe()
967 ap->ops = &ep93xx_pata_port_ops; in ep93xx_pata_probe()
968 ap->flags |= ATA_FLAG_SLAVE_POSS; in ep93xx_pata_probe()
969 ap->pio_mask = ATA_PIO4; in ep93xx_pata_probe()
984 ap->udma_mask = ATA_UDMA3; in ep93xx_pata_probe()
986 ap->udma_mask = ATA_UDMA4; in ep93xx_pata_probe()
988 ap->udma_mask = ATA_UDMA2; in ep93xx_pata_probe()