Lines Matching refs:acm
37 static int32_t SerialSendCtrlMsg(struct AcmDevice *acm, uint8_t request, uint16_t value, void *buf,…
39 static int32_t UsbSerialInit(struct AcmDevice *acm);
40 static void UsbSerialRelease(struct AcmDevice *acm);
45 struct AcmDevice *acm = (struct AcmDevice *)data; in UsbIoThread() local
48 if (acm == NULL) { in UsbIoThread()
54 if (acm->devHandle == NULL) { in UsbIoThread()
60 ret = UsbRawHandleRequests(acm->devHandle); in UsbIoThread()
77 static int32_t UsbStartIo(struct AcmDevice *acm) in UsbStartIo() argument
96 ret = OsalThreadCreate(&acm->ioThread, (OsalThreadEntry)UsbIoThread, (void *)acm); in UsbStartIo()
102 ret = OsalThreadStart(&acm->ioThread, &threadCfg); in UsbStartIo()
111 static void UsbStopIo(struct AcmDevice *acm) in UsbStopIo() argument
134 ret = OsalThreadDestroy(&acm->ioThread); in UsbStopIo()
176 static int32_t UsbGetBulkEndpoint(struct AcmDevice *acm, const struct UsbRawEndpointDescriptor *end… in UsbGetBulkEndpoint() argument
180 acm->dataInEp = OsalMemAlloc(sizeof(struct UsbEndpoint)); in UsbGetBulkEndpoint()
181 if (acm->dataInEp == NULL) { in UsbGetBulkEndpoint()
185 acm->dataInEp->addr = endPoint->endpointDescriptor.bEndpointAddress; in UsbGetBulkEndpoint()
186 acm->dataInEp->interval = endPoint->endpointDescriptor.bInterval; in UsbGetBulkEndpoint()
187 acm->dataInEp->maxPacketSize = endPoint->endpointDescriptor.wMaxPacketSize; in UsbGetBulkEndpoint()
190 acm->dataOutEp = OsalMemAlloc(sizeof(struct UsbEndpoint)); in UsbGetBulkEndpoint()
191 if (acm->dataOutEp == NULL) { in UsbGetBulkEndpoint()
195 acm->dataOutEp->addr = endPoint->endpointDescriptor.bEndpointAddress; in UsbGetBulkEndpoint()
196 acm->dataOutEp->interval = endPoint->endpointDescriptor.bInterval; in UsbGetBulkEndpoint()
197 acm->dataOutEp->maxPacketSize = endPoint->endpointDescriptor.wMaxPacketSize; in UsbGetBulkEndpoint()
204 struct AcmDevice *acm, const struct UsbRawInterface *interface, uint8_t interfaceIndex) in UsbParseConfigDescriptorProcess() argument
211 acm->ctrlIface = interfaceIndex; in UsbParseConfigDescriptorProcess()
212 acm->notifyEp = OsalMemAlloc(sizeof(struct UsbEndpoint)); in UsbParseConfigDescriptorProcess()
213 if (acm->notifyEp == NULL) { in UsbParseConfigDescriptorProcess()
218 … acm->notifyEp->addr = interface->altsetting->endPoint[0].endpointDescriptor.bEndpointAddress; in UsbParseConfigDescriptorProcess()
219 … acm->notifyEp->interval = interface->altsetting->endPoint[0].endpointDescriptor.bInterval; in UsbParseConfigDescriptorProcess()
220 …acm->notifyEp->maxPacketSize = interface->altsetting->endPoint[0].endpointDescriptor.wMaxPacketSiz… in UsbParseConfigDescriptorProcess()
223 acm->dataIface = interfaceIndex; in UsbParseConfigDescriptorProcess()
226 if (UsbGetBulkEndpoint(acm, endPoint) != HDF_SUCCESS) { in UsbParseConfigDescriptorProcess()
237 static int32_t UsbParseConfigDescriptor(struct AcmDevice *acm, struct UsbRawConfigDescriptor *confi… in UsbParseConfigDescriptor() argument
239 if ((acm == NULL) || (config == NULL)) { in UsbParseConfigDescriptor()
244 for (uint8_t i = 0; i < acm->interfaceCnt; i++) { in UsbParseConfigDescriptor()
245 uint8_t interfaceIndex = acm->interfaceIndex[i]; in UsbParseConfigDescriptor()
248 int32_t ret = UsbRawClaimInterface(acm->devHandle, interfaceIndex); in UsbParseConfigDescriptor()
254 UsbParseConfigDescriptorProcess(acm, interface, interfaceIndex); in UsbParseConfigDescriptor()
260 static void UsbReleaseInterfaces(struct AcmDevice *acm) in UsbReleaseInterfaces() argument
262 if ((acm == NULL) || (acm->devHandle == NULL)) { in UsbReleaseInterfaces()
267 (void)UsbRawReleaseInterface(acm->devHandle, acm->ctrlIface); in UsbReleaseInterfaces()
268 (void)UsbRawReleaseInterface(acm->devHandle, acm->dataIface); in UsbReleaseInterfaces()
270 if (acm->notifyEp) { in UsbReleaseInterfaces()
271 OsalMemFree(acm->notifyEp); in UsbReleaseInterfaces()
272 acm->notifyEp = NULL; in UsbReleaseInterfaces()
274 if (acm->dataInEp) { in UsbReleaseInterfaces()
275 OsalMemFree(acm->dataInEp); in UsbReleaseInterfaces()
276 acm->dataInEp = NULL; in UsbReleaseInterfaces()
278 if (acm->dataOutEp) { in UsbReleaseInterfaces()
279 OsalMemFree(acm->dataOutEp); in UsbReleaseInterfaces()
280 acm->dataOutEp = NULL; in UsbReleaseInterfaces()
284 static int32_t UsbAllocWriteRequests(struct AcmDevice *acm) in UsbAllocWriteRequests() argument
289 struct AcmWb *snd = &acm->wb[i]; in UsbAllocWriteRequests()
290 snd->request = UsbRawAllocRequest(acm->devHandle, 0, acm->dataOutEp->maxPacketSize); in UsbAllocWriteRequests()
291 snd->instance = acm; in UsbAllocWriteRequests()
301 static void UsbFreeWriteRequests(struct AcmDevice *acm) in UsbFreeWriteRequests() argument
307 snd = &acm->wb[i]; in UsbFreeWriteRequests()
315 static int32_t AcmWbAlloc(const struct AcmDevice *acm) in AcmWbAlloc() argument
321 wb = (struct AcmWb *)&acm->wb[i]; in AcmWbAlloc()
358 static int32_t AcmWbIsAvail(const struct AcmDevice *acm) in AcmWbIsAvail() argument
363 OsalMutexLock((struct OsalMutex *)&acm->writeLock); in AcmWbIsAvail()
365 n -= acm->wb[i].use; in AcmWbIsAvail()
367 OsalMutexUnlock((struct OsalMutex *)&acm->writeLock); in AcmWbIsAvail()
371 static int32_t AcmStartWb(struct AcmDevice *acm, struct AcmWb *wb) in AcmStartWb() argument
375 if ((acm == NULL) || (wb == NULL) || (acm->dataOutEp == NULL) || (acm->devHandle == NULL) || in AcmStartWb()
380 acm->transmitting++; in AcmStartWb()
382 reqData.endPoint = acm->dataOutEp->addr; in AcmStartWb()
390 ret = UsbRawFillBulkRequest(wb->request, acm->devHandle, &reqData); in AcmStartWb()
396 acm->writeReq = wb->request; in AcmStartWb()
401 acm->transmitting--; in AcmStartWb()
407 static int32_t AcmWriteBufAlloc(const struct AcmDevice *acm) in AcmWriteBufAlloc() argument
409 struct AcmWb *wb = (struct AcmWb *)&acm->wb[0]; in AcmWriteBufAlloc()
413 wb->buf = OsalMemCalloc(acm->dataOutEp->maxPacketSize); in AcmWriteBufAlloc()
427 static void AcmWriteBufFree(struct AcmDevice *acm) in AcmWriteBufFree() argument
429 struct AcmWb *wb = &acm->wb[0]; in AcmWriteBufFree()
461 static int32_t SerialSendCtrlMsg(struct AcmDevice *acm, uint8_t request, uint16_t value, void *buf,… in SerialSendCtrlMsg() argument
466 if (acm == NULL || buf == NULL) { in SerialSendCtrlMsg()
470 if (acm->ctrlReq == NULL) { in SerialSendCtrlMsg()
471 acm->ctrlReq = UsbRawAllocRequest(acm->devHandle, 0, USB_CTRL_REQ_SIZE); in SerialSendCtrlMsg()
472 if (acm->ctrlReq == NULL) { in SerialSendCtrlMsg()
486 ret = UsbRawSendControlRequest(acm->ctrlReq, acm->devHandle, &ctrlReq); in SerialSendCtrlMsg()
491 if (acm->ctrlReq->status) { in SerialSendCtrlMsg()
492 HDF_LOGE("%{public}s status=%{public}d ", __func__, acm->ctrlReq->status); in SerialSendCtrlMsg()
497 static int32_t UsbSerialDeviceAlloc(struct AcmDevice *acm) in UsbSerialDeviceAlloc() argument
501 if (acm == NULL) { in UsbSerialDeviceAlloc()
520 acm->lineCoding = port->lineCoding; in UsbSerialDeviceAlloc()
521 acm->port = port; in UsbSerialDeviceAlloc()
522 port->acm = acm; in UsbSerialDeviceAlloc()
527 static void UsbSeriaDevicelFree(struct AcmDevice *acm) in UsbSeriaDevicelFree() argument
529 struct SerialDevice *port = acm->port; in UsbSeriaDevicelFree()
541 struct AcmDevice *acm = port->acm; in UsbSerialRead() local
547 if (acm->readReq[i]->status != USB_REQUEST_COMPLETED) { in UsbSerialRead()
549 __func__, __LINE__, i, acm->readReq[i]->status); in UsbSerialRead()
568 OsalMutexLock(&acm->readLock); in UsbSerialRead()
573 OsalMutexUnlock(&acm->readLock); in UsbSerialRead()
576 OsalMutexUnlock(&acm->readLock); in UsbSerialRead()
590 struct AcmDevice *acm = port->acm; in SerialSetBaudrate() local
598 if (memcmp(&acm->lineCoding, &port->lineCoding, sizeof(struct UsbCdcLineCoding))) { in SerialSetBaudrate()
600 …memcpy_s(&acm->lineCoding, sizeof(struct UsbCdcLineCoding), &port->lineCoding, sizeof(port->lineCo… in SerialSetBaudrate()
611 … acm, USB_DDK_CDC_REQ_SET_LINE_CODING, 0, &acm->lineCoding, sizeof(struct UsbCdcLineCoding)); in SerialSetBaudrate()
636 struct AcmDevice *acm = NULL; in SerialOpen() local
645 acm = port->acm; in SerialOpen()
646 if (acm == NULL) { in SerialOpen()
656 ret = UsbSerialInit(acm); in SerialOpen()
673 ret = UsbRawSubmitRequest(acm->readReq[i]); in SerialOpen()
695 if (port->acm == NULL) { in SerialClose()
710 OsalMutexLock(&port->acm->readLock); in SerialClose()
712 OsalMutexUnlock(&port->acm->readLock); in SerialClose()
714 UsbSerialRelease(port->acm); in SerialClose()
721 struct AcmDevice *acm = NULL; in SerialWrite() local
731 acm = port->acm; in SerialWrite()
732 if (acm == NULL) { in SerialWrite()
736 if (AcmWbIsAvail(acm)) { in SerialWrite()
737 wbn = AcmWbAlloc(acm); in SerialWrite()
746 wb = &acm->wb[wbn]; in SerialWrite()
756 if (acm->dataOutEp != NULL) { in SerialWrite()
757 size = (size > acm->dataOutEp->maxPacketSize) ? acm->dataOutEp->maxPacketSize : size; in SerialWrite()
758 if (memcpy_s(wb->buf, acm->dataOutEp->maxPacketSize, tmp, size) != EOK) { in SerialWrite()
764 if (AcmStartWb(acm, wb) != HDF_SUCCESS) { in SerialWrite()
771 static int32_t AcmStartWbSync(struct AcmDevice *acm, struct AcmWb *wb) in AcmStartWbSync() argument
777 requestData.endPoint = acm->dataOutEp->addr; in AcmStartWbSync()
783 acm->writeReq = wb->request; in AcmStartWbSync()
784 ret = UsbRawSendBulkRequest(wb->request, acm->devHandle, &requestData); in AcmStartWbSync()
796 struct AcmDevice *acm = NULL; in SerialWriteSync() local
806 acm = port->acm; in SerialWriteSync()
807 if (acm == NULL) { in SerialWriteSync()
812 if (AcmWbIsAvail(acm)) { in SerialWriteSync()
813 wbn = AcmWbAlloc(acm); in SerialWriteSync()
822 wb = &acm->wb[wbn]; in SerialWriteSync()
832 if (acm->dataOutEp == NULL) { in SerialWriteSync()
835 size = (size > acm->dataOutEp->maxPacketSize) ? acm->dataOutEp->maxPacketSize : size; in SerialWriteSync()
836 if (memcpy_s(wb->buf, acm->dataOutEp->maxPacketSize, tmp, size) != EOK) { in SerialWriteSync()
841 if (AcmStartWbSync(acm, wb) != HDF_SUCCESS) { in SerialWriteSync()
853 struct AcmDevice *acm = port->acm; in UsbSerialReadSync() local
858 g_syncRequest = UsbRawAllocRequest(acm->devHandle, 0, acm->dataInEp->maxPacketSize); in UsbSerialReadSync()
866 requestData.endPoint = acm->dataInEp->addr; in UsbSerialReadSync()
868 requestData.length = acm->dataInEp->maxPacketSize; in UsbSerialReadSync()
872 ret = UsbRawSendBulkRequest(g_syncRequest, acm->devHandle, &requestData); in UsbSerialReadSync()
917 struct AcmDevice *acm = NULL; in UsbSerialDeviceDispatch() local
935 acm = (struct AcmDevice *)client->device->service; in UsbSerialDeviceDispatch()
936 port = acm->port; in UsbSerialDeviceDispatch()
968 struct AcmDevice *acm = NULL; in UsbSerialDriverBind() local
977 acm = (struct AcmDevice *)OsalMemCalloc(sizeof(*acm)); in UsbSerialDriverBind()
978 if (acm == NULL) { in UsbSerialDriverBind()
982 if (OsalMutexInit(&acm->lock) != HDF_SUCCESS) { in UsbSerialDriverBind()
989 acm->busNum = (uint8_t)info->busNum; in UsbSerialDriverBind()
990 acm->devAddr = (uint8_t)info->devNum; in UsbSerialDriverBind()
991 acm->interfaceCnt = info->interfaceLength; in UsbSerialDriverBind()
992 …err = memcpy_s((void *)(acm->interfaceIndex), USB_MAX_INTERFACES, (const void *)info->interfaceNum… in UsbSerialDriverBind()
1003 device->service = &(acm->service); in UsbSerialDriverBind()
1005 acm->device = device; in UsbSerialDriverBind()
1010 if (OsalMutexDestroy(&acm->lock)) { in UsbSerialDriverBind()
1014 OsalMemFree(acm); in UsbSerialDriverBind()
1015 acm = NULL; in UsbSerialDriverBind()
1019 static void AcmProcessNotification(const struct AcmDevice *acm, const unsigned char *buf) in AcmProcessNotification() argument
1021 (void)acm; in AcmProcessNotification()
1038 …const struct UsbRawRequest *req, struct AcmDevice *acm, unsigned int currentSize, unsigned int exp… in AcmNotificationBufferProcess() argument
1040 if (acm->nbSize < expectedSize) { in AcmNotificationBufferProcess()
1041 if (acm->nbSize) { in AcmNotificationBufferProcess()
1042 OsalMemFree(acm->notificationBuffer); in AcmNotificationBufferProcess()
1043 acm->nbSize = 0; in AcmNotificationBufferProcess()
1046 acm->notificationBuffer = (uint8_t *)OsalMemCalloc(allocSize); in AcmNotificationBufferProcess()
1047 if (!acm->notificationBuffer) { in AcmNotificationBufferProcess()
1050 acm->nbSize = allocSize; in AcmNotificationBufferProcess()
1052 unsigned int copySize = MIN(currentSize, expectedSize - acm->nbIndex); in AcmNotificationBufferProcess()
1053 …int32_t ret = memcpy_s(&acm->notificationBuffer[acm->nbIndex], acm->nbSize - acm->nbIndex, req->bu… in AcmNotificationBufferProcess()
1057 acm->nbIndex += copySize; in AcmNotificationBufferProcess()
1069 struct AcmDevice *acm = (struct AcmDevice *)req->userData; in AcmNotifyReqCallback() local
1070 if (acm == NULL) { in AcmNotifyReqCallback()
1088 if (acm->nbIndex) { in AcmNotifyReqCallback()
1089 dr = (struct UsbCdcNotification *)acm->notificationBuffer; in AcmNotifyReqCallback()
1098 if (AcmNotificationBufferProcess(req, acm, currentSize, expectedSize) != HDF_SUCCESS) { in AcmNotifyReqCallback()
1101 currentSize = acm->nbIndex; in AcmNotifyReqCallback()
1104 AcmProcessNotification(acm, (unsigned char *)dr); in AcmNotifyReqCallback()
1105 acm->nbIndex = 0; in AcmNotifyReqCallback()
1123 struct AcmDevice *acm = (struct AcmDevice *)req->userData; in AcmReadBulkCallback() local
1124 if (acm == NULL || acm->port == NULL) { in AcmReadBulkCallback()
1137 OsalMutexLock(&acm->readLock); in AcmReadBulkCallback()
1138 if (DataFifoIsFull(&acm->port->readFifo)) { in AcmReadBulkCallback()
1139 DataFifoSkip(&acm->port->readFifo, size); in AcmReadBulkCallback()
1141 uint32_t count = DataFifoWrite(&acm->port->readFifo, data, size); in AcmReadBulkCallback()
1145 OsalMutexUnlock(&acm->readLock); in AcmReadBulkCallback()
1153 static int32_t UsbAllocReadRequests(struct AcmDevice *acm) in UsbAllocReadRequests() argument
1156 uint32_t size = acm->dataInEp->maxPacketSize; in UsbAllocReadRequests()
1159 acm->readReq[i] = UsbRawAllocRequest(acm->devHandle, 0, size); in UsbAllocReadRequests()
1160 if (!acm->readReq[i]) { in UsbAllocReadRequests()
1165 reqData.endPoint = acm->dataInEp->addr; in UsbAllocReadRequests()
1168 reqData.userData = (void *)acm; in UsbAllocReadRequests()
1172 int32_t ret = UsbRawFillBulkRequest(acm->readReq[i], acm->devHandle, &reqData); in UsbAllocReadRequests()
1182 static void UsbFreeReadRequests(struct AcmDevice *acm) in UsbFreeReadRequests() argument
1186 if (acm == NULL) { in UsbFreeReadRequests()
1192 if (acm->readReq[i]) { in UsbFreeReadRequests()
1193 UsbRawFreeRequest(acm->readReq[i]); in UsbFreeReadRequests()
1194 acm->readReq[i] = NULL; in UsbFreeReadRequests()
1199 static int32_t UsbAllocNotifyRequest(struct AcmDevice *acm) in UsbAllocNotifyRequest() argument
1202 if ((acm == NULL) || (acm->notifyEp == NULL)) { in UsbAllocNotifyRequest()
1206 uint32_t size = acm->notifyEp->maxPacketSize; in UsbAllocNotifyRequest()
1209 acm->notifyReq = UsbRawAllocRequest(acm->devHandle, 0, size); in UsbAllocNotifyRequest()
1210 if (!acm->notifyReq) { in UsbAllocNotifyRequest()
1215 fillRequestData.endPoint = acm->notifyEp->addr; in UsbAllocNotifyRequest()
1219 fillRequestData.userData = (void *)acm; in UsbAllocNotifyRequest()
1222 ret = UsbRawFillInterruptRequest(acm->notifyReq, acm->devHandle, &fillRequestData); in UsbAllocNotifyRequest()
1231 static void UsbFreeNotifyReqeust(struct AcmDevice *acm) in UsbFreeNotifyReqeust() argument
1235 if ((acm == NULL) || (acm->notifyReq == NULL)) { in UsbFreeNotifyReqeust()
1240 ret = UsbRawFreeRequest(acm->notifyReq); in UsbFreeNotifyReqeust()
1242 acm->notifyReq = NULL; in UsbFreeNotifyReqeust()
1248 static void UsbAllocRequests(struct AcmDevice *acm, int32_t ret) in UsbAllocRequests() argument
1250 ret = UsbAllocWriteRequests(acm); in UsbAllocRequests()
1256 ret = UsbAllocNotifyRequest(acm); in UsbAllocRequests()
1261 ret = UsbAllocReadRequests(acm); in UsbAllocRequests()
1266 ret = UsbStartIo(acm); in UsbAllocRequests()
1272 acm->lineCoding.dwDTERate = CPU_TO_LE32(DATARATE); in UsbAllocRequests()
1273 acm->lineCoding.bCharFormat = USB_CDC_1_STOP_BITS; in UsbAllocRequests()
1274 acm->lineCoding.bParityType = USB_CDC_NO_PARITY; in UsbAllocRequests()
1275 acm->lineCoding.bDataBits = DATA_BITS_LENGTH; in UsbAllocRequests()
1277 ret = UsbRawSubmitRequest(acm->notifyReq); in UsbAllocRequests()
1282 ret = AcmWriteBufAlloc(acm); in UsbAllocRequests()
1289 UsbStopIo(acm); in UsbAllocRequests()
1291 UsbFreeReadRequests(acm); in UsbAllocRequests()
1293 UsbFreeNotifyReqeust(acm); in UsbAllocRequests()
1295 UsbFreeWriteRequests(acm); in UsbAllocRequests()
1297 AcmWriteBufFree(acm); in UsbAllocRequests()
1299 UsbReleaseInterfaces(acm); in UsbAllocRequests()
1302 static int32_t UsbSerialInit(struct AcmDevice *acm) in UsbSerialInit() argument
1307 if (acm->initFlag) { in UsbSerialInit()
1316 acm->session = session; in UsbSerialInit()
1317 devHandle = UsbRawOpenDevice(session, acm->busNum, acm->devAddr); in UsbSerialInit()
1323 acm->devHandle = devHandle; in UsbSerialInit()
1324 ret = UsbGetConfigDescriptor(devHandle, &acm->config); in UsbSerialInit()
1330 ret = UsbParseConfigDescriptor(acm, acm->config); in UsbSerialInit()
1336 UsbAllocRequests(acm, ret); in UsbSerialInit()
1337 acm->initFlag = true; in UsbSerialInit()
1341 UsbRawFreeConfigDescriptor(acm->config); in UsbSerialInit()
1342 acm->config = NULL; in UsbSerialInit()
1346 UsbRawExit(acm->session); in UsbSerialInit()
1350 static void UsbSerialRelease(struct AcmDevice *acm) in UsbSerialRelease() argument
1352 if (!(acm->initFlag)) { in UsbSerialRelease()
1358 UsbStopIo(acm); in UsbSerialRelease()
1363 UsbFreeReadRequests(acm); in UsbSerialRelease()
1364 UsbFreeNotifyReqeust(acm); in UsbSerialRelease()
1365 UsbFreeWriteRequests(acm); in UsbSerialRelease()
1366 AcmWriteBufFree(acm); in UsbSerialRelease()
1367 UsbReleaseInterfaces(acm); in UsbSerialRelease()
1368 (void)UsbRawCloseDevice(acm->devHandle); in UsbSerialRelease()
1369 UsbRawFreeConfigDescriptor(acm->config); in UsbSerialRelease()
1370 acm->config = NULL; in UsbSerialRelease()
1371 UsbRawExit(acm->session); in UsbSerialRelease()
1373 acm->initFlag = false; in UsbSerialRelease()
1378 struct AcmDevice *acm = NULL; in UsbSerialDriverInit() local
1385 acm = (struct AcmDevice *)device->service; in UsbSerialDriverInit()
1386 if (acm == NULL) { in UsbSerialDriverInit()
1389 OsalMutexInit(&acm->readLock); in UsbSerialDriverInit()
1390 OsalMutexInit(&acm->writeLock); in UsbSerialDriverInit()
1392 ret = UsbSerialDeviceAlloc(acm); in UsbSerialDriverInit()
1397 acm->initFlag = false; in UsbSerialDriverInit()
1407 struct AcmDevice *acm = NULL; in UsbSerialDriverRelease() local
1413 acm = (struct AcmDevice *)device->service; in UsbSerialDriverRelease()
1414 if (acm == NULL) { in UsbSerialDriverRelease()
1421 if (acm->initFlag) { in UsbSerialDriverRelease()
1423 UsbSerialRelease(acm); in UsbSerialDriverRelease()
1425 UsbSeriaDevicelFree(acm); in UsbSerialDriverRelease()
1426 OsalMutexDestroy(&acm->writeLock); in UsbSerialDriverRelease()
1427 OsalMutexDestroy(&acm->readLock); in UsbSerialDriverRelease()
1428 OsalMutexDestroy(&acm->lock); in UsbSerialDriverRelease()
1429 OsalMemFree(acm); in UsbSerialDriverRelease()
1430 acm = NULL; in UsbSerialDriverRelease()