Lines Matching refs:hsdev

142 	struct sata_dwc_device	*hsdev;
159 #define HSDEV_FROM_HSDEVP(p) ((struct sata_dwc_device *)(p)->hsdev)
205 struct sata_dwc_device *hsdev = hsdevp->hsdev;
207 struct device *dev = hsdev->dev;
226 struct sata_dwc_device *hsdev)
231 hsdev->dma = devm_kzalloc(dev, sizeof(*hsdev->dma), GFP_KERNEL);
232 if (!hsdev->dma)
235 hsdev->dma->dev = dev;
236 hsdev->dma->id = pdev->id;
239 hsdev->dma->irq = irq_of_parse_and_map(np, 1);
240 if (!hsdev->dma->irq) {
246 hsdev->dma->regs = devm_platform_ioremap_resource(pdev, 1);
247 if (IS_ERR(hsdev->dma->regs))
248 return PTR_ERR(hsdev->dma->regs);
251 return dw_dma_probe(hsdev->dma);
254 static void sata_dwc_dma_exit_old(struct sata_dwc_device *hsdev)
256 if (!hsdev->dma)
259 dw_dma_remove(hsdev->dma);
291 struct sata_dwc_device *hsdev = hsdev_instance;
292 struct ata_host *host = (struct ata_host *)hsdev->host;
326 struct sata_dwc_device *hsdev = HSDEV_FROM_AP(ap);
331 sconf.src_addr = hsdev->dmadr;
334 sconf.dst_addr = hsdev->dmadr;
355 desc->callback_param = hsdev;
357 dev_dbg(hsdev->dev, "%s sg: 0x%p, count: %d addr: %pa\n", __func__,
358 qc->sg, qc->n_elem, &hsdev->dmadr);
399 static void clear_interrupt_bit(struct sata_dwc_device *hsdev, u32 bit)
401 sata_dwc_writel(&hsdev->sata_dwc_regs->intpr,
402 sata_dwc_readl(&hsdev->sata_dwc_regs->intpr));
412 struct sata_dwc_device *hsdev, uint intpr)
435 clear_interrupt_bit(hsdev, SATA_DWC_INTPR_ERR);
465 struct sata_dwc_device *hsdev = HSDEV_FROM_HOST(host);
473 hsdev->sactive_issued = 0;
478 intpr = sata_dwc_readl(&hsdev->sata_dwc_regs->intpr);
488 sata_dwc_error_intr(ap, hsdev, intpr);
495 clear_interrupt_bit(hsdev, SATA_DWC_INTPR_NEWFP);
497 tag = (u8)(sata_dwc_readl(&hsdev->sata_dwc_regs->fptagr));
502 hsdev->sactive_issued |= qcmd_tag_to_mask(tag);
523 tag_mask = (hsdev->sactive_issued | sactive) ^ sactive;
526 if (hsdev->sactive_issued == 0 && tag_mask == 0) {
597 tag_mask = (hsdev->sactive_issued | sactive) ^ sactive;
599 if (sactive != 0 || hsdev->sactive_issued > 1 || tag_mask > 1) {
602 __func__, sactive, hsdev->sactive_issued, tag_mask);
605 if ((tag_mask | hsdev->sactive_issued) != hsdev->sactive_issued) {
608 sactive, hsdev->sactive_issued, tag_mask);
688 struct sata_dwc_device *hsdev = HSDEV_FROM_HSDEVP(hsdevp);
689 u32 dmacr = sata_dwc_readl(&hsdev->sata_dwc_regs->dmacr);
693 sata_dwc_writel(&hsdev->sata_dwc_regs->dmacr, dmacr);
696 sata_dwc_writel(&hsdev->sata_dwc_regs->dmacr, dmacr);
702 dev_err(hsdev->dev,
705 sata_dwc_writel(&hsdev->sata_dwc_regs->dmacr,
714 struct sata_dwc_device *hsdev = HSDEV_FROM_AP(ap);
729 sata_dwc_readl(&hsdev->sata_dwc_regs->dmacr));
745 struct sata_dwc_device *hsdev = HSDEV_FROM_AP(ap);
747 hsdev->sactive_queued = 0;
759 hsdev->sactive_queued = hsdev->sactive_queued & mask;
760 hsdev->sactive_issued = hsdev->sactive_issued & mask;
765 static void sata_dwc_enable_interrupts(struct sata_dwc_device *hsdev)
768 sata_dwc_writel(&hsdev->sata_dwc_regs->intmr,
777 sata_dwc_writel(&hsdev->sata_dwc_regs->errmr, SATA_DWC_SERROR_ERR_BITS);
779 dev_dbg(hsdev->dev, "%s: INTMR = 0x%08x, ERRMR = 0x%08x\n",
780 __func__, sata_dwc_readl(&hsdev->sata_dwc_regs->intmr),
781 sata_dwc_readl(&hsdev->sata_dwc_regs->errmr));
808 struct sata_dwc_device *hsdev = hsdevp->hsdev;
809 struct device *dev = hsdev->dev;
835 struct sata_dwc_device *hsdev;
840 hsdev = HSDEV_FROM_AP(ap);
844 hsdev->host = ap->host;
858 hsdevp->hsdev = hsdev;
864 err = phy_power_on(hsdev->phy);
877 sata_dwc_writel(&hsdev->sata_dwc_regs->dmacr,
882 sata_dwc_writel(&hsdev->sata_dwc_regs->dbtsr,
903 struct sata_dwc_device *hsdev = HSDEV_FROM_AP(ap);
909 phy_power_off(hsdev->phy);
960 struct sata_dwc_device *hsdev = HSDEV_FROM_QC(qc);
987 sata_dwc_writel(&hsdev->sata_dwc_regs->dmacr,
990 sata_dwc_writel(&hsdev->sata_dwc_regs->dmacr,
1051 struct sata_dwc_device *hsdev = HSDEV_FROM_AP(link->ap);
1056 sata_dwc_enable_interrupts(hsdev);
1059 sata_dwc_writel(&hsdev->sata_dwc_regs->dmacr,
1063 sata_dwc_writel(&hsdev->sata_dwc_regs->dbtsr,
1129 struct sata_dwc_device *hsdev;
1142 hsdev = devm_kzalloc(dev, sizeof(*hsdev), GFP_KERNEL);
1143 if (!host || !hsdev)
1146 host->private_data = hsdev;
1155 hsdev->sata_dwc_regs = base + SATA_DWC_REG_OFFSET;
1156 hsdev->dmadr = res->start + SATA_DWC_REG_OFFSET + offsetof(struct sata_dwc_regs, dmadr);
1164 idr = sata_dwc_readl(&hsdev->sata_dwc_regs->idr);
1165 versionr = sata_dwc_readl(&hsdev->sata_dwc_regs->versionr);
1169 hsdev->dev = dev;
1172 sata_dwc_enable_interrupts(hsdev);
1183 err = sata_dwc_dma_init_old(ofdev, hsdev);
1189 hsdev->phy = devm_phy_optional_get(dev, "sata-phy");
1190 if (IS_ERR(hsdev->phy))
1191 return PTR_ERR(hsdev->phy);
1193 err = phy_init(hsdev->phy);
1209 phy_exit(hsdev->phy);
1217 struct sata_dwc_device *hsdev = host->private_data;
1221 phy_exit(hsdev->phy);
1225 sata_dwc_dma_exit_old(hsdev);