diff -r c1f20ce4abcf -r 3e88ff8f41d5 kernel/eka/drivers/usbcsc/usbcsc_bil.cpp --- a/kernel/eka/drivers/usbcsc/usbcsc_bil.cpp Tue Aug 31 16:34:26 2010 +0300 +++ b/kernel/eka/drivers/usbcsc/usbcsc_bil.cpp Wed Sep 01 12:34:56 2010 +0100 @@ -1,4 +1,4 @@ -// Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available // under the terms of the License "Eclipse Public License v1.0" @@ -19,10 +19,7 @@ #include #include #include -#include "OstTraceDefinitions.h" -#ifdef OST_TRACE_COMPILER_IN_USE -#include "usbcsc_bilTraces.h" -#endif + /** @file usbcsc_bil.cpp Buffer Interface Layer for USB Client Device driver stack, using shared chunks. @@ -41,31 +38,6 @@ return r; } -// empty a endpoint buffer, this is called when device state enter undefined -TInt RDevUsbcScClient::Empty(TUint aBufferOffset) -{ - TUint8* base = iSharedChunk.Base(); - SUsbcScBufferHeader* endpointHdr = (SUsbcScBufferHeader*) (aBufferOffset + base); - TUint localTail = endpointHdr->iBilTail; - TUsbcScTransferHeader* currentTransfer; - TInt err=KErrNone; - - while (ETrue) - { - if (localTail == (TUint) endpointHdr->iHead) - { - err = KErrNone; - break; - } - currentTransfer = (TUsbcScTransferHeader*) (base + localTail); - localTail = currentTransfer->iNext; - } // end while - endpointHdr->iBilTail = localTail; - endpointHdr->iTail = localTail; - return err; -} - - EXPORT_C TInt RDevUsbcScClient::FinalizeInterface(RChunk*& aChunk) { @@ -77,35 +49,6 @@ } -EXPORT_C void RDevUsbcScClient::ResetAltSetting() - { - if (iAlternateSetting == 0) - return; - TUsbcScChunkHeader chunkHeader(iSharedChunk); - - TInt ep; - TInt noEp; - TUint bufOff; - TUsbcScHdrEndpointRecord* endpointInf = NULL; - - // check if alternate setting contains all IN endpoints - noEp = chunkHeader.GetNumberOfEndpoints(iAlternateSetting); - - // for each used buffer. - for (ep=1;ep<=noEp;ep++) - { - bufOff = chunkHeader.GetBuffer(iAlternateSetting,ep,endpointInf)->Offset(); - - if (endpointInf->Direction() & KUsbScHdrEpDirectionOut) - { - Empty(bufOff); // we need to remove anythng in the way, and get it ready for reading. - } - } - - iAlternateSetting = 0; - } - - EXPORT_C TInt RDevUsbcScClient::OpenEndpoint(TEndpointBuffer& aEpB, TInt aEpI) { TUsbcScHdrEndpointRecord* endpointInf = NULL; @@ -163,7 +106,7 @@ #ifdef _DEBUG aEpB.Dump(); - OstTraceDef1(OST_TRACE_CATEGORY_RND, TRACE_NORMAL, RDEVUSBCSCCLIENT_OPENENDPOINT, "iEndpointStatus: %x \n",iEndpointStatus ); + RDebug::Printf("iEndpointStatus: %x \n",iEndpointStatus); #endif return KErrNone; } @@ -175,14 +118,12 @@ TInt RDevUsbcScClient::Drain(TUint aBufferOffset) { - TUint8* base = iSharedChunk.Base(); SUsbcScBufferHeader* endpointHdr = (SUsbcScBufferHeader*) (aBufferOffset+base); TUint localTail = endpointHdr->iBilTail; TUsbcScTransferHeader* currentTransfer; TUint16 next = (iAltSettingSeq+1)&0xFFFF; TInt err=KErrNone; - TBool aZLP; while (ETrue) { @@ -194,13 +135,8 @@ currentTransfer = (TUsbcScTransferHeader*) (base + localTail); if (currentTransfer->iAltSettingSeq == next) - { + { iNewAltSetting=currentTransfer->iAltSetting; // record new alt setting - aZLP = (currentTransfer->iFlags & KUsbcScShortPacket)!=EFalse; - if ((currentTransfer->iBytes==0) && (!aZLP)) // take empty packet which is for alternate setting change - { - localTail = currentTransfer->iNext; - } break; } else @@ -228,7 +164,7 @@ // if alternate setting has not changed return KErrNotReady; else - { + { iNewAltSetting=currentTransfer->iAltSetting; return KErrNone; } @@ -469,7 +405,6 @@ TUsbcScTransferHeader* currentTransfer; TInt r; - TInt aBilTail; do // until we have a transfer with data. { iEndpointHdr->iTail = iEndpointHdr->iBilTail; @@ -480,22 +415,19 @@ return r; } currentTransfer = (TUsbcScTransferHeader*) (iBaseAddr + iEndpointHdr->iBilTail); - aBilTail = iEndpointHdr->iBilTail; + iEndpointHdr->iBilTail = currentTransfer->iNext; aZLP = (currentTransfer->iFlags & KUsbcScShortPacket)!=EFalse; if(currentTransfer->iAltSettingSeq != (iClient->iAltSettingSeq)) // if alternate setting has changed { if (currentTransfer->iAltSettingSeq == (iClient->iAltSettingSeq+1)) //Note- KIS ATM, if multiple alternate setting changes happen - { iClient->iNewAltSetting = currentTransfer->iAltSetting; //before StartNextOutAlternateSetting is called, - //this variable will reflect the latest requested AlternateSetting - } + //this variable will reflect the latest requested AlternateSetting if (iEndpointNumber != KEp0Number) { - iEndpointHdr->iBilTail = aBilTail; // iOutState = EEOF; return KErrEof; } @@ -518,10 +450,8 @@ if (iOutState) return iOutState; - TUsbcScTransferHeader* currentTransfer; TInt r; - TInt aBilTail; do // until we have a transfer with data. { if(iEndpointHdr->iBilTail == iEndpointHdr->iHead) //If no new data, create request @@ -534,7 +464,6 @@ } currentTransfer = (TUsbcScTransferHeader*) (iBaseAddr + iEndpointHdr->iBilTail); - aBilTail = iEndpointHdr->iBilTail; iEndpointHdr->iBilTail = currentTransfer->iNext; aZLP = (currentTransfer->iFlags & KUsbcScShortPacket)!=EFalse; // True if short packet else false @@ -543,19 +472,16 @@ if (currentTransfer->iAltSettingSeq == (iClient->iAltSettingSeq+1)) //Note- KIS ATM, if multiple alternate setting changes happen iClient->iNewAltSetting = currentTransfer->iAltSetting; //before StartNextOutAlternateSetting is called, //this variable will reflect the latest requested AlternateSetting - + Expire(currentTransfer->iData.i); if (iEndpointNumber != KEp0Number) { - iEndpointHdr->iBilTail = aBilTail; // iOutState = EEOF; return KErrEof; } else if ((currentTransfer->iBytes==0) && (!aZLP)) { - Expire(currentTransfer->iData.i); return KErrAlternateSettingChanged; } - Expire(currentTransfer->iData.i); } @@ -597,12 +523,11 @@ TInt prevTail = NULL; TBool found = EFalse; - while (currentTail != iEndpointHdr->iBilTail) - { + { TUsbcScTransferHeader* currentTransfer = (TUsbcScTransferHeader*) (iBaseAddr + currentTail); if (currentTail == offsetToExpire) // found which to expire - { + { found = ETrue; // This offset is to be expired if (prevTail == NULL) @@ -622,7 +547,7 @@ } prevTail = currentTail; currentTail = currentTransfer->iNext; - } + } return found ? KErrNone : KErrNotFound; } @@ -702,9 +627,7 @@ EXPORT_C void TEndpointBuffer::Dump() { - OstTraceDefExt5(OST_TRACE_CATEGORY_RND, TRACE_NORMAL, TENDPOINTBUFFER_DUMP, "TEndpointBuffer::Dump iBufferStart: 0x%x, iSize: 0x%x, iEndpointNumber: 0x%x, iBufferNum: %d, iInState: 0x%x", - (TUint)iBufferStartAddr,iSize,iEndpointNumber,iBufferNum, (TUint)iInState); - - OstTraceDef1(OST_TRACE_CATEGORY_RND, TRACE_NORMAL, TENDPOINTBUFFER_DUMP_DUP1, " iOutState: 0x%x\n", iOutState); + RDebug::Printf("TEndpointBuffer::Dump iBufferStart: 0x%x, iSize: 0x%x, iEndpointNumber: 0x%x, iBufferNum: %d, iInState: 0x%x iOutState: 0x%x\n", + iBufferStartAddr,iSize,iEndpointNumber,iBufferNum,iInState,iOutState); }