Skip to content

Commit d5a5095

Browse files
MarkWangChinesenashif
authored andcommitted
drivers: usb: uhc: mcux: add data to buf only for IN transfer
After the transfer callback, add the received data to buf only for IN. Signed-off-by: Mark Wang <[email protected]>
1 parent d12279b commit d5a5095

File tree

4 files changed

+13
-17
lines changed

4 files changed

+13
-17
lines changed

drivers/usb/uhc/uhc_mcux_ehci.c

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -168,13 +168,12 @@ static void uhc_mcux_transfer_callback(void *param, usb_host_transfer_t *transfe
168168
uhc_mcux_nocache_free(transfer->setupPacket);
169169
}
170170
#endif
171-
if ((xfer->buf != NULL) && (transfer->transferBuffer != NULL)) {
172-
if (transfer->transferSofar > 0) {
171+
if ((xfer->buf != NULL) && (transfer->transferBuffer != NULL) &&
172+
USB_EP_DIR_IS_IN(xfer->ep) && (transfer->transferSofar > 0)) {
173173
#if defined(CONFIG_NOCACHE_MEMORY)
174-
memcpy(xfer->buf->__buf, transfer->transferBuffer, transfer->transferSofar);
174+
memcpy(xfer->buf->__buf, transfer->transferBuffer, transfer->transferSofar);
175175
#endif
176-
net_buf_add(xfer->buf, transfer->transferSofar);
177-
}
176+
net_buf_add(xfer->buf, transfer->transferSofar);
178177
#if defined(CONFIG_NOCACHE_MEMORY)
179178
uhc_mcux_nocache_free(transfer->transferBuffer);
180179
#endif

drivers/usb/uhc/uhc_mcux_ip3516hs.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,10 +138,9 @@ static void uhc_mcux_transfer_callback(void *param, usb_host_transfer_t *transfe
138138
}
139139
}
140140

141-
if ((xfer->buf != NULL) && (transfer->transferBuffer != NULL)) {
142-
if (transfer->transferSofar > 0) {
143-
net_buf_add(xfer->buf, transfer->transferSofar);
144-
}
141+
if ((xfer->buf != NULL) && (transfer->transferBuffer != NULL) &&
142+
USB_EP_DIR_IS_IN(xfer->ep) && (transfer->transferSofar > 0)) {
143+
net_buf_add(xfer->buf, transfer->transferSofar);
145144
}
146145

147146
transfer->setupPacket = NULL;

drivers/usb/uhc/uhc_mcux_khci.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,10 +124,9 @@ static void uhc_mcux_transfer_callback(void *param, usb_host_transfer_t *transfe
124124
}
125125
}
126126

127-
if ((xfer->buf != NULL) && (transfer->transferBuffer != NULL)) {
128-
if (transfer->transferSofar > 0) {
129-
net_buf_add(xfer->buf, transfer->transferSofar);
130-
}
127+
if ((xfer->buf != NULL) && (transfer->transferBuffer != NULL) &&
128+
USB_EP_DIR_IS_IN(xfer->ep) && (transfer->transferSofar > 0)) {
129+
net_buf_add(xfer->buf, transfer->transferSofar);
131130
}
132131

133132
transfer->setupPacket = NULL;

drivers/usb/uhc/uhc_mcux_ohci.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,10 +124,9 @@ static void uhc_mcux_transfer_callback(void *param, usb_host_transfer_t *transfe
124124
}
125125
}
126126

127-
if ((xfer->buf != NULL) && (transfer->transferBuffer != NULL)) {
128-
if (transfer->transferSofar > 0) {
129-
net_buf_add(xfer->buf, transfer->transferSofar);
130-
}
127+
if ((xfer->buf != NULL) && (transfer->transferBuffer != NULL) &&
128+
USB_EP_DIR_IS_IN(xfer->ep) && (transfer->transferSofar > 0)) {
129+
net_buf_add(xfer->buf, transfer->transferSofar);
131130
}
132131

133132
transfer->setupPacket = NULL;

0 commit comments

Comments
 (0)