usbds only set zlt on write
This commit is contained in:
@@ -293,12 +293,14 @@ Result UsbDs::WaitTransferCompletion(UsbSessionEndpoint ep, u64 timeout) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Result UsbDs::TransferAsync(UsbSessionEndpoint ep, void *buffer, u32 remaining, u32 size, u32 *out_urb_id) {
|
Result UsbDs::TransferAsync(UsbSessionEndpoint ep, void *buffer, u32 remaining, u32 size, u32 *out_urb_id) {
|
||||||
|
if (ep == UsbSessionEndpoint_In) {
|
||||||
if (remaining == size && !(size % (u32)m_max_packet_size)) {
|
if (remaining == size && !(size % (u32)m_max_packet_size)) {
|
||||||
log_write("[USBDS] SetZlt(true)\n");
|
log_write("[USBDS] SetZlt(true)\n");
|
||||||
R_TRY(usbDsEndpoint_SetZlt(m_endpoints[ep], true));
|
R_TRY(usbDsEndpoint_SetZlt(m_endpoints[ep], true));
|
||||||
} else {
|
} else {
|
||||||
R_TRY(usbDsEndpoint_SetZlt(m_endpoints[ep], false));
|
R_TRY(usbDsEndpoint_SetZlt(m_endpoints[ep], false));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return usbDsEndpoint_PostBufferAsync(m_endpoints[ep], buffer, size, out_urb_id);
|
return usbDsEndpoint_PostBufferAsync(m_endpoints[ep], buffer, size, out_urb_id);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user