Lines Matching refs:hsdev
157 struct sata_dwc_device *hsdev; member
180 (hsdevp)->hsdev)
272 struct sata_dwc_device *hsdev = hsdev_instance; in dma_dwc_xfer_done() local
273 struct ata_host *host = (struct ata_host *)hsdev->host; in dma_dwc_xfer_done()
307 struct sata_dwc_device *hsdev = HSDEV_FROM_AP(ap); in dma_dwc_xfer_setup() local
308 dma_addr_t addr = (dma_addr_t)&hsdev->sata_dwc_regs->dmadr; in dma_dwc_xfer_setup()
337 desc->callback_param = hsdev; in dma_dwc_xfer_setup()
339 dev_dbg(hsdev->dev, "%s sg: 0x%p, count: %d addr: %pad\n", in dma_dwc_xfer_setup()
391 static void clear_interrupt_bit(struct sata_dwc_device *hsdev, u32 bit) in clear_interrupt_bit() argument
393 out_le32(&hsdev->sata_dwc_regs->intpr, in clear_interrupt_bit()
394 in_le32(&hsdev->sata_dwc_regs->intpr)); in clear_interrupt_bit()
404 struct sata_dwc_device *hsdev, uint intpr) in sata_dwc_error_intr() argument
427 clear_interrupt_bit(hsdev, SATA_DWC_INTPR_ERR); in sata_dwc_error_intr()
457 struct sata_dwc_device *hsdev = HSDEV_FROM_HOST(host); in sata_dwc_isr() local
470 intpr = in_le32(&hsdev->sata_dwc_regs->intpr); in sata_dwc_isr()
480 sata_dwc_error_intr(ap, hsdev, intpr); in sata_dwc_isr()
487 clear_interrupt_bit(hsdev, SATA_DWC_INTPR_NEWFP); in sata_dwc_isr()
489 tag = (u8)(in_le32(&hsdev->sata_dwc_regs->fptagr)); in sata_dwc_isr()
674 struct sata_dwc_device *hsdev = HSDEV_FROM_HSDEVP(hsdevp); in sata_dwc_clear_dmacr() local
677 out_le32(&(hsdev->sata_dwc_regs->dmacr), in sata_dwc_clear_dmacr()
679 in_le32(&(hsdev->sata_dwc_regs->dmacr)))); in sata_dwc_clear_dmacr()
681 out_le32(&(hsdev->sata_dwc_regs->dmacr), in sata_dwc_clear_dmacr()
683 in_le32(&(hsdev->sata_dwc_regs->dmacr)))); in sata_dwc_clear_dmacr()
689 dev_err(hsdev->dev, in sata_dwc_clear_dmacr()
692 in_le32(&hsdev->sata_dwc_regs->dmacr)); in sata_dwc_clear_dmacr()
693 out_le32(&(hsdev->sata_dwc_regs->dmacr), in sata_dwc_clear_dmacr()
702 struct sata_dwc_device *hsdev = HSDEV_FROM_AP(ap); in sata_dwc_dma_xfer_complete() local
719 in_le32(&(hsdev->sata_dwc_regs->dmacr))); in sata_dwc_dma_xfer_complete()
728 in_le32(&(hsdev->sata_dwc_regs->dmacr))); in sata_dwc_dma_xfer_complete()
767 static void sata_dwc_enable_interrupts(struct sata_dwc_device *hsdev) in sata_dwc_enable_interrupts() argument
770 out_le32(&hsdev->sata_dwc_regs->intmr, in sata_dwc_enable_interrupts()
779 out_le32(&hsdev->sata_dwc_regs->errmr, SATA_DWC_SERROR_ERR_BITS); in sata_dwc_enable_interrupts()
781 dev_dbg(hsdev->dev, "%s: INTMR = 0x%08x, ERRMR = 0x%08x\n", in sata_dwc_enable_interrupts()
782 __func__, in_le32(&hsdev->sata_dwc_regs->intmr), in sata_dwc_enable_interrupts()
783 in_le32(&hsdev->sata_dwc_regs->errmr)); in sata_dwc_enable_interrupts()
829 struct sata_dwc_device *hsdev; in sata_dwc_port_start() local
835 hsdev = HSDEV_FROM_AP(ap); in sata_dwc_port_start()
839 hsdev->host = ap->host; in sata_dwc_port_start()
854 hsdevp->hsdev = hsdev; in sata_dwc_port_start()
857 hsdevp->dws->dma_dev = hsdev->dev; in sata_dwc_port_start()
865 dev_err(hsdev->dev, "%s: dma channel unavailable\n", in sata_dwc_port_start()
880 out_le32(&hsdev->sata_dwc_regs->dmacr, in sata_dwc_port_start()
885 out_le32(&hsdev->sata_dwc_regs->dbtsr, in sata_dwc_port_start()
969 struct sata_dwc_device *hsdev = HSDEV_FROM_QC(qc); in sata_dwc_bmdma_start_by_tag() local
1002 out_le32(&hsdev->sata_dwc_regs->dmacr, in sata_dwc_bmdma_start_by_tag()
1005 out_le32(&hsdev->sata_dwc_regs->dmacr, in sata_dwc_bmdma_start_by_tag()
1120 struct sata_dwc_device *hsdev = HSDEV_FROM_AP(link->ap); in sata_dwc_hardreset() local
1125 sata_dwc_enable_interrupts(hsdev); in sata_dwc_hardreset()
1128 out_le32(&hsdev->sata_dwc_regs->dmacr, in sata_dwc_hardreset()
1132 out_le32(&hsdev->sata_dwc_regs->dbtsr, in sata_dwc_hardreset()
1184 struct sata_dwc_device *hsdev; in sata_dwc_probe() local
1197 hsdev = devm_kzalloc(&ofdev->dev, sizeof(*hsdev), GFP_KERNEL); in sata_dwc_probe()
1198 if (!host || !hsdev) in sata_dwc_probe()
1201 host->private_data = hsdev; in sata_dwc_probe()
1210 hsdev->reg_base = base; in sata_dwc_probe()
1214 hsdev->sata_dwc_regs = (void *__iomem)(base + SATA_DWC_REG_OFFSET); in sata_dwc_probe()
1223 idr = in_le32(&hsdev->sata_dwc_regs->idr); in sata_dwc_probe()
1224 versionr = in_le32(&hsdev->sata_dwc_regs->versionr); in sata_dwc_probe()
1229 hsdev->dma->irq = irq_of_parse_and_map(np, 1); in sata_dwc_probe()
1230 if (hsdev->dma->irq == NO_IRQ) { in sata_dwc_probe()
1237 hsdev->dma->regs = of_iomap(np, 1); in sata_dwc_probe()
1238 if (!hsdev->dma->regs) { in sata_dwc_probe()
1246 hsdev->dev = &ofdev->dev; in sata_dwc_probe()
1248 hsdev->dma->dev = &ofdev->dev; in sata_dwc_probe()
1251 err = dw_dma_probe(hsdev->dma, NULL); in sata_dwc_probe()
1256 sata_dwc_enable_interrupts(hsdev); in sata_dwc_probe()
1280 dw_dma_remove(hsdev->dma); in sata_dwc_probe()
1282 iounmap(hsdev->dma->regs); in sata_dwc_probe()
1292 struct sata_dwc_device *hsdev = host->private_data; in sata_dwc_remove() local
1297 dw_dma_remove(hsdev->dma); in sata_dwc_remove()
1299 iounmap(hsdev->dma->regs); in sata_dwc_remove()
1300 iounmap(hsdev->reg_base); in sata_dwc_remove()