Lines Matching refs:tag

203 	u32 fptagr;		/* 1st party DMA tag */
326 static void sata_dwc_bmdma_start_by_tag(struct ata_queued_cmd *qc, u8 tag);
331 static void sata_dwc_clear_dmacr(struct sata_dwc_device_port *hsdevp, u8 tag);
468 u8 tag = 0;
474 tag = ap->link.active_tag;
482 tfr_reg, err_reg, hsdevp->dma_pending[tag], port);
493 sata_dwc_clear_dmacr(hsdevp, tag);
495 if (hsdevp->dma_pending[tag] ==
498 "err=0x%08x tag=0x%02x pending=%d\n",
499 tfr_reg, err_reg, tag,
500 hsdevp->dma_pending[tag]);
867 static u32 qcmd_tag_to_mask(u8 tag)
869 return 0x00000001 << (tag & 0x1f);
881 u8 status, tag;
891 tag = ap->link.active_tag;
896 hsdevp->dma_pending[tag], hsdevp->cmd_issued[tag], err_reg);
911 qc = ata_qc_from_tag(ap, tag);
934 u8 status, tag;
962 tag = (u8)(in_le32(&hsdev->sata_dwc_regs->fptagr));
963 dev_dbg(ap->dev, "%s: NEWFP tag=%d\n", __func__, tag);
964 if (hsdevp->cmd_issued[tag] != SATA_DWC_CMD_ISSUED_PEND)
965 dev_warn(ap->dev, "CMD tag=%d not pending?\n", tag);
967 host_pvt.sata_dwc_sactive_issued |= qcmd_tag_to_mask(tag);
969 qc = ata_qc_from_tag(ap, tag);
971 * Start FP DMA for NCQ command. At this point the tag is the
972 * active tag. It is the tag that matches the command about to
975 qc->ap->link.active_tag = tag;
976 sata_dwc_bmdma_start_by_tag(qc, tag);
987 tag = 0;
989 tag = ap->link.active_tag;
990 qc = ata_qc_from_tag(ap, tag);
1002 qc->ap->link.active_tag = tag;
1003 hsdevp->cmd_issued[tag] = SATA_DWC_CMD_ISSUED_NOT;
1023 if (hsdevp->dma_pending[tag] == \
1028 hsdevp->dma_pending[tag]);
1066 dev_warn(ap->dev, "Bad tag mask? sactive=0x%08x "
1076 tag = 0;
1081 tag++;
1086 qc = ata_qc_from_tag(ap, tag);
1089 qc->ap->link.active_tag = tag;
1090 hsdevp->cmd_issued[tag] = SATA_DWC_CMD_ISSUED_NOT;
1106 if (hsdevp->dma_pending[tag] == \
1143 static void sata_dwc_clear_dmacr(struct sata_dwc_device_port *hsdevp, u8 tag)
1147 if (hsdevp->dma_pending[tag] == SATA_DWC_DMA_PENDING_RX) {
1151 } else if (hsdevp->dma_pending[tag] == SATA_DWC_DMA_PENDING_TX) {
1161 "TX DMA not pending tag=0x%02x pending=%d"
1162 " dmacr: 0x%08x\n", __func__, tag,
1163 hsdevp->dma_pending[tag],
1175 u8 tag = 0;
1177 tag = ap->link.active_tag;
1178 qc = ata_qc_from_tag(ap, tag);
1185 if (tag > 0) {
1186 dev_info(ap->dev, "%s tag=%u cmd=0x%02x dma dir=%s proto=%s "
1187 "dmacr=0x%08x\n", __func__, qc->tag, qc->tf.command,
1195 if (hsdevp->dma_pending[tag] == SATA_DWC_DMA_PENDING_NONE) {
1201 hsdevp->dma_pending[tag] = SATA_DWC_DMA_PENDING_NONE;
1214 u8 tag = qc->tag;
1219 if (hsdevp->dma_pending[tag] == SATA_DWC_DMA_PENDING_TX)
1221 else if (hsdevp->dma_pending[tag] == SATA_DWC_DMA_PENDING_RX)
1228 mask = (~(qcmd_tag_to_mask(tag)));
1385 * arguments : ata_port *ap, ata_taskfile *tf, u8 tag, u32 cmd_issued
1387 * This function keeps track of individual command tag ids and calls
1392 u8 tag, u32 cmd_issued)
1397 dev_dbg(ap->dev, "%s cmd(0x%02x): %s tag=%d\n", __func__, tf->command,
1398 ata_get_cmd_descript(tf->command), tag);
1401 hsdevp->cmd_issued[tag] = cmd_issued;
1413 static void sata_dwc_bmdma_setup_by_tag(struct ata_queued_cmd *qc, u8 tag)
1415 sata_dwc_exec_command_by_tag(qc->ap, &qc->tf, tag,
1421 u8 tag = qc->tag;
1424 dev_dbg(qc->ap->dev, "%s: ap->link.sactive=0x%08x tag=%d\n",
1425 __func__, qc->ap->link.sactive, tag);
1427 tag = 0;
1429 sata_dwc_bmdma_setup_by_tag(qc, tag);
1432 static void sata_dwc_bmdma_start_by_tag(struct ata_queued_cmd *qc, u8 tag)
1440 dma_chan = hsdevp->dma_chan[tag];
1442 if (hsdevp->cmd_issued[tag] != SATA_DWC_CMD_ISSUED_NOT) {
1445 hsdevp->dma_pending[tag] = SATA_DWC_DMA_PENDING_TX;
1447 hsdevp->dma_pending[tag] = SATA_DWC_DMA_PENDING_RX;
1450 "(tag=%d) DMA NOT started\n", __func__,
1451 hsdevp->cmd_issued[tag], tag);
1455 dev_dbg(ap->dev, "%s qc=%p tag: %x cmd: 0x%02x dma_dir: %s "
1456 "start_dma? %x\n", __func__, qc, tag, qc->tf.command,
1481 u8 tag = qc->tag;
1484 dev_dbg(qc->ap->dev, "%s: ap->link.sactive=0x%08x tag=%d\n",
1485 __func__, qc->ap->link.sactive, tag);
1487 tag = 0;
1490 sata_dwc_bmdma_start_by_tag(qc, tag);
1495 * arguments : ata_queued_cmd *qc, u8 tag
1497 * qc_prep for a particular queued command based on tag
1499 static void sata_dwc_qc_prep_by_tag(struct ata_queued_cmd *qc, u8 tag)
1511 dma_chan = dma_dwc_xfer_setup(sg, qc->n_elem, hsdevp->llit[tag],
1512 hsdevp->llit_dma[tag],
1520 hsdevp->dma_chan[tag] = dma_chan;
1526 u8 tag = qc->tag;
1530 if (qc->tag > 0 || ap->link.sactive > 1)
1531 dev_info(ap->dev, "%s ap id=%d cmd(0x%02x)=%s qc tag=%d "
1535 qc->tag, get_prot_descript(qc->tf.protocol),
1540 tag = 0;
1541 sata_dwc_qc_prep_by_tag(qc, tag);
1545 sactive |= (0x00000001 << tag);
1548 dev_dbg(qc->ap->dev, "%s: tag=%d ap->link.sactive = 0x%08x "
1549 "sactive=0x%08x\n", __func__, tag, qc->ap->link.sactive,
1553 sata_dwc_exec_command_by_tag(ap, &qc->tf, qc->tag,
1574 if (qc->tag > 0)
1575 dev_info(qc->ap->dev, "%s: qc->tag=%d ap->active_tag=0x%08x\n",
1576 __func__, qc->tag, qc->ap->link.active_tag);