Lines Matching refs:ap
52 struct ata_port *ap; member
129 static void octeon_cf_set_piomode(struct ata_port *ap, struct ata_device *dev) in octeon_cf_set_piomode() argument
131 struct octeon_cf_port *cf_port = ap->private_data; in octeon_cf_set_piomode()
223 static void octeon_cf_set_dmamode(struct ata_port *ap, struct ata_device *dev) in octeon_cf_set_dmamode() argument
225 struct octeon_cf_port *cf_port = ap->private_data; in octeon_cf_set_dmamode()
307 struct ata_port *ap = dev->link->ap; in octeon_cf_data_xfer8() local
308 void __iomem *data_addr = ap->ioaddr.data_addr; in octeon_cf_data_xfer8()
323 ioread8(ap->ioaddr.altstatus_addr); in octeon_cf_data_xfer8()
346 struct ata_port *ap = dev->link->ap; in octeon_cf_data_xfer16() local
347 void __iomem *data_addr = ap->ioaddr.data_addr; in octeon_cf_data_xfer16()
362 ioread8(ap->ioaddr.altstatus_addr); in octeon_cf_data_xfer16()
391 static void octeon_cf_tf_read16(struct ata_port *ap, struct ata_taskfile *tf) in octeon_cf_tf_read16() argument
395 void __iomem *base = ap->ioaddr.data_addr; in octeon_cf_tf_read16()
413 if (likely(ap->ioaddr.ctl_addr)) { in octeon_cf_tf_read16()
414 iowrite8(tf->ctl | ATA_HOB, ap->ioaddr.ctl_addr); in octeon_cf_tf_read16()
427 iowrite8(tf->ctl, ap->ioaddr.ctl_addr); in octeon_cf_tf_read16()
428 ap->last_ctl = tf->ctl; in octeon_cf_tf_read16()
435 static u8 octeon_cf_check_status16(struct ata_port *ap) in octeon_cf_check_status16() argument
438 void __iomem *base = ap->ioaddr.data_addr; in octeon_cf_check_status16()
447 struct ata_port *ap = link->ap; in octeon_cf_softreset16() local
448 void __iomem *base = ap->ioaddr.data_addr; in octeon_cf_softreset16()
453 __raw_writew(ap->ctl, base + 0xe); in octeon_cf_softreset16()
455 __raw_writew(ap->ctl | ATA_SRST, base + 0xe); in octeon_cf_softreset16()
457 __raw_writew(ap->ctl, base + 0xe); in octeon_cf_softreset16()
475 static void octeon_cf_tf_load16(struct ata_port *ap, in octeon_cf_tf_load16() argument
480 void __iomem *base = ap->ioaddr.data_addr; in octeon_cf_tf_load16()
482 if (tf->ctl != ap->last_ctl) { in octeon_cf_tf_load16()
483 iowrite8(tf->ctl, ap->ioaddr.ctl_addr); in octeon_cf_tf_load16()
484 ap->last_ctl = tf->ctl; in octeon_cf_tf_load16()
485 ata_wait_idle(ap); in octeon_cf_tf_load16()
509 ata_wait_idle(ap); in octeon_cf_tf_load16()
513 static void octeon_cf_dev_select(struct ata_port *ap, unsigned int device) in octeon_cf_dev_select() argument
523 static void octeon_cf_exec_command16(struct ata_port *ap, in octeon_cf_exec_command16() argument
527 void __iomem *base = ap->ioaddr.data_addr; in octeon_cf_exec_command16()
537 DPRINTK("ata%u: cmd 0x%X\n", ap->print_id, tf->command); in octeon_cf_exec_command16()
542 ata_wait_idle(ap); in octeon_cf_exec_command16()
545 static void octeon_cf_ata_port_noaction(struct ata_port *ap) in octeon_cf_ata_port_noaction() argument
551 struct ata_port *ap = qc->ap; in octeon_cf_dma_setup() local
554 cf_port = ap->private_data; in octeon_cf_dma_setup()
559 ap->ops->sff_exec_command(ap, &qc->tf); in octeon_cf_dma_setup()
570 struct octeon_cf_port *cf_port = qc->ap->private_data; in octeon_cf_dma_start()
630 static unsigned int octeon_cf_dma_finished(struct ata_port *ap, in octeon_cf_dma_finished() argument
633 struct ata_eh_info *ehi = &ap->link.eh_info; in octeon_cf_dma_finished()
634 struct octeon_cf_port *cf_port = ap->private_data; in octeon_cf_dma_finished()
640 ap->print_id, qc->tf.protocol, ap->hsm_task_state); in octeon_cf_dma_finished()
643 if (ap->hsm_task_state != HSM_ST_LAST) in octeon_cf_dma_finished()
650 ap->hsm_task_state = HSM_ST_ERR; in octeon_cf_dma_finished()
666 status = ap->ops->sff_check_status(ap); in octeon_cf_dma_finished()
668 ata_sff_hsm_move(ap, qc, status, 0); in octeon_cf_dma_finished()
693 struct ata_port *ap; in octeon_cf_interrupt() local
698 ap = host->ports[i]; in octeon_cf_interrupt()
699 cf_port = ap->private_data; in octeon_cf_interrupt()
704 qc = ata_qc_from_tag(ap, ap->link.active_tag); in octeon_cf_interrupt()
721 status = ioread8(ap->ioaddr.altstatus_addr); in octeon_cf_interrupt()
740 handled |= octeon_cf_dma_finished(ap, qc); in octeon_cf_interrupt()
753 struct ata_port *ap = cf_port->ap; in octeon_cf_delayed_finish() local
754 struct ata_host *host = ap->host; in octeon_cf_delayed_finish()
767 if (ap->hsm_task_state != HSM_ST_LAST || !cf_port->dma_finished) in octeon_cf_delayed_finish()
770 status = ioread8(ap->ioaddr.altstatus_addr); in octeon_cf_delayed_finish()
778 qc = ata_qc_from_tag(ap, ap->link.active_tag); in octeon_cf_delayed_finish()
780 octeon_cf_dma_finished(ap, qc); in octeon_cf_delayed_finish()
806 struct ata_port *ap = qc->ap; in octeon_cf_qc_issue() local
812 ap->ops->sff_tf_load(ap, &qc->tf); /* load tf registers */ in octeon_cf_qc_issue()
815 ap->hsm_task_state = HSM_ST_LAST; in octeon_cf_qc_issue()
819 dev_err(ap->dev, "Error, ATAPI not supported\n"); in octeon_cf_qc_issue()
856 struct ata_port *ap; in octeon_cf_probe() local
949 ap = host->ports[0]; in octeon_cf_probe()
950 ap->private_data = cf_port; in octeon_cf_probe()
952 cf_port->ap = ap; in octeon_cf_probe()
953 ap->ops = &octeon_cf_ops; in octeon_cf_probe()
954 ap->pio_mask = ATA_PIO6; in octeon_cf_probe()
955 ap->flags |= ATA_FLAG_NO_ATAPI | ATA_FLAG_PIO_POLLING; in octeon_cf_probe()
959 ap->ioaddr.cmd_addr = base; in octeon_cf_probe()
960 ata_sff_std_ports(&ap->ioaddr); in octeon_cf_probe()
962 ap->ioaddr.altstatus_addr = base + 0xe; in octeon_cf_probe()
963 ap->ioaddr.ctl_addr = base + 0xe; in octeon_cf_probe()
967 ap->ioaddr.cmd_addr = base + (ATA_REG_CMD << 1) + 1; in octeon_cf_probe()
968 ap->ioaddr.data_addr = base + (ATA_REG_DATA << 1); in octeon_cf_probe()
969 ap->ioaddr.error_addr = base + (ATA_REG_ERR << 1) + 1; in octeon_cf_probe()
970 ap->ioaddr.feature_addr = base + (ATA_REG_FEATURE << 1) + 1; in octeon_cf_probe()
971 ap->ioaddr.nsect_addr = base + (ATA_REG_NSECT << 1) + 1; in octeon_cf_probe()
972 ap->ioaddr.lbal_addr = base + (ATA_REG_LBAL << 1) + 1; in octeon_cf_probe()
973 ap->ioaddr.lbam_addr = base + (ATA_REG_LBAM << 1) + 1; in octeon_cf_probe()
974 ap->ioaddr.lbah_addr = base + (ATA_REG_LBAH << 1) + 1; in octeon_cf_probe()
975 ap->ioaddr.device_addr = base + (ATA_REG_DEVICE << 1) + 1; in octeon_cf_probe()
976 ap->ioaddr.status_addr = base + (ATA_REG_STATUS << 1) + 1; in octeon_cf_probe()
977 ap->ioaddr.command_addr = base + (ATA_REG_CMD << 1) + 1; in octeon_cf_probe()
978 ap->ioaddr.altstatus_addr = cs1 + (6 << 1) + 1; in octeon_cf_probe()
979 ap->ioaddr.ctl_addr = cs1 + (6 << 1) + 1; in octeon_cf_probe()
982 ap->mwdma_mask = enable_dma ? ATA_MWDMA4 : 0; in octeon_cf_probe()
998 ap->ioaddr.data_addr = base + ATA_REG_DATA; in octeon_cf_probe()
999 ap->ioaddr.nsect_addr = base + ATA_REG_NSECT; in octeon_cf_probe()
1000 ap->ioaddr.lbal_addr = base + ATA_REG_LBAL; in octeon_cf_probe()
1001 ap->ioaddr.ctl_addr = base + 0xe; in octeon_cf_probe()
1002 ap->ioaddr.altstatus_addr = base + 0xe; in octeon_cf_probe()
1004 cf_port->c0 = ap->ioaddr.ctl_addr; in octeon_cf_probe()
1010 ata_port_desc(ap, "cmd %p ctl %p", base, ap->ioaddr.ctl_addr); in octeon_cf_probe()