Lines Matching refs:ap

53 	struct ata_port *ap;  member
126 static void octeon_cf_set_piomode(struct ata_port *ap, struct ata_device *dev) in octeon_cf_set_piomode() argument
128 struct octeon_cf_port *cf_port = ap->private_data; in octeon_cf_set_piomode()
211 static void octeon_cf_set_dmamode(struct ata_port *ap, struct ata_device *dev) in octeon_cf_set_dmamode() argument
213 struct octeon_cf_port *cf_port = ap->private_data; in octeon_cf_set_dmamode()
295 struct ata_port *ap = qc->dev->link->ap; in octeon_cf_data_xfer8() local
296 void __iomem *data_addr = ap->ioaddr.data_addr; in octeon_cf_data_xfer8()
311 ioread8(ap->ioaddr.altstatus_addr); in octeon_cf_data_xfer8()
334 struct ata_port *ap = qc->dev->link->ap; in octeon_cf_data_xfer16() local
335 void __iomem *data_addr = ap->ioaddr.data_addr; in octeon_cf_data_xfer16()
350 ioread8(ap->ioaddr.altstatus_addr); in octeon_cf_data_xfer16()
379 static void octeon_cf_tf_read16(struct ata_port *ap, struct ata_taskfile *tf) in octeon_cf_tf_read16() argument
383 void __iomem *base = ap->ioaddr.data_addr; in octeon_cf_tf_read16()
401 if (likely(ap->ioaddr.ctl_addr)) { in octeon_cf_tf_read16()
402 iowrite8(tf->ctl | ATA_HOB, ap->ioaddr.ctl_addr); in octeon_cf_tf_read16()
415 iowrite8(tf->ctl, ap->ioaddr.ctl_addr); in octeon_cf_tf_read16()
416 ap->last_ctl = tf->ctl; in octeon_cf_tf_read16()
423 static u8 octeon_cf_check_status16(struct ata_port *ap) in octeon_cf_check_status16() argument
426 void __iomem *base = ap->ioaddr.data_addr; in octeon_cf_check_status16()
435 struct ata_port *ap = link->ap; in octeon_cf_softreset16() local
436 void __iomem *base = ap->ioaddr.data_addr; in octeon_cf_softreset16()
440 __raw_writew(ap->ctl, base + 0xe); in octeon_cf_softreset16()
442 __raw_writew(ap->ctl | ATA_SRST, base + 0xe); in octeon_cf_softreset16()
444 __raw_writew(ap->ctl, base + 0xe); in octeon_cf_softreset16()
461 static void octeon_cf_tf_load16(struct ata_port *ap, in octeon_cf_tf_load16() argument
466 void __iomem *base = ap->ioaddr.data_addr; in octeon_cf_tf_load16()
468 if (tf->ctl != ap->last_ctl) { in octeon_cf_tf_load16()
469 iowrite8(tf->ctl, ap->ioaddr.ctl_addr); in octeon_cf_tf_load16()
470 ap->last_ctl = tf->ctl; in octeon_cf_tf_load16()
471 ata_wait_idle(ap); in octeon_cf_tf_load16()
483 ata_wait_idle(ap); in octeon_cf_tf_load16()
487 static void octeon_cf_dev_select(struct ata_port *ap, unsigned int device) in octeon_cf_dev_select() argument
497 static void octeon_cf_exec_command16(struct ata_port *ap, in octeon_cf_exec_command16() argument
501 void __iomem *base = ap->ioaddr.data_addr; in octeon_cf_exec_command16()
510 ata_wait_idle(ap); in octeon_cf_exec_command16()
513 static void octeon_cf_ata_port_noaction(struct ata_port *ap) in octeon_cf_ata_port_noaction() argument
519 struct ata_port *ap = qc->ap; in octeon_cf_dma_setup() local
522 cf_port = ap->private_data; in octeon_cf_dma_setup()
526 ap->ops->sff_exec_command(ap, &qc->tf); in octeon_cf_dma_setup()
536 struct octeon_cf_port *cf_port = qc->ap->private_data; in octeon_cf_dma_start()
590 static unsigned int octeon_cf_dma_finished(struct ata_port *ap, in octeon_cf_dma_finished() argument
593 struct ata_eh_info *ehi = &ap->link.eh_info; in octeon_cf_dma_finished()
594 struct octeon_cf_port *cf_port = ap->private_data; in octeon_cf_dma_finished()
599 trace_ata_bmdma_stop(ap, &qc->tf, qc->tag); in octeon_cf_dma_finished()
601 if (ap->hsm_task_state != HSM_ST_LAST) in octeon_cf_dma_finished()
608 ap->hsm_task_state = HSM_ST_ERR; in octeon_cf_dma_finished()
624 status = ap->ops->sff_check_status(ap); in octeon_cf_dma_finished()
626 ata_sff_hsm_move(ap, qc, status, 0); in octeon_cf_dma_finished()
650 struct ata_port *ap; in octeon_cf_interrupt() local
655 ap = host->ports[i]; in octeon_cf_interrupt()
656 cf_port = ap->private_data; in octeon_cf_interrupt()
661 qc = ata_qc_from_tag(ap, ap->link.active_tag); in octeon_cf_interrupt()
670 trace_ata_bmdma_start(ap, &qc->tf, qc->tag); in octeon_cf_interrupt()
679 status = ioread8(ap->ioaddr.altstatus_addr); in octeon_cf_interrupt()
698 handled |= octeon_cf_dma_finished(ap, qc); in octeon_cf_interrupt()
710 struct ata_port *ap = cf_port->ap; in octeon_cf_delayed_finish() local
711 struct ata_host *host = ap->host; in octeon_cf_delayed_finish()
724 if (ap->hsm_task_state != HSM_ST_LAST || !cf_port->dma_finished) in octeon_cf_delayed_finish()
727 status = ioread8(ap->ioaddr.altstatus_addr); in octeon_cf_delayed_finish()
735 qc = ata_qc_from_tag(ap, ap->link.active_tag); in octeon_cf_delayed_finish()
737 octeon_cf_dma_finished(ap, qc); in octeon_cf_delayed_finish()
763 struct ata_port *ap = qc->ap; in octeon_cf_qc_issue() local
769 trace_ata_tf_load(ap, &qc->tf); in octeon_cf_qc_issue()
770 ap->ops->sff_tf_load(ap, &qc->tf); /* load tf registers */ in octeon_cf_qc_issue()
771 trace_ata_bmdma_setup(ap, &qc->tf, qc->tag); in octeon_cf_qc_issue()
773 trace_ata_bmdma_start(ap, &qc->tf, qc->tag); in octeon_cf_qc_issue()
775 ap->hsm_task_state = HSM_ST_LAST; in octeon_cf_qc_issue()
779 dev_err(ap->dev, "Error, ATAPI not supported\n"); in octeon_cf_qc_issue()
813 struct ata_port *ap; in octeon_cf_probe() local
903 ap = host->ports[0]; in octeon_cf_probe()
904 ap->private_data = cf_port; in octeon_cf_probe()
906 cf_port->ap = ap; in octeon_cf_probe()
907 ap->ops = &octeon_cf_ops; in octeon_cf_probe()
908 ap->pio_mask = ATA_PIO6; in octeon_cf_probe()
909 ap->flags |= ATA_FLAG_NO_ATAPI | ATA_FLAG_PIO_POLLING; in octeon_cf_probe()
913 ap->ioaddr.cmd_addr = base; in octeon_cf_probe()
914 ata_sff_std_ports(&ap->ioaddr); in octeon_cf_probe()
916 ap->ioaddr.altstatus_addr = base + 0xe; in octeon_cf_probe()
917 ap->ioaddr.ctl_addr = base + 0xe; in octeon_cf_probe()
921 ap->ioaddr.cmd_addr = base + (ATA_REG_CMD << 1) + 1; in octeon_cf_probe()
922 ap->ioaddr.data_addr = base + (ATA_REG_DATA << 1); in octeon_cf_probe()
923 ap->ioaddr.error_addr = base + (ATA_REG_ERR << 1) + 1; in octeon_cf_probe()
924 ap->ioaddr.feature_addr = base + (ATA_REG_FEATURE << 1) + 1; in octeon_cf_probe()
925 ap->ioaddr.nsect_addr = base + (ATA_REG_NSECT << 1) + 1; in octeon_cf_probe()
926 ap->ioaddr.lbal_addr = base + (ATA_REG_LBAL << 1) + 1; in octeon_cf_probe()
927 ap->ioaddr.lbam_addr = base + (ATA_REG_LBAM << 1) + 1; in octeon_cf_probe()
928 ap->ioaddr.lbah_addr = base + (ATA_REG_LBAH << 1) + 1; in octeon_cf_probe()
929 ap->ioaddr.device_addr = base + (ATA_REG_DEVICE << 1) + 1; in octeon_cf_probe()
930 ap->ioaddr.status_addr = base + (ATA_REG_STATUS << 1) + 1; in octeon_cf_probe()
931 ap->ioaddr.command_addr = base + (ATA_REG_CMD << 1) + 1; in octeon_cf_probe()
932 ap->ioaddr.altstatus_addr = cs1 + (6 << 1) + 1; in octeon_cf_probe()
933 ap->ioaddr.ctl_addr = cs1 + (6 << 1) + 1; in octeon_cf_probe()
936 ap->mwdma_mask = enable_dma ? ATA_MWDMA4 : 0; in octeon_cf_probe()
952 ap->ioaddr.data_addr = base + ATA_REG_DATA; in octeon_cf_probe()
953 ap->ioaddr.nsect_addr = base + ATA_REG_NSECT; in octeon_cf_probe()
954 ap->ioaddr.lbal_addr = base + ATA_REG_LBAL; in octeon_cf_probe()
955 ap->ioaddr.ctl_addr = base + 0xe; in octeon_cf_probe()
956 ap->ioaddr.altstatus_addr = base + 0xe; in octeon_cf_probe()
958 cf_port->c0 = ap->ioaddr.ctl_addr; in octeon_cf_probe()
964 ata_port_desc(ap, "cmd %p ctl %p", base, ap->ioaddr.ctl_addr); in octeon_cf_probe()