• Home
  • Raw
  • Download

Lines Matching refs:hsdev

151 	struct sata_dwc_device	*hsdev;  member
168 #define HSDEV_FROM_HSDEVP(p) ((struct sata_dwc_device *)(p)->hsdev)
216 struct sata_dwc_device *hsdev = hsdevp->hsdev; in sata_dwc_dma_get_channel_old() local
220 dws->dma_dev = hsdev->dev; in sata_dwc_dma_get_channel_old()
228 dev_err(hsdev->dev, "%s: dma channel unavailable\n", in sata_dwc_dma_get_channel_old()
237 struct sata_dwc_device *hsdev) in sata_dwc_dma_init_old() argument
242 hsdev->dma = devm_kzalloc(&pdev->dev, sizeof(*hsdev->dma), GFP_KERNEL); in sata_dwc_dma_init_old()
243 if (!hsdev->dma) in sata_dwc_dma_init_old()
246 hsdev->dma->dev = &pdev->dev; in sata_dwc_dma_init_old()
247 hsdev->dma->id = pdev->id; in sata_dwc_dma_init_old()
250 hsdev->dma->irq = irq_of_parse_and_map(np, 1); in sata_dwc_dma_init_old()
251 if (hsdev->dma->irq == NO_IRQ) { in sata_dwc_dma_init_old()
258 hsdev->dma->regs = devm_ioremap_resource(&pdev->dev, res); in sata_dwc_dma_init_old()
259 if (IS_ERR(hsdev->dma->regs)) in sata_dwc_dma_init_old()
260 return PTR_ERR(hsdev->dma->regs); in sata_dwc_dma_init_old()
263 return dw_dma_probe(hsdev->dma); in sata_dwc_dma_init_old()
266 static void sata_dwc_dma_exit_old(struct sata_dwc_device *hsdev) in sata_dwc_dma_exit_old() argument
268 if (!hsdev->dma) in sata_dwc_dma_exit_old()
271 dw_dma_remove(hsdev->dma); in sata_dwc_dma_exit_old()
332 struct sata_dwc_device *hsdev = hsdev_instance; in dma_dwc_xfer_done() local
333 struct ata_host *host = (struct ata_host *)hsdev->host; in dma_dwc_xfer_done()
367 struct sata_dwc_device *hsdev = HSDEV_FROM_AP(ap); in dma_dwc_xfer_setup() local
372 sconf.src_addr = hsdev->dmadr; in dma_dwc_xfer_setup()
375 sconf.dst_addr = hsdev->dmadr; in dma_dwc_xfer_setup()
396 desc->callback_param = hsdev; in dma_dwc_xfer_setup()
398 dev_dbg(hsdev->dev, "%s sg: 0x%p, count: %d addr: %pa\n", __func__, in dma_dwc_xfer_setup()
399 qc->sg, qc->n_elem, &hsdev->dmadr); in dma_dwc_xfer_setup()
440 static void clear_interrupt_bit(struct sata_dwc_device *hsdev, u32 bit) in clear_interrupt_bit() argument
442 sata_dwc_writel(&hsdev->sata_dwc_regs->intpr, in clear_interrupt_bit()
443 sata_dwc_readl(&hsdev->sata_dwc_regs->intpr)); in clear_interrupt_bit()
453 struct sata_dwc_device *hsdev, uint intpr) in sata_dwc_error_intr() argument
476 clear_interrupt_bit(hsdev, SATA_DWC_INTPR_ERR); in sata_dwc_error_intr()
506 struct sata_dwc_device *hsdev = HSDEV_FROM_HOST(host); in sata_dwc_isr() local
514 hsdev->sactive_issued = 0; in sata_dwc_isr()
519 intpr = sata_dwc_readl(&hsdev->sata_dwc_regs->intpr); in sata_dwc_isr()
529 sata_dwc_error_intr(ap, hsdev, intpr); in sata_dwc_isr()
536 clear_interrupt_bit(hsdev, SATA_DWC_INTPR_NEWFP); in sata_dwc_isr()
538 tag = (u8)(sata_dwc_readl(&hsdev->sata_dwc_regs->fptagr)); in sata_dwc_isr()
543 hsdev->sactive_issued |= qcmd_tag_to_mask(tag); in sata_dwc_isr()
558 tag_mask = (hsdev->sactive_issued | sactive) ^ sactive; in sata_dwc_isr()
561 if (hsdev->sactive_issued == 0 && tag_mask == 0) { in sata_dwc_isr()
632 tag_mask = (hsdev->sactive_issued | sactive) ^ sactive; in sata_dwc_isr()
634 if (sactive != 0 || hsdev->sactive_issued > 1 || tag_mask > 1) { in sata_dwc_isr()
637 __func__, sactive, hsdev->sactive_issued, tag_mask); in sata_dwc_isr()
640 if ((tag_mask | hsdev->sactive_issued) != hsdev->sactive_issued) { in sata_dwc_isr()
643 sactive, hsdev->sactive_issued, tag_mask); in sata_dwc_isr()
720 struct sata_dwc_device *hsdev = HSDEV_FROM_HSDEVP(hsdevp); in sata_dwc_clear_dmacr() local
721 u32 dmacr = sata_dwc_readl(&hsdev->sata_dwc_regs->dmacr); in sata_dwc_clear_dmacr()
725 sata_dwc_writel(&hsdev->sata_dwc_regs->dmacr, dmacr); in sata_dwc_clear_dmacr()
728 sata_dwc_writel(&hsdev->sata_dwc_regs->dmacr, dmacr); in sata_dwc_clear_dmacr()
734 dev_err(hsdev->dev, in sata_dwc_clear_dmacr()
737 sata_dwc_writel(&hsdev->sata_dwc_regs->dmacr, in sata_dwc_clear_dmacr()
746 struct sata_dwc_device *hsdev = HSDEV_FROM_AP(ap); in sata_dwc_dma_xfer_complete() local
763 sata_dwc_readl(&hsdev->sata_dwc_regs->dmacr)); in sata_dwc_dma_xfer_complete()
772 sata_dwc_readl(&hsdev->sata_dwc_regs->dmacr)); in sata_dwc_dma_xfer_complete()
789 struct sata_dwc_device *hsdev = HSDEV_FROM_AP(ap); in sata_dwc_qc_complete() local
791 hsdev->sactive_queued = 0; in sata_dwc_qc_complete()
804 hsdev->sactive_queued = hsdev->sactive_queued & mask; in sata_dwc_qc_complete()
805 hsdev->sactive_issued = hsdev->sactive_issued & mask; in sata_dwc_qc_complete()
810 static void sata_dwc_enable_interrupts(struct sata_dwc_device *hsdev) in sata_dwc_enable_interrupts() argument
813 sata_dwc_writel(&hsdev->sata_dwc_regs->intmr, in sata_dwc_enable_interrupts()
822 sata_dwc_writel(&hsdev->sata_dwc_regs->errmr, SATA_DWC_SERROR_ERR_BITS); in sata_dwc_enable_interrupts()
824 dev_dbg(hsdev->dev, "%s: INTMR = 0x%08x, ERRMR = 0x%08x\n", in sata_dwc_enable_interrupts()
825 __func__, sata_dwc_readl(&hsdev->sata_dwc_regs->intmr), in sata_dwc_enable_interrupts()
826 sata_dwc_readl(&hsdev->sata_dwc_regs->errmr)); in sata_dwc_enable_interrupts()
853 struct sata_dwc_device *hsdev = hsdevp->hsdev; in sata_dwc_dma_get_channel() local
854 struct device *dev = hsdev->dev; in sata_dwc_dma_get_channel()
880 struct sata_dwc_device *hsdev; in sata_dwc_port_start() local
885 hsdev = HSDEV_FROM_AP(ap); in sata_dwc_port_start()
889 hsdev->host = ap->host; in sata_dwc_port_start()
903 hsdevp->hsdev = hsdev; in sata_dwc_port_start()
909 err = phy_power_on(hsdev->phy); in sata_dwc_port_start()
922 sata_dwc_writel(&hsdev->sata_dwc_regs->dmacr, in sata_dwc_port_start()
927 sata_dwc_writel(&hsdev->sata_dwc_regs->dbtsr, in sata_dwc_port_start()
948 struct sata_dwc_device *hsdev = HSDEV_FROM_AP(ap); in sata_dwc_port_stop() local
954 phy_power_off(hsdev->phy); in sata_dwc_port_stop()
1011 struct sata_dwc_device *hsdev = HSDEV_FROM_QC(qc); in sata_dwc_bmdma_start_by_tag() local
1044 sata_dwc_writel(&hsdev->sata_dwc_regs->dmacr, in sata_dwc_bmdma_start_by_tag()
1047 sata_dwc_writel(&hsdev->sata_dwc_regs->dmacr, in sata_dwc_bmdma_start_by_tag()
1124 struct sata_dwc_device *hsdev = HSDEV_FROM_AP(link->ap); in sata_dwc_hardreset() local
1129 sata_dwc_enable_interrupts(hsdev); in sata_dwc_hardreset()
1132 sata_dwc_writel(&hsdev->sata_dwc_regs->dmacr, in sata_dwc_hardreset()
1136 sata_dwc_writel(&hsdev->sata_dwc_regs->dbtsr, in sata_dwc_hardreset()
1200 struct sata_dwc_device *hsdev; in sata_dwc_probe() local
1214 hsdev = devm_kzalloc(&ofdev->dev, sizeof(*hsdev), GFP_KERNEL); in sata_dwc_probe()
1215 if (!host || !hsdev) in sata_dwc_probe()
1218 host->private_data = hsdev; in sata_dwc_probe()
1228 hsdev->sata_dwc_regs = base + SATA_DWC_REG_OFFSET; in sata_dwc_probe()
1229 hsdev->dmadr = res->start + SATA_DWC_REG_OFFSET + offsetof(struct sata_dwc_regs, dmadr); in sata_dwc_probe()
1237 idr = sata_dwc_readl(&hsdev->sata_dwc_regs->idr); in sata_dwc_probe()
1238 versionr = sata_dwc_readl(&hsdev->sata_dwc_regs->versionr); in sata_dwc_probe()
1243 hsdev->dev = &ofdev->dev; in sata_dwc_probe()
1246 sata_dwc_enable_interrupts(hsdev); in sata_dwc_probe()
1257 err = sata_dwc_dma_init_old(ofdev, hsdev); in sata_dwc_probe()
1263 hsdev->phy = devm_phy_optional_get(hsdev->dev, "sata-phy"); in sata_dwc_probe()
1264 if (IS_ERR(hsdev->phy)) in sata_dwc_probe()
1265 return PTR_ERR(hsdev->phy); in sata_dwc_probe()
1267 err = phy_init(hsdev->phy); in sata_dwc_probe()
1283 phy_exit(hsdev->phy); in sata_dwc_probe()
1291 struct sata_dwc_device *hsdev = host->private_data; in sata_dwc_remove() local
1295 phy_exit(hsdev->phy); in sata_dwc_remove()
1299 sata_dwc_dma_exit_old(hsdev); in sata_dwc_remove()