Lines Matching refs:port
499 struct SerialDevice *port = NULL;
506 port = (struct SerialDevice *)OsalMemCalloc(sizeof(*port));
507 if (port == NULL) {
508 HDF_LOGE("%{public}s: Alloc usb serial port failed", __func__);
511 if (OsalMutexInit(&port->lock) != HDF_SUCCESS) {
513 OsalMemFree(port);
516 port->lineCoding.dwDTERate = CPU_TO_LE32(DATARATE);
517 port->lineCoding.bCharFormat = USB_CDC_1_STOP_BITS;
518 port->lineCoding.bParityType = USB_CDC_NO_PARITY;
519 port->lineCoding.bDataBits = DATA_BITS_LENGTH;
520 acm->lineCoding = port->lineCoding;
521 acm->port = port;
522 port->acm = acm;
529 struct SerialDevice *port = acm->port;
531 if (port == NULL) {
532 HDF_LOGE("%{public}s: port is null", __func__);
535 OsalMemFree(port);
536 port = NULL;
539 static int32_t UsbSerialRead(struct SerialDevice *port, struct HdfSBuf *reply)
541 struct AcmDevice *acm = port->acm;
554 if (DataFifoIsEmpty(&port->readFifo)) {
562 buf = (uint8_t *)OsalMemCalloc(DataFifoLen(&port->readFifo) + 1);
569 len = DataFifoRead(&port->readFifo, buf, DataFifoLen(&port->readFifo));
588 static int32_t SerialSetBaudrate(struct SerialDevice *port, const struct HdfSBuf *data)
590 struct AcmDevice *acm = port->acm;
597 port->lineCoding.dwDTERate = CPU_TO_LE32(baudRate);
598 if (memcmp(&acm->lineCoding, &port->lineCoding, sizeof(struct UsbCdcLineCoding))) {
600 memcpy_s(&acm->lineCoding, sizeof(struct UsbCdcLineCoding), &port->lineCoding, sizeof(port->lineCoding));
607 __func__, (port->lineCoding.dwDTERate), port->lineCoding.bCharFormat,
608 port->lineCoding.bParityType, port->lineCoding.bDataBits);
620 static int32_t SerialGetBaudrate(struct SerialDevice *port, struct HdfSBuf *reply)
622 uint32_t baudRate = LE32_TO_CPU(port->lineCoding.dwDTERate);
634 static int32_t SerialOpen(struct SerialDevice *port, struct HdfSBuf *data)
640 if ((port == NULL) || (data == NULL)) {
645 acm = port->acm;
667 ret = UsbSerialAllocFifo(&port->readFifo, READ_BUF_SIZE);
682 UsbSerialFreeFifo(&port->readFifo);
686 static int32_t SerialClose(struct SerialDevice *port, struct HdfSBuf *data)
690 if ((port == NULL) || (data == NULL)) {
695 if (port->acm == NULL) {
710 OsalMutexLock(&port->acm->readLock);
711 UsbSerialFreeFifo(&port->readFifo);
712 OsalMutexUnlock(&port->acm->readLock);
714 UsbSerialRelease(port->acm);
719 static int32_t SerialWrite(struct SerialDevice *port, struct HdfSBuf *data)
727 if (port == NULL) {
728 HDF_LOGE("%{public}s: port is null", __func__);
731 acm = port->acm;
794 static int32_t SerialWriteSync(const struct SerialDevice *port, const struct HdfSBuf *data)
802 if (port == NULL) {
806 acm = port->acm;
849 static int32_t UsbSerialReadSync(const struct SerialDevice *port, const struct HdfSBuf *reply)
853 struct AcmDevice *acm = port->acm;
905 static int32_t SerialAddOrRemoveInterface(int32_t cmd, const struct SerialDevice *port, const struct HdfSBuf *data)
908 (void)port;
918 struct SerialDevice *port = NULL;
936 port = acm->port;
937 if (port == NULL) {
942 return SerialOpen(port, data);
944 return SerialClose(port, data);
946 return SerialWrite(port, data);
948 return UsbSerialRead(port, reply);
950 return SerialGetBaudrate(port, reply);
952 return SerialSetBaudrate(port, data);
954 return SerialWriteSync(port, data);
956 return UsbSerialReadSync(port, reply);
959 return SerialAddOrRemoveInterface(cmd, port, data);
1124 if (acm == NULL || acm->port == NULL) {
1138 if (DataFifoIsFull(&acm->port->readFifo)) {
1139 DataFifoSkip(&acm->port->readFifo, size);
1141 uint32_t count = DataFifoWrite(&acm->port->readFifo, data, size);