Lines Matching refs:ap

218 static void sata_rcar_freeze(struct ata_port *ap)
220 struct sata_rcar_priv *priv = ap->host->private_data;
225 ata_sff_freeze(ap);
228 static void sata_rcar_thaw(struct ata_port *ap)
230 struct sata_rcar_priv *priv = ap->host->private_data;
236 ata_sff_thaw(ap);
261 static u8 sata_rcar_check_status(struct ata_port *ap)
263 return ioread32(ap->ioaddr.status_addr);
266 static u8 sata_rcar_check_altstatus(struct ata_port *ap)
268 return ioread32(ap->ioaddr.altstatus_addr);
271 static void sata_rcar_set_devctl(struct ata_port *ap, u8 ctl)
273 iowrite32(ctl, ap->ioaddr.ctl_addr);
276 static void sata_rcar_dev_select(struct ata_port *ap, unsigned int device)
278 iowrite32(ATA_DEVICE_OBS, ap->ioaddr.device_addr);
279 ata_sff_pause(ap); /* needed; also flushes, for mmio */
282 static bool sata_rcar_ata_devchk(struct ata_port *ap, unsigned int device)
284 struct ata_ioports *ioaddr = &ap->ioaddr;
287 sata_rcar_dev_select(ap, device);
310 struct ata_port *ap = link->ap;
312 ata_msleep(ap, ATA_WAIT_AFTER_RESET);
317 static int sata_rcar_bus_softreset(struct ata_port *ap, unsigned long deadline)
319 struct ata_ioports *ioaddr = &ap->ioaddr;
322 iowrite32(ap->ctl, ioaddr->ctl_addr);
324 iowrite32(ap->ctl | ATA_SRST, ioaddr->ctl_addr);
326 iowrite32(ap->ctl, ioaddr->ctl_addr);
327 ap->last_ctl = ap->ctl;
330 return sata_rcar_wait_after_reset(&ap->link, deadline);
336 struct ata_port *ap = link->ap;
342 if (sata_rcar_ata_devchk(ap, 0))
346 rc = sata_rcar_bus_softreset(ap, deadline);
359 static void sata_rcar_tf_load(struct ata_port *ap,
362 struct ata_ioports *ioaddr = &ap->ioaddr;
365 if (tf->ctl != ap->last_ctl) {
367 ap->last_ctl = tf->ctl;
368 ata_wait_idle(ap);
390 ata_wait_idle(ap);
393 static void sata_rcar_tf_read(struct ata_port *ap, struct ata_taskfile *tf)
395 struct ata_ioports *ioaddr = &ap->ioaddr;
397 tf->status = sata_rcar_check_status(ap);
413 ap->last_ctl = tf->ctl;
417 static void sata_rcar_exec_command(struct ata_port *ap,
420 iowrite32(tf->command, ap->ioaddr.command_addr);
421 ata_sff_pause(ap);
428 struct ata_port *ap = qc->dev->link->ap;
429 void __iomem *data_addr = ap->ioaddr.data_addr;
465 struct ata_port *ap;
471 ap = qc->ap;
473 for (count = 0; (ap->ops->sff_check_status(ap) & ATA_DRQ) &&
475 ioread32(ap->ioaddr.data_addr);
478 ata_port_dbg(ap, "drained %d bytes to clear DRQ\n", count);
487 *val = ioread32(link->ap->ioaddr.scr_addr + (sc_reg << 2));
497 iowrite32(val, link->ap->ioaddr.scr_addr + (sc_reg << 2));
503 struct ata_port *ap = qc->ap;
504 struct ata_bmdma_prd *prd = ap->bmdma_prd;
538 struct ata_port *ap = qc->ap;
540 struct sata_rcar_priv *priv = ap->host->private_data;
546 iowrite32(ap->bmdma_prd_dma, base + ATAPI_DTB_ADR_REG);
560 ap->ops->sff_exec_command(ap, &qc->tf);
565 struct ata_port *ap = qc->ap;
566 struct sata_rcar_priv *priv = ap->host->private_data;
579 struct ata_port *ap = qc->ap;
580 struct sata_rcar_priv *priv = ap->host->private_data;
593 ata_sff_dma_pause(ap);
596 static u8 sata_rcar_bmdma_status(struct ata_port *ap)
598 struct sata_rcar_priv *priv = ap->host->private_data;
650 static void sata_rcar_serr_interrupt(struct ata_port *ap)
652 struct sata_rcar_priv *priv = ap->host->private_data;
653 struct ata_eh_info *ehi = &ap->link.eh_info;
661 ata_port_dbg(ap, "SError @host_intr: 0x%x\n", serror);
676 ata_port_freeze(ap);
678 ata_port_abort(ap);
681 static void sata_rcar_ata_interrupt(struct ata_port *ap)
686 qc = ata_qc_from_tag(ap, ap->link.active_tag);
688 handled |= ata_bmdma_port_intr(ap, qc);
692 sata_rcar_check_status(ap);
701 struct ata_port *ap;
714 ap = host->ports[0];
717 sata_rcar_ata_interrupt(ap);
720 sata_rcar_serr_interrupt(ap);
731 struct ata_port *ap = host->ports[0];
732 struct ata_ioports *ioaddr = &ap->ioaddr;
736 ap->ops = &sata_rcar_port_ops;
737 ap->pio_mask = ATA_PIO4;
738 ap->udma_mask = ATA_UDMA6;
739 ap->flags |= ATA_FLAG_SATA;
742 ap->flags |= ATA_FLAG_NO_DIPM;