Lines Matching full:ap
388 static inline unsigned int sata_fsl_tag(struct ata_port *ap, in sata_fsl_tag() argument
395 ata_port_dbg(ap, "tag %d invalid : out of range\n", tag); in sata_fsl_tag()
400 ata_port_dbg(ap, "tag %d invalid : in use!!\n", tag); in sata_fsl_tag()
407 static void sata_fsl_setup_cmd_hdr_entry(struct ata_port *ap, in sata_fsl_setup_cmd_hdr_entry() argument
426 ata_port_dbg(ap, "cda=0x%x, prde_fis_len=0x%x, ttl=0x%x, di=0x%x\n", in sata_fsl_setup_cmd_hdr_entry()
461 ata_port_err(qc->ap, "s/g addr unaligned : 0x%llx\n", in sata_fsl_fill_sg()
464 ata_port_err(qc->ap, "s/g len unaligned : 0x%x\n", in sata_fsl_fill_sg()
500 struct ata_port *ap = qc->ap; in sata_fsl_qc_prep() local
501 struct sata_fsl_port_priv *pp = ap->private_data; in sata_fsl_qc_prep()
502 struct sata_fsl_host_priv *host_priv = ap->host->private_data; in sata_fsl_qc_prep()
504 unsigned int tag = sata_fsl_tag(ap, qc->hw_tag, hcr_base); in sata_fsl_qc_prep()
531 sata_fsl_setup_cmd_hdr_entry(ap, pp, tag, desc_info, ttl_dwords, in sata_fsl_qc_prep()
534 ata_port_dbg(ap, "SATA FSL : di = 0x%x, ttl = %d, num_prde = %d\n", in sata_fsl_qc_prep()
542 struct ata_port *ap = qc->ap; in sata_fsl_qc_issue() local
543 struct sata_fsl_host_priv *host_priv = ap->host->private_data; in sata_fsl_qc_issue()
545 unsigned int tag = sata_fsl_tag(ap, qc->hw_tag, hcr_base); in sata_fsl_qc_issue()
547 ata_port_dbg(ap, "CQ=0x%x,CA=0x%x,CE=0x%x,CC=0x%x\n", in sata_fsl_qc_issue()
557 ata_port_dbg(ap, "tag=%d, CQ=0x%x, CA=0x%x\n", in sata_fsl_qc_issue()
560 ata_port_dbg(ap, "CE=0x%x, DE=0x%x, CC=0x%x, CmdStat = 0x%x\n", in sata_fsl_qc_issue()
571 struct sata_fsl_port_priv *pp = qc->ap->private_data; in sata_fsl_qc_fill_rtf()
572 struct sata_fsl_host_priv *host_priv = qc->ap->host->private_data; in sata_fsl_qc_fill_rtf()
574 unsigned int tag = sata_fsl_tag(qc->ap, qc->hw_tag, hcr_base); in sata_fsl_qc_fill_rtf()
585 struct sata_fsl_host_priv *host_priv = link->ap->host->private_data; in sata_fsl_scr_write()
609 struct sata_fsl_host_priv *host_priv = link->ap->host->private_data; in sata_fsl_scr_read()
630 static void sata_fsl_freeze(struct ata_port *ap) in sata_fsl_freeze() argument
632 struct sata_fsl_host_priv *host_priv = ap->host->private_data; in sata_fsl_freeze()
636 ata_port_dbg(ap, "CQ=0x%x, CA=0x%x, CE=0x%x, DE=0x%x\n", in sata_fsl_freeze()
640 ata_port_dbg(ap, "CmdStat = 0x%x\n", in sata_fsl_freeze()
647 ata_port_dbg(ap, "HControl = 0x%x, HStatus = 0x%x\n", in sata_fsl_freeze()
651 static void sata_fsl_thaw(struct ata_port *ap) in sata_fsl_thaw() argument
653 struct sata_fsl_host_priv *host_priv = ap->host->private_data; in sata_fsl_thaw()
660 ata_port_dbg(ap, "pending IRQs = 0x%x\n", (temp & 0x3F)); in sata_fsl_thaw()
669 ata_port_dbg(ap, "HControl = 0x%x, HStatus = 0x%x\n", in sata_fsl_thaw()
673 static void sata_fsl_pmp_attach(struct ata_port *ap) in sata_fsl_pmp_attach() argument
675 struct sata_fsl_host_priv *host_priv = ap->host->private_data; in sata_fsl_pmp_attach()
683 static void sata_fsl_pmp_detach(struct ata_port *ap) in sata_fsl_pmp_detach() argument
685 struct sata_fsl_host_priv *host_priv = ap->host->private_data; in sata_fsl_pmp_detach()
699 static int sata_fsl_port_start(struct ata_port *ap) in sata_fsl_port_start() argument
701 struct device *dev = ap->host->dev; in sata_fsl_port_start()
705 struct sata_fsl_host_priv *host_priv = ap->host->private_data; in sata_fsl_port_start()
729 ap->private_data = pp; in sata_fsl_port_start()
731 ata_port_dbg(ap, "CHBA = 0x%lx, cmdentry_phys = 0x%lx\n", in sata_fsl_port_start()
749 ata_port_dbg(ap, "HStatus = 0x%x\n", ioread32(hcr_base + HSTATUS)); in sata_fsl_port_start()
750 ata_port_dbg(ap, "HControl = 0x%x\n", ioread32(hcr_base + HCONTROL)); in sata_fsl_port_start()
751 ata_port_dbg(ap, "CHBA = 0x%x\n", ioread32(hcr_base + CHBA)); in sata_fsl_port_start()
756 static void sata_fsl_port_stop(struct ata_port *ap) in sata_fsl_port_stop() argument
758 struct device *dev = ap->host->dev; in sata_fsl_port_stop()
759 struct sata_fsl_port_priv *pp = ap->private_data; in sata_fsl_port_stop()
760 struct sata_fsl_host_priv *host_priv = ap->host->private_data; in sata_fsl_port_stop()
773 ata_wait_register(ap, hcr_base + HSTATUS, ONLINE, ONLINE, 1, 1); in sata_fsl_port_stop()
775 ap->private_data = NULL; in sata_fsl_port_stop()
782 static unsigned int sata_fsl_dev_classify(struct ata_port *ap) in sata_fsl_dev_classify() argument
784 struct sata_fsl_host_priv *host_priv = ap->host->private_data; in sata_fsl_dev_classify()
791 ata_port_dbg(ap, "HStatus = 0x%x\n", ioread32(hcr_base + HSTATUS)); in sata_fsl_dev_classify()
792 ata_port_dbg(ap, "HControl = 0x%x\n", ioread32(hcr_base + HCONTROL)); in sata_fsl_dev_classify()
799 return ata_port_classify(ap, &tf); in sata_fsl_dev_classify()
805 struct ata_port *ap = link->ap; in sata_fsl_hardreset() local
806 struct sata_fsl_host_priv *host_priv = ap->host->private_data; in sata_fsl_hardreset()
821 temp = ata_wait_register(ap, hcr_base + HSTATUS, ONLINE, ONLINE, in sata_fsl_hardreset()
825 ata_port_err(ap, "Hardreset failed, not off-lined %d\n", i); in sata_fsl_hardreset()
837 ata_port_dbg(ap, "hardreset, controller off-lined\n" in sata_fsl_hardreset()
845 ata_msleep(ap, 1); in sata_fsl_hardreset()
861 temp = ata_wait_register(ap, hcr_base + HSTATUS, ONLINE, 0, 1, 500); in sata_fsl_hardreset()
864 ata_port_err(ap, "Hardreset failed, not on-lined\n"); in sata_fsl_hardreset()
868 ata_port_dbg(ap, "controller off-lined & on-lined\n" in sata_fsl_hardreset()
879 temp = ata_wait_register(ap, hcr_base + HSTATUS, 0xFF, 0, 1, 500); in sata_fsl_hardreset()
881 ata_port_warn(ap, "No Device OR PHYRDY change,Hstatus = 0x%x\n", in sata_fsl_hardreset()
891 temp = ata_wait_register(ap, hcr_base + HSTATUS, 0xFF, 0x10, in sata_fsl_hardreset()
895 ata_port_warn(ap, "No Signature Update\n"); in sata_fsl_hardreset()
899 ata_port_info(ap, "Signature Update detected @ %d msecs\n", in sata_fsl_hardreset()
901 *class = sata_fsl_dev_classify(ap); in sata_fsl_hardreset()
918 struct ata_port *ap = link->ap; in sata_fsl_softreset() local
919 struct sata_fsl_port_priv *pp = ap->private_data; in sata_fsl_softreset()
920 struct sata_fsl_host_priv *host_priv = ap->host->private_data; in sata_fsl_softreset()
945 sata_fsl_setup_cmd_hdr_entry(ap, pp, 0, in sata_fsl_softreset()
951 ata_port_dbg(ap, "Dumping cfis : 0x%x, 0x%x, 0x%x, 0x%x\n", in sata_fsl_softreset()
959 ata_port_dbg(ap, "CQ = 0x%x, CA = 0x%x, CC = 0x%x\n", in sata_fsl_softreset()
968 temp = ata_wait_register(ap, CQ + hcr_base, 0x1, 0x1, 1, 5000); in sata_fsl_softreset()
970 ata_port_warn(ap, "ATA_SRST issue failed\n"); in sata_fsl_softreset()
972 ata_port_dbg(ap, "Softreset@5000,CQ=0x%x,CA=0x%x,CC=0x%x\n", in sata_fsl_softreset()
976 sata_fsl_scr_read(&ap->link, SCR_ERROR, &Serror); in sata_fsl_softreset()
978 ata_port_dbg(ap, "HStatus = 0x%x HControl = 0x%x Serror = 0x%x\n", in sata_fsl_softreset()
985 ata_msleep(ap, 1); in sata_fsl_softreset()
995 sata_fsl_setup_cmd_hdr_entry(ap, pp, 0, in sata_fsl_softreset()
1005 ata_msleep(ap, 150); /* ?? */ in sata_fsl_softreset()
1025 *class = sata_fsl_dev_classify(ap); in sata_fsl_softreset()
1027 ata_port_dbg(ap, "ccreg = 0x%x\n", ioread32(hcr_base + CC)); in sata_fsl_softreset()
1028 ata_port_dbg(ap, "cereg = 0x%x\n", ioread32(hcr_base + CE)); in sata_fsl_softreset()
1037 static void sata_fsl_error_handler(struct ata_port *ap) in sata_fsl_error_handler() argument
1039 sata_pmp_error_handler(ap); in sata_fsl_error_handler()
1053 static void sata_fsl_error_intr(struct ata_port *ap) in sata_fsl_error_intr() argument
1055 struct sata_fsl_host_priv *host_priv = ap->host->private_data; in sata_fsl_error_intr()
1068 link = &ap->link; in sata_fsl_error_intr()
1076 sata_fsl_scr_read(&ap->link, SCR_ERROR, &SError); in sata_fsl_error_intr()
1078 sata_fsl_scr_write(&ap->link, SCR_ERROR, SError); in sata_fsl_error_intr()
1080 ata_port_dbg(ap, "hStat=0x%x,CE=0x%x,DE =0x%x,SErr=0x%x\n", in sata_fsl_error_intr()
1093 sata_async_notification(ap); in sata_fsl_error_intr()
1097 ata_port_dbg(ap, "PHYRDY change indication\n"); in sata_fsl_error_intr()
1118 ata_port_dbg(ap, "single device error, CE=0x%x, DE=0x%x\n", in sata_fsl_error_intr()
1122 if (ap->nr_pmp_links) { in sata_fsl_error_intr()
1130 if (dev_num < ap->nr_pmp_links && dereg != 0) { in sata_fsl_error_intr()
1131 link = &ap->pmp_link[dev_num]; in sata_fsl_error_intr()
1133 qc = ata_qc_from_tag(ap, link->active_tag); in sata_fsl_error_intr()
1151 qc = ata_qc_from_tag(ap, link->active_tag); in sata_fsl_error_intr()
1170 ata_port_freeze(ap); in sata_fsl_error_intr()
1175 ata_port_abort(ap); in sata_fsl_error_intr()
1179 static void sata_fsl_host_intr(struct ata_port *ap) in sata_fsl_host_intr() argument
1181 struct sata_fsl_host_priv *host_priv = ap->host->private_data; in sata_fsl_host_intr()
1191 sata_fsl_scr_read(&ap->link, SCR_ERROR, &SError); in sata_fsl_host_intr()
1198 ata_qc_for_each_with_internal(ap, qc, tag) { in sata_fsl_host_intr()
1211 sata_fsl_scr_write(&ap->link, SCR_ERROR, in sata_fsl_host_intr()
1223 ata_port_dbg(ap, "serror @host_intr : 0x%x\n", SError); in sata_fsl_host_intr()
1224 sata_fsl_error_intr(ap); in sata_fsl_host_intr()
1228 ata_port_dbg(ap, "error interrupt!!\n"); in sata_fsl_host_intr()
1229 sata_fsl_error_intr(ap); in sata_fsl_host_intr()
1233 ata_port_dbg(ap, "Status of all queues :\n"); in sata_fsl_host_intr()
1234 ata_port_dbg(ap, "done_mask/CC = 0x%x, CA = 0x%x, CE=0x%x,CQ=0x%x,apqa=0x%llx\n", in sata_fsl_host_intr()
1239 ap->qc_active); in sata_fsl_host_intr()
1241 if (done_mask & ap->qc_active) { in sata_fsl_host_intr()
1246 ata_port_dbg(ap, "Status of all queues: done_mask/CC = 0x%x, CA = 0x%x, CE=0x%x\n", in sata_fsl_host_intr()
1252 ata_port_dbg(ap, "completing ncq cmd,tag=%d,CC=0x%x,CA=0x%x\n", in sata_fsl_host_intr()
1256 ata_qc_complete_multiple(ap, ata_qc_get_active(ap) ^ done_mask); in sata_fsl_host_intr()
1259 } else if ((ap->qc_active & (1ULL << ATA_TAG_INTERNAL))) { in sata_fsl_host_intr()
1261 qc = ata_qc_from_tag(ap, ATA_TAG_INTERNAL); in sata_fsl_host_intr()
1263 ata_port_dbg(ap, "completing non-ncq cmd, CC=0x%x\n", in sata_fsl_host_intr()
1271 ata_port_dbg(ap, "spurious interrupt!!, CC = 0x%x\n", in sata_fsl_host_intr()
1285 struct ata_port *ap; in sata_fsl_interrupt() local
1298 ap = host->ports[0]; in sata_fsl_interrupt()
1299 if (ap) { in sata_fsl_interrupt()
1300 sata_fsl_host_intr(ap); in sata_fsl_interrupt()
1555 struct ata_port *ap = host->ports[0]; in sata_fsl_resume() local
1556 struct sata_fsl_port_priv *pp = ap->private_data; in sata_fsl_resume()