Lines Matching refs:ap
52 struct ata_port *ap; member
125 static void octeon_cf_set_piomode(struct ata_port *ap, struct ata_device *dev) in octeon_cf_set_piomode() argument
127 struct octeon_cf_port *cf_port = ap->private_data; in octeon_cf_set_piomode()
210 static void octeon_cf_set_dmamode(struct ata_port *ap, struct ata_device *dev) in octeon_cf_set_dmamode() argument
212 struct octeon_cf_port *cf_port = ap->private_data; in octeon_cf_set_dmamode()
294 struct ata_port *ap = qc->dev->link->ap; in octeon_cf_data_xfer8() local
295 void __iomem *data_addr = ap->ioaddr.data_addr; in octeon_cf_data_xfer8()
310 ioread8(ap->ioaddr.altstatus_addr); in octeon_cf_data_xfer8()
333 struct ata_port *ap = qc->dev->link->ap; in octeon_cf_data_xfer16() local
334 void __iomem *data_addr = ap->ioaddr.data_addr; in octeon_cf_data_xfer16()
349 ioread8(ap->ioaddr.altstatus_addr); in octeon_cf_data_xfer16()
378 static void octeon_cf_tf_read16(struct ata_port *ap, struct ata_taskfile *tf) in octeon_cf_tf_read16() argument
382 void __iomem *base = ap->ioaddr.data_addr; in octeon_cf_tf_read16()
400 if (likely(ap->ioaddr.ctl_addr)) { in octeon_cf_tf_read16()
401 iowrite8(tf->ctl | ATA_HOB, ap->ioaddr.ctl_addr); in octeon_cf_tf_read16()
414 iowrite8(tf->ctl, ap->ioaddr.ctl_addr); in octeon_cf_tf_read16()
415 ap->last_ctl = tf->ctl; in octeon_cf_tf_read16()
422 static u8 octeon_cf_check_status16(struct ata_port *ap) in octeon_cf_check_status16() argument
425 void __iomem *base = ap->ioaddr.data_addr; in octeon_cf_check_status16()
434 struct ata_port *ap = link->ap; in octeon_cf_softreset16() local
435 void __iomem *base = ap->ioaddr.data_addr; in octeon_cf_softreset16()
439 __raw_writew(ap->ctl, base + 0xe); in octeon_cf_softreset16()
441 __raw_writew(ap->ctl | ATA_SRST, base + 0xe); in octeon_cf_softreset16()
443 __raw_writew(ap->ctl, base + 0xe); in octeon_cf_softreset16()
460 static void octeon_cf_tf_load16(struct ata_port *ap, in octeon_cf_tf_load16() argument
465 void __iomem *base = ap->ioaddr.data_addr; in octeon_cf_tf_load16()
467 if (tf->ctl != ap->last_ctl) { in octeon_cf_tf_load16()
468 iowrite8(tf->ctl, ap->ioaddr.ctl_addr); in octeon_cf_tf_load16()
469 ap->last_ctl = tf->ctl; in octeon_cf_tf_load16()
470 ata_wait_idle(ap); in octeon_cf_tf_load16()
482 ata_wait_idle(ap); in octeon_cf_tf_load16()
486 static void octeon_cf_dev_select(struct ata_port *ap, unsigned int device) in octeon_cf_dev_select() argument
496 static void octeon_cf_exec_command16(struct ata_port *ap, in octeon_cf_exec_command16() argument
500 void __iomem *base = ap->ioaddr.data_addr; in octeon_cf_exec_command16()
509 ata_wait_idle(ap); in octeon_cf_exec_command16()
512 static void octeon_cf_ata_port_noaction(struct ata_port *ap) in octeon_cf_ata_port_noaction() argument
518 struct ata_port *ap = qc->ap; in octeon_cf_dma_setup() local
521 cf_port = ap->private_data; in octeon_cf_dma_setup()
525 ap->ops->sff_exec_command(ap, &qc->tf); in octeon_cf_dma_setup()
535 struct octeon_cf_port *cf_port = qc->ap->private_data; in octeon_cf_dma_start()
589 static unsigned int octeon_cf_dma_finished(struct ata_port *ap, in octeon_cf_dma_finished() argument
592 struct ata_eh_info *ehi = &ap->link.eh_info; in octeon_cf_dma_finished()
593 struct octeon_cf_port *cf_port = ap->private_data; in octeon_cf_dma_finished()
598 trace_ata_bmdma_stop(ap, &qc->tf, qc->tag); in octeon_cf_dma_finished()
600 if (ap->hsm_task_state != HSM_ST_LAST) in octeon_cf_dma_finished()
607 ap->hsm_task_state = HSM_ST_ERR; in octeon_cf_dma_finished()
623 status = ap->ops->sff_check_status(ap); in octeon_cf_dma_finished()
625 ata_sff_hsm_move(ap, qc, status, 0); in octeon_cf_dma_finished()
649 struct ata_port *ap; in octeon_cf_interrupt() local
654 ap = host->ports[i]; in octeon_cf_interrupt()
655 cf_port = ap->private_data; in octeon_cf_interrupt()
660 qc = ata_qc_from_tag(ap, ap->link.active_tag); in octeon_cf_interrupt()
669 trace_ata_bmdma_start(ap, &qc->tf, qc->tag); in octeon_cf_interrupt()
678 status = ioread8(ap->ioaddr.altstatus_addr); in octeon_cf_interrupt()
697 handled |= octeon_cf_dma_finished(ap, qc); in octeon_cf_interrupt()
709 struct ata_port *ap = cf_port->ap; in octeon_cf_delayed_finish() local
710 struct ata_host *host = ap->host; in octeon_cf_delayed_finish()
723 if (ap->hsm_task_state != HSM_ST_LAST || !cf_port->dma_finished) in octeon_cf_delayed_finish()
726 status = ioread8(ap->ioaddr.altstatus_addr); in octeon_cf_delayed_finish()
734 qc = ata_qc_from_tag(ap, ap->link.active_tag); in octeon_cf_delayed_finish()
736 octeon_cf_dma_finished(ap, qc); in octeon_cf_delayed_finish()
762 struct ata_port *ap = qc->ap; in octeon_cf_qc_issue() local
768 trace_ata_tf_load(ap, &qc->tf); in octeon_cf_qc_issue()
769 ap->ops->sff_tf_load(ap, &qc->tf); /* load tf registers */ in octeon_cf_qc_issue()
770 trace_ata_bmdma_setup(ap, &qc->tf, qc->tag); in octeon_cf_qc_issue()
772 trace_ata_bmdma_start(ap, &qc->tf, qc->tag); in octeon_cf_qc_issue()
774 ap->hsm_task_state = HSM_ST_LAST; in octeon_cf_qc_issue()
778 dev_err(ap->dev, "Error, ATAPI not supported\n"); in octeon_cf_qc_issue()
814 struct ata_port *ap; in octeon_cf_probe() local
910 ap = host->ports[0]; in octeon_cf_probe()
911 ap->private_data = cf_port; in octeon_cf_probe()
913 cf_port->ap = ap; in octeon_cf_probe()
914 ap->ops = &octeon_cf_ops; in octeon_cf_probe()
915 ap->pio_mask = ATA_PIO6; in octeon_cf_probe()
916 ap->flags |= ATA_FLAG_NO_ATAPI | ATA_FLAG_PIO_POLLING; in octeon_cf_probe()
920 ap->ioaddr.cmd_addr = base; in octeon_cf_probe()
921 ata_sff_std_ports(&ap->ioaddr); in octeon_cf_probe()
923 ap->ioaddr.altstatus_addr = base + 0xe; in octeon_cf_probe()
924 ap->ioaddr.ctl_addr = base + 0xe; in octeon_cf_probe()
928 ap->ioaddr.cmd_addr = base + (ATA_REG_CMD << 1) + 1; in octeon_cf_probe()
929 ap->ioaddr.data_addr = base + (ATA_REG_DATA << 1); in octeon_cf_probe()
930 ap->ioaddr.error_addr = base + (ATA_REG_ERR << 1) + 1; in octeon_cf_probe()
931 ap->ioaddr.feature_addr = base + (ATA_REG_FEATURE << 1) + 1; in octeon_cf_probe()
932 ap->ioaddr.nsect_addr = base + (ATA_REG_NSECT << 1) + 1; in octeon_cf_probe()
933 ap->ioaddr.lbal_addr = base + (ATA_REG_LBAL << 1) + 1; in octeon_cf_probe()
934 ap->ioaddr.lbam_addr = base + (ATA_REG_LBAM << 1) + 1; in octeon_cf_probe()
935 ap->ioaddr.lbah_addr = base + (ATA_REG_LBAH << 1) + 1; in octeon_cf_probe()
936 ap->ioaddr.device_addr = base + (ATA_REG_DEVICE << 1) + 1; in octeon_cf_probe()
937 ap->ioaddr.status_addr = base + (ATA_REG_STATUS << 1) + 1; in octeon_cf_probe()
938 ap->ioaddr.command_addr = base + (ATA_REG_CMD << 1) + 1; in octeon_cf_probe()
939 ap->ioaddr.altstatus_addr = cs1 + (6 << 1) + 1; in octeon_cf_probe()
940 ap->ioaddr.ctl_addr = cs1 + (6 << 1) + 1; in octeon_cf_probe()
943 ap->mwdma_mask = enable_dma ? ATA_MWDMA4 : 0; in octeon_cf_probe()
959 ap->ioaddr.data_addr = base + ATA_REG_DATA; in octeon_cf_probe()
960 ap->ioaddr.nsect_addr = base + ATA_REG_NSECT; in octeon_cf_probe()
961 ap->ioaddr.lbal_addr = base + ATA_REG_LBAL; in octeon_cf_probe()
962 ap->ioaddr.ctl_addr = base + 0xe; in octeon_cf_probe()
963 ap->ioaddr.altstatus_addr = base + 0xe; in octeon_cf_probe()
965 cf_port->c0 = ap->ioaddr.ctl_addr; in octeon_cf_probe()
971 ata_port_desc(ap, "cmd %p ctl %p", base, ap->ioaddr.ctl_addr); in octeon_cf_probe()