Lines Matching defs:hsdevp
178 static void sata_dwc_clear_dmacr(struct sata_dwc_device_port *hsdevp, u8 tag);
203 static int sata_dwc_dma_get_channel_old(struct sata_dwc_device_port *hsdevp)
205 struct sata_dwc_device *hsdev = hsdevp->hsdev;
216 hsdevp->chan = dma_request_channel(mask, sata_dwc_dma_filter, hsdevp);
217 if (!hsdevp->chan) {
294 struct sata_dwc_device_port *hsdevp;
300 hsdevp = HSDEVP_FROM_AP(ap);
308 hsdevp->dma_interrupt_count++;
309 sata_dwc_clear_dmacr(hsdevp, tag);
311 if (hsdevp->dma_pending[tag] == SATA_DWC_DMA_PENDING_NONE) {
313 tag, hsdevp->dma_pending[tag]);
316 if ((hsdevp->dma_interrupt_count % 2) == 0)
325 struct sata_dwc_device_port *hsdevp = HSDEVP_FROM_AP(ap);
344 dmaengine_slave_config(hsdevp->chan, &sconf);
347 desc = dmaengine_prep_slave_sg(hsdevp->chan, qc->sg, qc->n_elem,
414 struct sata_dwc_device_port *hsdevp = HSDEVP_FROM_AP(ap);
430 __func__, serror, intpr, status, hsdevp->dma_interrupt_count,
431 hsdevp->dma_pending[tag], hsdevp->cmd_issued[tag]);
472 struct sata_dwc_device_port *hsdevp;
481 hsdevp = HSDEVP_FROM_AP(ap);
499 if (hsdevp->cmd_issued[tag] != SATA_DWC_CMD_ISSUED_PEND)
545 hsdevp->cmd_issued[tag] = SATA_DWC_CMD_ISSUED_NOT;
564 hsdevp->dma_interrupt_count++;
565 if (hsdevp->dma_pending[tag] == \
570 hsdevp->dma_pending[tag]);
573 if ((hsdevp->dma_interrupt_count % 2) == 0)
632 hsdevp->cmd_issued[tag] = SATA_DWC_CMD_ISSUED_NOT;
647 hsdevp->dma_interrupt_count++;
648 if (hsdevp->dma_pending[tag] == \
652 if ((hsdevp->dma_interrupt_count % 2) == 0)
686 static void sata_dwc_clear_dmacr(struct sata_dwc_device_port *hsdevp, u8 tag)
688 struct sata_dwc_device *hsdev = HSDEV_FROM_HSDEVP(hsdevp);
691 if (hsdevp->dma_pending[tag] == SATA_DWC_DMA_PENDING_RX) {
694 } else if (hsdevp->dma_pending[tag] == SATA_DWC_DMA_PENDING_TX) {
704 __func__, tag, hsdevp->dma_pending[tag], dmacr);
713 struct sata_dwc_device_port *hsdevp = HSDEVP_FROM_AP(ap);
725 if (hsdevp->dma_pending[tag] == SATA_DWC_DMA_PENDING_NONE) {
732 hsdevp->dma_pending[tag] = SATA_DWC_DMA_PENDING_NONE;
746 struct sata_dwc_device_port *hsdevp = HSDEVP_FROM_AP(ap);
749 if (hsdevp->dma_pending[tag] == SATA_DWC_DMA_PENDING_TX)
751 else if (hsdevp->dma_pending[tag] == SATA_DWC_DMA_PENDING_RX)
806 static int sata_dwc_dma_get_channel(struct sata_dwc_device_port *hsdevp)
808 struct sata_dwc_device *hsdev = hsdevp->hsdev;
813 return sata_dwc_dma_get_channel_old(hsdevp);
816 hsdevp->chan = dma_request_chan(dev, "sata-dma");
817 if (IS_ERR(hsdevp->chan)) {
819 PTR_ERR(hsdevp->chan));
820 return PTR_ERR(hsdevp->chan);
836 struct sata_dwc_device_port *hsdevp = NULL;
853 hsdevp = kzalloc(sizeof(*hsdevp), GFP_KERNEL);
854 if (!hsdevp) {
858 hsdevp->hsdev = hsdev;
860 err = sata_dwc_dma_get_channel(hsdevp);
869 hsdevp->cmd_issued[i] = SATA_DWC_CMD_ISSUED_NOT;
889 ap->private_data = hsdevp;
894 kfree(hsdevp);
902 struct sata_dwc_device_port *hsdevp = HSDEVP_FROM_AP(ap);
907 dmaengine_terminate_sync(hsdevp->chan);
908 dma_release_channel(hsdevp->chan);
911 kfree(hsdevp);
926 struct sata_dwc_device_port *hsdevp = HSDEVP_FROM_AP(ap);
928 hsdevp->cmd_issued[tag] = cmd_issued;
962 struct sata_dwc_device_port *hsdevp = HSDEVP_FROM_AP(ap);
963 struct dma_async_tx_descriptor *desc = hsdevp->desc[tag];
966 if (hsdevp->cmd_issued[tag] != SATA_DWC_CMD_ISSUED_NOT) {
969 hsdevp->dma_pending[tag] = SATA_DWC_DMA_PENDING_TX;
971 hsdevp->dma_pending[tag] = SATA_DWC_DMA_PENDING_RX;
975 __func__, hsdevp->cmd_issued[tag], tag);
995 dma_async_issue_pending(hsdevp->chan);
1014 struct sata_dwc_device_port *hsdevp = HSDEVP_FROM_AP(ap);
1020 hsdevp->desc[tag] = dma_dwc_xfer_setup(qc);
1021 if (!hsdevp->desc[tag])
1024 hsdevp->desc[tag] = NULL;