summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c b/firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c
index 00c9c2b80d..5563a40814 100644
--- a/firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c
+++ b/firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c
@@ -393,12 +393,18 @@ static void tnetv_init_endpoints(void)
393 epCfg.val = tnetv_usb_reg_read(TNETV_USB_EPx_CFG(epn)); 393 epCfg.val = tnetv_usb_reg_read(TNETV_USB_EPx_CFG(epn));
394 epStartAddr.val = tnetv_usb_reg_read(TNETV_USB_EPx_ADR(epn)); 394 epStartAddr.val = tnetv_usb_reg_read(TNETV_USB_EPx_ADR(epn));
395 395
396 epCfg.f.in_dbl_buf = 1; 396 /* Linux kernel enables dbl buf for both IN and OUT.
397 * For IN this is problematic when tnetv_cppi_send() is called
398 * to send single ZLP, it will actually send two ZLPs.
399 * Disable the dbl buf here as datasheet is not available and
400 * this results in working mass storage on Windows 10.
401 */
402 epCfg.f.in_dbl_buf = 0;
397 epCfg.f.in_toggle_rst = 1; 403 epCfg.f.in_toggle_rst = 1;
398 epCfg.f.in_ack_int = 0; 404 epCfg.f.in_ack_int = 0;
399 epCfg.f.in_stall = 0; 405 epCfg.f.in_stall = 0;
400 epCfg.f.in_nak_int = 0; 406 epCfg.f.in_nak_int = 0;
401 epCfg.f.out_dbl_buf = 1; 407 epCfg.f.out_dbl_buf = 0;
402 epCfg.f.out_toggle_rst = 1; 408 epCfg.f.out_toggle_rst = 1;
403 epCfg.f.out_ack_int = 0; 409 epCfg.f.out_ack_int = 0;
404 epCfg.f.out_stall = 0; 410 epCfg.f.out_stall = 0;