diff options
-rw-r--r-- | firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c | 10 |
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; |