Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(23)

Side by Side Diff: chromeos/drivers/ath6kl/htc2/htc_send.c

Issue 3579004: ath6kl: Bringing in the upstream version (Closed) Base URL: http://git.chromium.org/git/kernel.git
Patch Set: Created 10 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chromeos/drivers/ath6kl/htc2/htc_recv.c ('k') | chromeos/drivers/ath6kl/htc2/htc_services.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 //------------------------------------------------------------------------------ 1 //------------------------------------------------------------------------------
2 // <copyright file="htc_send.c" company="Atheros"> 2 // <copyright file="htc_send.c" company="Atheros">
3 // Copyright (c) 2007-2008 Atheros Corporation. All rights reserved. 3 // Copyright (c) 2007-2010 Atheros Corporation. All rights reserved.
4 // 4 //
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License version 2 as
7 // published by the Free Software Foundation;
8 // 5 //
9 // Software distributed under the License is distributed on an "AS 6 // Permission to use, copy, modify, and/or distribute this software for any
10 // IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 7 // purpose with or without fee is hereby granted, provided that the above
11 // implied. See the License for the specific language governing 8 // copyright notice and this permission notice appear in all copies.
12 // rights and limitations under the License. 9 //
10 // THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 // WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 // MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13 // ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14 // WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15 // ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 // OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
13 // 17 //
14 // 18 //
15 //------------------------------------------------------------------------------ 19 //------------------------------------------------------------------------------
16 //============================================================================== 20 //==============================================================================
17 // Author(s): ="Atheros" 21 // Author(s): ="Atheros"
18 //============================================================================== 22 //==============================================================================
19 #include "htc_internal.h" 23 #include "htc_internal.h"
20 24
21 typedef enum _HTC_SEND_QUEUE_RESULT { 25 typedef enum _HTC_SEND_QUEUE_RESULT {
22 HTC_SEND_QUEUE_OK = 0, /* packet was queued */ 26 HTC_SEND_QUEUE_OK = 0, /* packet was queued */
23 HTC_SEND_QUEUE_DROP = 1, /* this packet should be dropped */ 27 HTC_SEND_QUEUE_DROP = 1, /* this packet should be dropped */
24 } HTC_SEND_QUEUE_RESULT; 28 } HTC_SEND_QUEUE_RESULT;
25 29
26 #define DO_EP_TX_COMPLETION(ep,q) DoSendCompletion(ep,q) 30 #define DO_EP_TX_COMPLETION(ep,q) DoSendCompletion(ep,q)
27 31
28 /* call the distribute credits callback with the distribution */ 32 /* call the distribute credits callback with the distribution */
29 #define DO_DISTRIBUTION(t,reason,description,pList) \ 33 #define DO_DISTRIBUTION(t,reason,description,pList) \
30 { \ 34 { \
31 AR_DEBUG_PRINTF(ATH_DEBUG_SEND, \ 35 AR_DEBUG_PRINTF(ATH_DEBUG_SEND, \
32 (" calling distribute function (%s) (dfn:0x%X, ctxt:0x%X, dist:0x%X) \n ", \ 36 (" calling distribute function (%s) (dfn:0x%lX, ctxt:0x%lX, dist:0x%lX) \n", \
33 (description), \ 37 (description), \
34 (A_UINT32)(t)->DistributeCredits, \ 38 (unsigned long)(t)->DistributeCredits, \
35 (A_UINT32)(t)->pCredDistContext, \ 39 (unsigned long)(t)->pCredDistContext, \
36 (A_UINT32)pList)); \ 40 (unsigned long)pList)); \
37 (t)->DistributeCredits((t)->pCredDistContext, \ 41 (t)->DistributeCredits((t)->pCredDistContext, \
38 (pList), \ 42 (pList), \
39 (reason)); \ 43 (reason)); \
40 } 44 }
41 45
42 static void DoSendCompletion(HTC_ENDPOINT *pEndpoint, 46 static void DoSendCompletion(HTC_ENDPOINT *pEndpoint,
43 HTC_PACKET_QUEUE *pQueueToIndicate) 47 HTC_PACKET_QUEUE *pQueueToIndicate)
44 { 48 {
45 do { 49 do {
46 50
47 if (HTC_QUEUE_EMPTY(pQueueToIndicate)) { 51 if (HTC_QUEUE_EMPTY(pQueueToIndicate)) {
48 /* nothing to indicate */ 52 /* nothing to indicate */
49 break; 53 break;
50 } 54 }
51 55
52 if (pEndpoint->EpCallBacks.EpTxCompleteMultiple != NULL) { 56 if (pEndpoint->EpCallBacks.EpTxCompleteMultiple != NULL) {
53 AR_DEBUG_PRINTF(ATH_DEBUG_SEND, (" HTC calling ep %d, send complete multiple callback (%d pkts) \n", 57 AR_DEBUG_PRINTF(ATH_DEBUG_SEND, (" HTC calling ep %d, send complete multiple callback (%d pkts) \n",
54 pEndpoint->Id, HTC_PACKET_QUEUE_DEPTH(pQueueToIndicate))); 58 pEndpoint->Id, HTC_PACKET_QUEUE_DEPTH(pQueueToIndicate)));
55 /* a multiple send complete handler is being used, pass the queu e to the handler */ 59 /* a multiple send complete handler is being used, pass the queu e to the handler */
56 pEndpoint->EpCallBacks.EpTxCompleteMultiple(pEndpoint->EpCallBacks.p Context, 60 pEndpoint->EpCallBacks.EpTxCompleteMultiple(pEndpoint->EpCallBacks.p Context,
57 pQueueToIndicate); 61 pQueueToIndicate);
58 /* all packets are now owned by the callback, reset queue to be safe */ 62 /* all packets are now owned by the callback, reset queue to be safe */
59 INIT_HTC_PACKET_QUEUE(pQueueToIndicate); 63 INIT_HTC_PACKET_QUEUE(pQueueToIndicate);
60 } else { 64 } else {
61 HTC_PACKET *pPacket; 65 HTC_PACKET *pPacket;
62 /* using legacy EpTxComplete */ 66 /* using legacy EpTxComplete */
63 do { 67 do {
64 pPacket = HTC_PACKET_DEQUEUE(pQueueToIndicate); 68 pPacket = HTC_PACKET_DEQUEUE(pQueueToIndicate);
65 AR_DEBUG_PRINTF(ATH_DEBUG_SEND, (" HTC calling ep %d send comple te callback on packet 0x%X \n", \ 69 AR_DEBUG_PRINTF(ATH_DEBUG_SEND, (" HTC calling ep %d send comple te callback on packet 0x%lX \n", \
66 pEndpoint->Id, (A_UINT32)(pPacket))); 70 pEndpoint->Id, (unsigned long)(pPacket)));
67 pEndpoint->EpCallBacks.EpTxComplete(pEndpoint->EpCallBacks.pCont ext, pPacket); 71 pEndpoint->EpCallBacks.EpTxComplete(pEndpoint->EpCallBacks.pCont ext, pPacket);
68 } while (!HTC_QUEUE_EMPTY(pQueueToIndicate)); 72 } while (!HTC_QUEUE_EMPTY(pQueueToIndicate));
69 } 73 }
70 74
71 } while (FALSE); 75 } while (FALSE);
72 76
73 } 77 }
74 78
75 /* do final completion on sent packet */ 79 /* do final completion on sent packet */
76 static INLINE void CompleteSentPacket(HTC_TARGET *target, HTC_ENDPOINT *pEndpoin t, HTC_PACKET *pPacket) 80 static INLINE void CompleteSentPacket(HTC_TARGET *target, HTC_ENDPOINT *pEndpoin t, HTC_PACKET *pPacket)
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 A_STATUS status; 118 A_STATUS status;
115 A_BOOL sync = FALSE; 119 A_BOOL sync = FALSE;
116 120
117 if (pPacket->Completion == NULL) { 121 if (pPacket->Completion == NULL) {
118 /* mark that this request was synchronously issued */ 122 /* mark that this request was synchronously issued */
119 sync = TRUE; 123 sync = TRUE;
120 } 124 }
121 125
122 AR_DEBUG_PRINTF(ATH_DEBUG_SEND, 126 AR_DEBUG_PRINTF(ATH_DEBUG_SEND,
123 ("+-HTCIssueSend: transmit length : %d (%s) \n", 127 ("+-HTCIssueSend: transmit length : %d (%s) \n",
124 pPacket->ActualLength + HTC_HDR_LENGTH, 128 pPacket->ActualLength + (A_UINT32)HTC_HDR_LENGTH,
125 sync ? "SYNC" : "ASYNC" )); 129 sync ? "SYNC" : "ASYNC" ));
126 130
127 /* send message to device */ 131 /* send message to device */
128 status = DevSendPacket(&target->Device, 132 status = DevSendPacket(&target->Device,
129 pPacket, 133 pPacket,
130 pPacket->ActualLength + HTC_HDR_LENGTH); 134 pPacket->ActualLength + HTC_HDR_LENGTH);
131 135
132 if (sync) { 136 if (sync) {
133 /* use local sync variable. If this was issued asynchronously, pPac ket is no longer 137 /* use local sync variable. If this was issued asynchronously, pPac ket is no longer
134 * safe to access. */ 138 * safe to access. */
(...skipping 23 matching lines...) Expand all
158 /* loop until we can grab as many packets out of the queue as we can */ 162 /* loop until we can grab as many packets out of the queue as we can */
159 while (TRUE) { 163 while (TRUE) {
160 164
161 sendFlags = 0; 165 sendFlags = 0;
162 /* get packet at head, but don't remove it */ 166 /* get packet at head, but don't remove it */
163 pPacket = HTC_GET_PKT_AT_HEAD(&pEndpoint->TxQueue); 167 pPacket = HTC_GET_PKT_AT_HEAD(&pEndpoint->TxQueue);
164 if (pPacket == NULL) { 168 if (pPacket == NULL) {
165 break; 169 break;
166 } 170 }
167 171
168 AR_DEBUG_PRINTF(ATH_DEBUG_SEND,(" Got head packet:0x%X , Queue Depth: %d \n", 172 AR_DEBUG_PRINTF(ATH_DEBUG_SEND,(" Got head packet:0x%lX , Queue Depth: % d\n",
169 (A_UINT32)pPacket, HTC_PACKET_QUEUE_DEPTH(&pEndpoint->TxQueue))) ; 173 (unsigned long)pPacket, HTC_PACKET_QUEUE_DEPTH(&pEndpoint->TxQue ue)));
170 174
171 transferLength = DEV_CALC_SEND_PADDED_LEN(&target->Device, pPacket->Actu alLength + HTC_HDR_LENGTH); 175 transferLength = DEV_CALC_SEND_PADDED_LEN(&target->Device, pPacket->Actu alLength + HTC_HDR_LENGTH);
172 176
173 if (transferLength <= target->TargetCreditSize) { 177 if (transferLength <= target->TargetCreditSize) {
174 creditsRequired = 1; 178 creditsRequired = 1;
175 } else { 179 } else {
176 /* figure out how many credits this message requires */ 180 /* figure out how many credits this message requires */
177 creditsRequired = transferLength / target->TargetCreditSize; 181 creditsRequired = transferLength / target->TargetCreditSize;
178 remainder = transferLength % target->TargetCreditSize; 182 remainder = transferLength % target->TargetCreditSize;
179 183
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 HTC_PREPARE_SEND_PKT(pPacket, 418 HTC_PREPARE_SEND_PKT(pPacket,
415 pPacket->PktInfo.AsTx.SendFlags | HTC_FLAGS_SEN D_BUNDLE, 419 pPacket->PktInfo.AsTx.SendFlags | HTC_FLAGS_SEN D_BUNDLE,
416 creditPad, 420 creditPad,
417 pPacket->PktInfo.AsTx.SeqNo); 421 pPacket->PktInfo.AsTx.SeqNo);
418 pScatterReq->ScatterList[i].pBuffer = pPacket->pBuffer; 422 pScatterReq->ScatterList[i].pBuffer = pPacket->pBuffer;
419 pScatterReq->ScatterList[i].Length = transferLength; 423 pScatterReq->ScatterList[i].Length = transferLength;
420 A_ASSERT(transferLength); 424 A_ASSERT(transferLength);
421 pScatterReq->TotalLength += transferLength; 425 pScatterReq->TotalLength += transferLength;
422 pScatterReq->ValidScatterEntries++; 426 pScatterReq->ValidScatterEntries++;
423 packetsInScatterReq++; 427 packetsInScatterReq++;
424 AR_DEBUG_PRINTF(ATH_DEBUG_SEND,(" %d, Adding packet : 0x%X, len:%d (remaining space:%d) \n", 428 AR_DEBUG_PRINTF(ATH_DEBUG_SEND,(" %d, Adding packet : 0x%lX, len:%d (remaining space:%d) \n",
425 i, (A_UINT32)pPacket,transferLength,scatterSpaceRemaining)); 429 i, (unsigned long)pPacket,transferLength,scatterSpaceRemaini ng));
426 } 430 }
427 431
428 if (packetsInScatterReq >= HTC_MIN_HTC_MSGS_TO_BUNDLE) { 432 if (packetsInScatterReq >= HTC_MIN_HTC_MSGS_TO_BUNDLE) {
429 /* send path is always asynchronous */ 433 /* send path is always asynchronous */
430 pScatterReq->CompletionRoutine = HTCAsyncSendScatterCompletion; 434 pScatterReq->CompletionRoutine = HTCAsyncSendScatterCompletion;
431 pScatterReq->Context = pEndpoint; 435 pScatterReq->Context = pEndpoint;
432 bundlesSent++; 436 bundlesSent++;
433 totalPktsInBundle += packetsInScatterReq; 437 totalPktsInBundle += packetsInScatterReq;
434 packetsInScatterReq = 0; 438 packetsInScatterReq = 0;
435 AR_DEBUG_PRINTF(ATH_DEBUG_SEND,(" Send Scatter total bytes: %d , ent ries: %d\n", 439 AR_DEBUG_PRINTF(ATH_DEBUG_SEND,(" Send Scatter total bytes: %d , ent ries: %d\n",
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
477 HTC_ENDPOINT *pEndpoint, 481 HTC_ENDPOINT *pEndpoint,
478 HTC_PACKET_QUEUE *pCallersSendQueue) 482 HTC_PACKET_QUEUE *pCallersSendQueue)
479 { 483 {
480 HTC_PACKET_QUEUE sendQueue; /* temp queue to hold packets at various st ages */ 484 HTC_PACKET_QUEUE sendQueue; /* temp queue to hold packets at various st ages */
481 HTC_PACKET *pPacket; 485 HTC_PACKET *pPacket;
482 int bundlesSent; 486 int bundlesSent;
483 int pktsInBundles; 487 int pktsInBundles;
484 int overflow; 488 int overflow;
485 HTC_SEND_QUEUE_RESULT result = HTC_SEND_QUEUE_OK; 489 HTC_SEND_QUEUE_RESULT result = HTC_SEND_QUEUE_OK;
486 490
487 AR_DEBUG_PRINTF(ATH_DEBUG_SEND,("+HTCTrySend (Queue:0x%X Depth:%d)\n", 491 AR_DEBUG_PRINTF(ATH_DEBUG_SEND,("+HTCTrySend (Queue:0x%lX Depth:%d)\n",
488 (A_UINT32)pCallersSendQueue, 492 (unsigned long)pCallersSendQueue,
489 (pCallersSendQueue == NULL) ? 0 : HTC_PACKET_QUEUE_DEPTH(pCallersSen dQueue))); 493 (pCallersSendQueue == NULL) ? 0 : HTC_PACKET_QUEUE_DEPTH(pCallersSen dQueue)));
490 494
491 /* init the local send queue */ 495 /* init the local send queue */
492 INIT_HTC_PACKET_QUEUE(&sendQueue); 496 INIT_HTC_PACKET_QUEUE(&sendQueue);
493 497
494 do { 498 do {
495 499
496 if (NULL == pCallersSendQueue) { 500 if (NULL == pCallersSendQueue) {
497 /* caller didn't provide a queue, just wants us to check queues and send */ 501 /* caller didn't provide a queue, just wants us to check queues and send */
498 break; 502 break;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
537 pPacket = HTC_PACKET_DEQUEUE(pCallersSendQueue); 541 pPacket = HTC_PACKET_DEQUEUE(pCallersSendQueue);
538 A_ASSERT(pPacket != NULL); 542 A_ASSERT(pPacket != NULL);
539 /* insert into local queue */ 543 /* insert into local queue */
540 HTC_PACKET_ENQUEUE(&sendQueue,pPacket); 544 HTC_PACKET_ENQUEUE(&sendQueue,pPacket);
541 } 545 }
542 546
543 /* the caller's queue has all the packets that won't fit*/ 547 /* the caller's queue has all the packets that won't fit*/
544 /* walk through the caller's queue and indicate each one to the send full handler */ 548 /* walk through the caller's queue and indicate each one to the send full handler */
545 ITERATE_OVER_LIST_ALLOW_REMOVE(&pCallersSendQueue->QueueHead, pPacke t, HTC_PACKET, ListLink) { 549 ITERATE_OVER_LIST_ALLOW_REMOVE(&pCallersSendQueue->QueueHead, pPacke t, HTC_PACKET, ListLink) {
546 550
547 AR_DEBUG_PRINTF(ATH_DEBUG_SEND, (" Indicating overflowed TX pack et: 0x%X \n", 551 AR_DEBUG_PRINTF(ATH_DEBUG_SEND, (" Indicating overflowed TX pack et: 0x%lX \n",
548 (A_UINT32)pPacket)); 552 (unsigned long)pPacket));
549 if (pEndpoint->EpCallBacks.EpSendFull(pEndpoint->EpCallBacks.pCo ntext, 553 if (pEndpoint->EpCallBacks.EpSendFull(pEndpoint->EpCallBacks.pCo ntext,
550 pPacket) == HTC_SEND_FULL_ DROP) { 554 pPacket) == HTC_SEND_FULL_ DROP) {
551 /* callback wants the packet dropped */ 555 /* callback wants the packet dropped */
552 INC_HTC_EP_STAT(pEndpoint, TxDropped, 1); 556 INC_HTC_EP_STAT(pEndpoint, TxDropped, 1);
553 /* leave this one in the caller's queue for cleanup */ 557 /* leave this one in the caller's queue for cleanup */
554 } else { 558 } else {
555 /* callback wants to keep this packet, remove from calle r's queue */ 559 /* callback wants to keep this packet, remove from calle r's queue */
556 HTC_PACKET_REMOVE(pCallersSendQueue, pPacket); 560 HTC_PACKET_REMOVE(pCallersSendQueue, pPacket);
557 /* put it in the send queue */ 561 /* put it in the send queue */
558 HTC_PACKET_ENQUEUE(&sendQueue,pPacket); 562 HTC_PACKET_ENQUEUE(&sendQueue,pPacket);
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
663 667
664 return HTC_SEND_QUEUE_OK; 668 return HTC_SEND_QUEUE_OK;
665 } 669 }
666 670
667 A_STATUS HTCSendPktsMultiple(HTC_HANDLE HTCHandle, HTC_PACKET_QUEUE *pPktQueue) 671 A_STATUS HTCSendPktsMultiple(HTC_HANDLE HTCHandle, HTC_PACKET_QUEUE *pPktQueue)
668 { 672 {
669 HTC_TARGET *target = GET_HTC_TARGET_FROM_HANDLE(HTCHandle); 673 HTC_TARGET *target = GET_HTC_TARGET_FROM_HANDLE(HTCHandle);
670 HTC_ENDPOINT *pEndpoint; 674 HTC_ENDPOINT *pEndpoint;
671 HTC_PACKET *pPacket; 675 HTC_PACKET *pPacket;
672 676
673 AR_DEBUG_PRINTF(ATH_DEBUG_SEND, ("+HTCSendPktsMultiple: Queue: 0x%X, Pkts %d \n", 677 AR_DEBUG_PRINTF(ATH_DEBUG_SEND, ("+HTCSendPktsMultiple: Queue: 0x%lX, Pkts % d \n",
674 (A_UINT32)pPktQueue, HTC_PACKET_QUEUE_DEPTH(pPktQueue))); 678 (unsigned long)pPktQueue, HTC_PACKET_QUEUE_DEPTH(pPktQueue)) );
675 679
676 /* get packet at head to figure out which endpoint these packets will go into */ 680 /* get packet at head to figure out which endpoint these packets will go into */
677 pPacket = HTC_GET_PKT_AT_HEAD(pPktQueue); 681 pPacket = HTC_GET_PKT_AT_HEAD(pPktQueue);
678 if (NULL == pPacket) { 682 if (NULL == pPacket) {
679 AR_DEBUG_PRINTF(ATH_DEBUG_SEND, ("-HTCSendPktsMultiple \n")); 683 AR_DEBUG_PRINTF(ATH_DEBUG_SEND, ("-HTCSendPktsMultiple \n"));
680 return A_EINVAL; 684 return A_EINVAL;
681 } 685 }
682 686
683 AR_DEBUG_ASSERT(pPacket->Endpoint < ENDPOINT_MAX); 687 AR_DEBUG_ASSERT(pPacket->Endpoint < ENDPOINT_MAX);
684 pEndpoint = &target->EndPoint[pPacket->Endpoint]; 688 pEndpoint = &target->EndPoint[pPacket->Endpoint];
(...skipping 18 matching lines...) Expand all
703 707
704 return A_OK; 708 return A_OK;
705 } 709 }
706 710
707 /* HTC API - HTCSendPkt */ 711 /* HTC API - HTCSendPkt */
708 A_STATUS HTCSendPkt(HTC_HANDLE HTCHandle, HTC_PACKET *pPacket) 712 A_STATUS HTCSendPkt(HTC_HANDLE HTCHandle, HTC_PACKET *pPacket)
709 { 713 {
710 HTC_PACKET_QUEUE queue; 714 HTC_PACKET_QUEUE queue;
711 715
712 AR_DEBUG_PRINTF(ATH_DEBUG_SEND, 716 AR_DEBUG_PRINTF(ATH_DEBUG_SEND,
713 ("+-HTCSendPkt: Enter endPointId: %d, buffer: 0x%X, length: %d \n", 717 ("+-HTCSendPkt: Enter endPointId: %d, buffer: 0x%lX, length: %d \n",
714 pPacket->Endpoint, (A_UINT32)pPacket->pBuffer, pPacket->Actu alLength)); 718 pPacket->Endpoint, (unsigned long)pPacket->pBuffer, pPacket- >ActualLength));
715 INIT_HTC_PACKET_QUEUE_AND_ADD(&queue,pPacket); 719 INIT_HTC_PACKET_QUEUE_AND_ADD(&queue,pPacket);
716 return HTCSendPktsMultiple(HTCHandle, &queue); 720 return HTCSendPktsMultiple(HTCHandle, &queue);
717 } 721 }
718 722
719 /* check TX queues to drain because of credit distribution update */ 723 /* check TX queues to drain because of credit distribution update */
720 static INLINE void HTCCheckEndpointTxQueues(HTC_TARGET *target) 724 static INLINE void HTCCheckEndpointTxQueues(HTC_TARGET *target)
721 { 725 {
722 HTC_ENDPOINT *pEndpoint; 726 HTC_ENDPOINT *pEndpoint;
723 HTC_ENDPOINT_CREDIT_DIST *pDistItem; 727 HTC_ENDPOINT_CREDIT_DIST *pDistItem;
724 728
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
860 864
861 UNLOCK_HTC_TX(target); 865 UNLOCK_HTC_TX(target);
862 866
863 /* empty the discard queue */ 867 /* empty the discard queue */
864 while (1) { 868 while (1) {
865 pPacket = HTC_PACKET_DEQUEUE(&discardQueue); 869 pPacket = HTC_PACKET_DEQUEUE(&discardQueue);
866 if (NULL == pPacket) { 870 if (NULL == pPacket) {
867 break; 871 break;
868 } 872 }
869 pPacket->Status = A_ECANCELED; 873 pPacket->Status = A_ECANCELED;
870 AR_DEBUG_PRINTF(ATH_DEBUG_TRC, (" Flushing TX packet:0x%X, length:%d, e p:%d tag:0x%X \n", 874 AR_DEBUG_PRINTF(ATH_DEBUG_TRC, (" Flushing TX packet:0x%lX, length:%d, ep:%d tag:0x%X \n",
871 (A_UINT32)pPacket, pPacket->ActualLength, pPacket->Endpoint, pPa cket->PktInfo.AsTx.Tag)); 875 (unsigned long)pPacket, pPacket->ActualLength, pPacket->Endpoint , pPacket->PktInfo.AsTx.Tag));
872 INIT_HTC_PACKET_QUEUE_AND_ADD(&container,pPacket); 876 INIT_HTC_PACKET_QUEUE_AND_ADD(&container,pPacket);
873 DO_EP_TX_COMPLETION(pEndpoint,&container); 877 DO_EP_TX_COMPLETION(pEndpoint,&container);
874 } 878 }
875 879
876 } 880 }
877 881
878 void DumpCreditDist(HTC_ENDPOINT_CREDIT_DIST *pEPDist) 882 void DumpCreditDist(HTC_ENDPOINT_CREDIT_DIST *pEPDist)
879 { 883 {
880 AR_DEBUG_PRINTF(ATH_DEBUG_ANY, ("--- EP : %d ServiceID: 0x%X ----------- ---\n", 884 AR_DEBUG_PRINTF(ATH_DEBUG_ANY, ("--- EP : %d ServiceID: 0x%X ----------- ---\n",
881 pEPDist->Endpoint, pEPDist->ServiceID)); 885 pEPDist->Endpoint, pEPDist->ServiceID));
882 AR_DEBUG_PRINTF(ATH_DEBUG_ANY, (" this:0x%X next:0x%X prev:0x%X\n", 886 AR_DEBUG_PRINTF(ATH_DEBUG_ANY, (" this:0x%lX next:0x%lX prev:0x%lX\n",
883 (A_UINT32)pEPDist, (A_UINT32)pEPDist->pNext, (A_UINT32)pEPDist-> pPrev)); 887 (unsigned long)pEPDist, (unsigned long)pEPDist->pNext, (unsigned long)pEPDist->pPrev));
884 AR_DEBUG_PRINTF(ATH_DEBUG_ANY, (" DistFlags : 0x%X \n", pEPDist->Di stFlags)); 888 AR_DEBUG_PRINTF(ATH_DEBUG_ANY, (" DistFlags : 0x%X \n", pEPDist->Di stFlags));
885 AR_DEBUG_PRINTF(ATH_DEBUG_ANY, (" TxCreditsNorm : %d \n", pEPDist->TxCr editsNorm)); 889 AR_DEBUG_PRINTF(ATH_DEBUG_ANY, (" TxCreditsNorm : %d \n", pEPDist->TxCr editsNorm));
886 AR_DEBUG_PRINTF(ATH_DEBUG_ANY, (" TxCreditsMin : %d \n", pEPDist->TxCr editsMin)); 890 AR_DEBUG_PRINTF(ATH_DEBUG_ANY, (" TxCreditsMin : %d \n", pEPDist->TxCr editsMin));
887 AR_DEBUG_PRINTF(ATH_DEBUG_ANY, (" TxCredits : %d \n", pEPDist->TxCr edits)); 891 AR_DEBUG_PRINTF(ATH_DEBUG_ANY, (" TxCredits : %d \n", pEPDist->TxCr edits));
888 AR_DEBUG_PRINTF(ATH_DEBUG_ANY, (" TxCreditsAssigned : %d \n", pEPDist->TxCr editsAssigned)); 892 AR_DEBUG_PRINTF(ATH_DEBUG_ANY, (" TxCreditsAssigned : %d \n", pEPDist->TxCr editsAssigned));
889 AR_DEBUG_PRINTF(ATH_DEBUG_ANY, (" TxCreditsSeek : %d \n", pEPDist->TxCr editsSeek)); 893 AR_DEBUG_PRINTF(ATH_DEBUG_ANY, (" TxCreditsSeek : %d \n", pEPDist->TxCr editsSeek));
890 AR_DEBUG_PRINTF(ATH_DEBUG_ANY, (" TxCreditSize : %d \n", pEPDist->TxCr editSize)); 894 AR_DEBUG_PRINTF(ATH_DEBUG_ANY, (" TxCreditSize : %d \n", pEPDist->TxCr editSize));
891 AR_DEBUG_PRINTF(ATH_DEBUG_ANY, (" TxCreditsPerMaxMsg : %d \n", pEPDist->TxCr editsPerMaxMsg)); 895 AR_DEBUG_PRINTF(ATH_DEBUG_ANY, (" TxCreditsPerMaxMsg : %d \n", pEPDist->TxCr editsPerMaxMsg));
892 AR_DEBUG_PRINTF(ATH_DEBUG_ANY, (" TxCreditsToDist : %d \n", pEPDist->TxCr editsToDist)); 896 AR_DEBUG_PRINTF(ATH_DEBUG_ANY, (" TxCreditsToDist : %d \n", pEPDist->TxCr editsToDist));
893 AR_DEBUG_PRINTF(ATH_DEBUG_ANY, (" TxQueueDepth : %d \n", 897 AR_DEBUG_PRINTF(ATH_DEBUG_ANY, (" TxQueueDepth : %d \n",
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
1010 if (pEndpoint->ServiceID == 0) { 1014 if (pEndpoint->ServiceID == 0) {
1011 return FALSE; 1015 return FALSE;
1012 } 1016 }
1013 1017
1014 if (pEndpoint->CreditDist.DistFlags & HTC_EP_ACTIVE) { 1018 if (pEndpoint->CreditDist.DistFlags & HTC_EP_ACTIVE) {
1015 return TRUE; 1019 return TRUE;
1016 } 1020 }
1017 1021
1018 return FALSE; 1022 return FALSE;
1019 } 1023 }
OLDNEW
« no previous file with comments | « chromeos/drivers/ath6kl/htc2/htc_recv.c ('k') | chromeos/drivers/ath6kl/htc2/htc_services.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698