Lines Matching refs:pUrb
311 static int ms_rh_call_control (struct usb_hcd *pHcd, struct urb *pUrb) in ms_rh_call_control() argument
313 struct usb_ctrlrequest *cmd = (struct usb_ctrlrequest *) pUrb->pSetupPacket; in ms_rh_call_control()
316 unsigned char *ubuf = (unsigned char*) pUrb->pTransferBuffer; in ms_rh_call_control()
320 pUrb->hcpriv = pHcd; in ms_rh_call_control()
327 if (u16Length > pUrb->u32TransferBufferLength) in ms_rh_call_control()
330 pUrb->s32Status = 0; in ms_rh_call_control()
331 pUrb->u32ActualLength = u16Length; in ms_rh_call_control()
370 pUrb->u32ActualLength = ms_rh_string ( in ms_rh_call_control()
392 pUrb->s32Status = ms_hub_control (pHcd, u16TypeReq, u16Value, u16Index, in ms_rh_call_control()
396 pUrb->s32Status = -EPIPE; in ms_rh_call_control()
397 … ms_debug_msg ("[unsupported hub control message] (maxchild %d)\n", (int)pUrb->dev->u32MaxChild); in ms_rh_call_control()
399 if (pUrb->s32Status) in ms_rh_call_control()
401 pUrb->u32ActualLength = 0; in ms_rh_call_control()
403 u16TypeReq, u16Value, u16Index, u16Length, (int)pUrb->s32Status); in ms_rh_call_control()
407 if (pUrb->u32TransferBufferLength < iLen) in ms_rh_call_control()
408 iLen = pUrb->u32TransferBufferLength; in ms_rh_call_control()
409 pUrb->u32ActualLength = iLen; in ms_rh_call_control()
415 ms_usb_hcd_giveback_urb (pUrb, NULL); in ms_rh_call_control()
434 struct urb *pUrb; in ms_hcd_poll_rh_status() local
450 pUrb = pHcd->hcd_status_urb; in ms_hcd_poll_rh_status()
451 if (pUrb) in ms_hcd_poll_rh_status()
455 pUrb->u32ActualLength = iLen; in ms_hcd_poll_rh_status()
456 pUrb->s32Status = 0; // update status in ms_hcd_poll_rh_status()
457 pUrb->hcpriv = 0; in ms_hcd_poll_rh_status()
458 memcpy(pUrb->pTransferBuffer, aBuf, iLen); in ms_hcd_poll_rh_status()
460 ms_usb_hcd_giveback_urb(pUrb, NULL); in ms_hcd_poll_rh_status()
486 static int ms_rh_queue_status (struct usb_hcd *pHcd, struct urb *pUrb) in ms_rh_queue_status() argument
490 int iLen = 1 + (pUrb->dev->u32MaxChild / 8); in ms_rh_queue_status()
494 if (pHcd->hcd_status_urb || pUrb->u32TransferBufferLength < iLen) in ms_rh_queue_status()
501 pHcd->hcd_status_urb = pUrb; in ms_rh_queue_status()
502 pUrb->hcpriv = pHcd; in ms_rh_queue_status()
523 static int ms_rh_urb_enqueue (struct usb_hcd *pHcd, struct urb *pUrb) in ms_rh_urb_enqueue() argument
526 if (usb_pipeint (pUrb->u32Pipe)) in ms_rh_urb_enqueue()
532 iRetval = ms_rh_queue_status (pHcd, pUrb); in ms_rh_urb_enqueue()
536 else if (usb_pipecontrol (pUrb->u32Pipe)) in ms_rh_urb_enqueue()
539 return ms_rh_call_control (pHcd, pUrb); in ms_rh_urb_enqueue()
550 void ms_rh_status_dequeue (struct usb_hcd *pHcd, struct urb *pUrb) in ms_rh_status_dequeue() argument
556 if (usb_pipecontrol (pUrb->u32Pipe)) in ms_rh_status_dequeue()
563 if (pUrb == pHcd->hcd_status_urb) in ms_rh_status_dequeue()
570 ms_usb_hcd_giveback_urb(pUrb, NULL); in ms_rh_status_dequeue()
676 extern int ms_urb_enqueue (struct usb_hcd *pHcd, struct urb *pUrb, int iMem_flags);
677 extern int ms_urb_dequeue (struct usb_hcd *pHcd, struct urb *pUrb);
961 void ms_urb_unlink (struct urb *pUrb) in ms_urb_unlink() argument
969 ms_list_remove_and_init (&pUrb->urb_list); in ms_urb_unlink()
970 dev = pUrb->dev; in ms_urb_unlink()
985 int ms_hcd_submit_urb (struct urb *pUrb, int iMem_flags) in ms_hcd_submit_urb() argument
988 struct usb_hcd *pHcd = (struct usb_hcd*) pUrb->dev->bus->hcpriv; in ms_hcd_submit_urb()
989 struct s_hcd_dev *pDev = (struct s_hcd_dev*) pUrb->dev->hcpriv; in ms_hcd_submit_urb()
1004 …if ((HCD_IS_RUNNING (pHcd->state) && pHcd->state != HCD_STATE_QUIESCING) || (pUrb->dev == pHcd->se… in ms_hcd_submit_urb()
1006 ms_usb_get_dev (pUrb->dev); in ms_hcd_submit_urb()
1007 ms_insert_list_before (&pUrb->urb_list, &pDev->urb_list); in ms_hcd_submit_urb()
1012 ms_list_init (&pUrb->urb_list); in ms_hcd_submit_urb()
1020 pUrb = ms_usb_get_urb (pUrb); in ms_hcd_submit_urb()
1021 if (pUrb->dev == pHcd->self.root_hub) in ms_hcd_submit_urb()
1023 pUrb->u32TransferFlags |= (MS_FLAG_URB_NO_TRANSFER_DMA_MAP in ms_hcd_submit_urb()
1025 iStatus = ms_rh_urb_enqueue (pHcd, pUrb); in ms_hcd_submit_urb()
1035 if (usb_pipecontrol (pUrb->u32Pipe)) in ms_hcd_submit_urb()
1038 …if ((((U32) pUrb->pSetupPacket) & CPU_L1_CACHE_BOUND) != 0 || ((sizeof(struct usb_ctrlrequest) & … in ms_hcd_submit_urb()
1040 pUrb->SetDMALen = sizeof(struct usb_ctrlrequest); in ms_hcd_submit_urb()
1042 …pUrb->SetDMABuf = Usb_AllocateNonCachedMemory(((pUrb->SetDMALen+CPU_L1_CACHE_BOUND) & ~CPU_L1_CACH… in ms_hcd_submit_urb()
1043 USB_ASSERT(pUrb->SetDMABuf != NULL, "Allocate SetDMABuf error\n"); in ms_hcd_submit_urb()
1045 memcpy(pUrb->SetDMABuf, pUrb->pSetupPacket, pUrb->SetDMALen); in ms_hcd_submit_urb()
1048 pUrb->tSetupDma = (dma_addr_t) USB_VA2PA((U32)pUrb->SetDMABuf); in ms_hcd_submit_urb()
1053 if ( pUrb->pSetupPacket != KSEG02KSEG1(pUrb->pSetupPacket) ) in ms_hcd_submit_urb()
1054 MsOS_Dcache_Flush((U32) pUrb->pSetupPacket, sizeof(struct usb_ctrlrequest)); in ms_hcd_submit_urb()
1056 pUrb->tSetupDma = (dma_addr_t) USB_VA2PA((U32)pUrb->pSetupPacket); in ms_hcd_submit_urb()
1059 USB_ASSERT((pUrb->tSetupDma & 0xF) == 0, "DMA address is not 16 bytes aligned\n"); in ms_hcd_submit_urb()
1063 if (pUrb->u32TransferBufferLength != 0) in ms_hcd_submit_urb()
1067 …if ((((U32) pUrb->pTransferBuffer) & CPU_L1_CACHE_BOUND) != 0 || ((pUrb->u32TransferBufferLength … in ms_hcd_submit_urb()
1071 if (pUrb->u32TransferBufferLength >= 512) in ms_hcd_submit_urb()
1072 …ms_debug_msg("DMA address %x DMA length %x\n", pUrb->pTransferBuffer, pUrb->u32TransferBufferLengt… in ms_hcd_submit_urb()
1074 pUrb->TxDMALen= pUrb->u32TransferBufferLength; in ms_hcd_submit_urb()
1076 …pUrb->TxDMABuf = Usb_AllocateNonCachedMemory(((pUrb->TxDMALen+CPU_L1_CACHE_BOUND) & ~CPU_L1_CACHE_… in ms_hcd_submit_urb()
1077 USB_ASSERT(pUrb->TxDMABuf != NULL, "Allocate TxDMABuf error\n"); in ms_hcd_submit_urb()
1079 if (!usb_pipein(pUrb->u32Pipe)) in ms_hcd_submit_urb()
1081 memcpy(pUrb->TxDMABuf, pUrb->pTransferBuffer, pUrb->u32TransferBufferLength); in ms_hcd_submit_urb()
1084 pUrb->tTransferDma= (dma_addr_t) USB_VA2PA((U32)pUrb->TxDMABuf); in ms_hcd_submit_urb()
1089 if ( pUrb->pTransferBuffer != KSEG02KSEG1(pUrb->pTransferBuffer) ) in ms_hcd_submit_urb()
1091 if (usb_pipein(pUrb->u32Pipe)) in ms_hcd_submit_urb()
1094 … MsOS_Dcache_Flush((U32) pUrb->pTransferBuffer, pUrb->u32TransferBufferLength); in ms_hcd_submit_urb()
1099 … MsOS_Dcache_Flush((U32) pUrb->pTransferBuffer, pUrb->u32TransferBufferLength); in ms_hcd_submit_urb()
1103 pUrb->tTransferDma= (dma_addr_t) USB_VA2PA((U32)pUrb->pTransferBuffer); in ms_hcd_submit_urb()
1107 USB_ASSERT((pUrb->tTransferDma & 0xF) == 0, "DMA address is not 16 bytes aligned\n"); in ms_hcd_submit_urb()
1111 iStatus = pHcd->ms_urb_enqueue (pHcd, pUrb, iMem_flags); in ms_hcd_submit_urb()
1115 if (pUrb->SetDMABuf != NULL) in ms_hcd_submit_urb()
1117 Usb_FreeNonCachedMemory(pUrb->SetDMABuf); in ms_hcd_submit_urb()
1118 pUrb->SetDMABuf = NULL; in ms_hcd_submit_urb()
1120 if (pUrb->TxDMABuf != NULL) in ms_hcd_submit_urb()
1122 Usb_FreeNonCachedMemory(pUrb->TxDMABuf); in ms_hcd_submit_urb()
1123 pUrb->TxDMABuf = NULL; in ms_hcd_submit_urb()
1125 if (!usb_pipecontrol(pUrb->u32Pipe)) in ms_hcd_submit_urb()
1127 ms_urb_unlink (pUrb); in ms_hcd_submit_urb()
1128 usb_put_urb (pUrb); in ms_hcd_submit_urb()
1136 ms_unlink1 (struct usb_hcd *pHcd, struct urb *pUrb) in ms_unlink1() argument
1142 if (pUrb->dev->parent == NULL) in ms_unlink1()
1143 ms_rh_status_dequeue(pHcd, pUrb); in ms_unlink1()
1146 retval = pHcd->ms_urb_dequeue(pHcd, pUrb); in ms_unlink1()
1149 ms_debug_err("[unlink1] dequeue %p --> %d\n", pUrb, retval); in ms_unlink1()
1164 static void ms_unlink_complete (struct urb *pUrb, struct stPtRegs *pRegs) in ms_unlink_complete() argument
1169 pSplice = (struct ms_completion_splice *) pUrb->pContext; in ms_unlink_complete()
1170 pUrb->complete_func = pSplice->stComplete; in ms_unlink_complete()
1171 pUrb->pContext = pSplice->pContext; in ms_unlink_complete()
1172 pUrb->complete_func (pUrb, pRegs); //Callback function in ms_unlink_complete()
1177 int ms_hcd_unlink_urb (struct urb *pUrb, int sts) in ms_hcd_unlink_urb() argument
1194 osapi_spin_lock_irqsave (&pUrb->lock, u32Flags); in ms_hcd_unlink_urb()
1197 if (!pUrb->dev || !pUrb->dev->bus) in ms_hcd_unlink_urb()
1203 dev = (struct s_hcd_dev*) pUrb->dev->hcpriv; in ms_hcd_unlink_urb()
1205 pHcd = (struct usb_hcd*) pUrb->dev->bus->hcpriv; in ms_hcd_unlink_urb()
1212 if (!pUrb->hcpriv) in ms_hcd_unlink_urb()
1218 if (pUrb->s32Status != -EINPROGRESS) in ms_hcd_unlink_urb()
1227 stSplice.stComplete = pUrb->complete_func; in ms_hcd_unlink_urb()
1228 stSplice.pContext = pUrb->pContext; in ms_hcd_unlink_urb()
1229 pUrb->complete_func = ms_unlink_complete; in ms_hcd_unlink_urb()
1230 pUrb->pContext = &stSplice; in ms_hcd_unlink_urb()
1237 pUrb->s32Status = sts; in ms_hcd_unlink_urb()
1239 osapi_spin_unlock_irqrestore (&pUrb->lock, u32Flags); in ms_hcd_unlink_urb()
1241 iRetval = ms_unlink1(pHcd, pUrb); in ms_hcd_unlink_urb()
1244 ms_debug_err ("<%s> dequeue %p --> %d\n", __FUNCTION__, pUrb, iRetval); in ms_hcd_unlink_urb()
1245 if (!(pUrb->u32TransferFlags & MS_FLAG_URB_ASYNC_UNLINK)) in ms_hcd_unlink_urb()
1247 osapi_spin_lock_irqsave (&pUrb->lock, u32Flags); in ms_hcd_unlink_urb()
1248 pUrb->complete_func = stSplice.stComplete; in ms_hcd_unlink_urb()
1249 pUrb->pContext = stSplice.pContext; in ms_hcd_unlink_urb()
1250 osapi_spin_unlock_irqrestore (&pUrb->lock, u32Flags); in ms_hcd_unlink_urb()
1278 if (pUrb->u32TransferFlags & MS_FLAG_URB_ASYNC_UNLINK) in ms_hcd_unlink_urb()
1303 osapi_spin_lock_irqsave (&pUrb->lock, u32Flags); in ms_hcd_unlink_urb()
1304 pUrb->complete_func = stSplice.stComplete; in ms_hcd_unlink_urb()
1305 pUrb->pContext = stSplice.pContext; in ms_hcd_unlink_urb()
1306 pUrb->s32Status = -ETIMEDOUT; in ms_hcd_unlink_urb()
1307 osapi_spin_unlock_irqrestore (&pUrb->lock, u32Flags); in ms_hcd_unlink_urb()
1323 osapi_spin_unlock_irqrestore (&pUrb->lock, u32Flags); in ms_hcd_unlink_urb()
1326 ms_debug_err ("<ms_hcd_unlink_urb> %p fail %d\n", pUrb, iRetval); in ms_hcd_unlink_urb()
1355 struct urb *pUrb; in ms_usb_hcd_flush_endpoint() local
1373 pUrb = entry_to_container((&pDev->urb_list)->next, struct urb, urb_list); in ms_usb_hcd_flush_endpoint()
1374 for( ; &(pUrb->urb_list) != &(pDev->urb_list); in ms_usb_hcd_flush_endpoint()
1375 __mptr = pUrb->urb_list.next, in ms_usb_hcd_flush_endpoint()
1376 pUrb = (struct urb *)( (char *)__mptr - (char *)offsetof(struct urb,urb_list) ) in ms_usb_hcd_flush_endpoint()
1379 int tmp = pUrb->u32Pipe; in ms_usb_hcd_flush_endpoint()
1382 pUrb, pUrb->hcpriv, tmp, usb_pipeendpoint (tmp), in ms_usb_hcd_flush_endpoint()
1383 (tmp & USB_DIR_IN) ? "in" : "out", usb_pipetype (tmp), pUrb->s32Status); in ms_usb_hcd_flush_endpoint()
1391 if (pUrb->s32Status != -EINPROGRESS) in ms_usb_hcd_flush_endpoint()
1393 ms_usb_get_urb (pUrb); in ms_usb_hcd_flush_endpoint()
1404 tmp = pUrb->u32Pipe; in ms_usb_hcd_flush_endpoint()
1405 pUrb->s32Status = -ESHUTDOWN; in ms_usb_hcd_flush_endpoint()
1406 ms_unlink1 (pHcd, pUrb); in ms_usb_hcd_flush_endpoint()
1408 __FUNCTION__, pUrb, tmp, usb_pipeendpoint (tmp), in ms_usb_hcd_flush_endpoint()
1411 usb_put_urb (pUrb); in ms_usb_hcd_flush_endpoint()
1427 struct urb *pUrb; in ms_hcd_check_dev_urb() local
1433 ms_debug_func("[UM-DEV-URB] urb %p, epaddr %d\n", pUrb, iEndpoint); in ms_hcd_check_dev_urb()
1436 pUrb = entry_to_container((&pDev->urb_list)->next, struct urb, urb_list); in ms_hcd_check_dev_urb()
1437 for( ; &(pUrb->urb_list) != &(pDev->urb_list); in ms_hcd_check_dev_urb()
1438 __mptr = pUrb->urb_list.next, in ms_hcd_check_dev_urb()
1439 pUrb = (struct urb *)( (char *)__mptr - (char *)offsetof(struct urb,urb_list) ) in ms_hcd_check_dev_urb()
1442 int tmp = pUrb->u32Pipe; in ms_hcd_check_dev_urb()
1445 pUrb, pUrb->hcpriv, tmp, usb_pipeendpoint (tmp), in ms_hcd_check_dev_urb()
1446 (tmp & USB_DIR_IN) ? "in" : "out", usb_pipetype (tmp), pUrb->s32Status); in ms_hcd_check_dev_urb()