* usb: dwc2: Re: Maximum packet size in dwc2 gadget HS mode < 1024 [not found] ` <52dc70dc-86e4-c47a-ae49-1f201b066b2e@ivitera.com> @ 2019-10-11 5:54 ` Minas Harutyunyan 2019-10-11 7:45 ` Minas Harutyunyan 0 siblings, 1 reply; 8+ messages in thread From: Minas Harutyunyan @ 2019-10-11 5:54 UTC (permalink / raw) To: Pavel Hofman; +Cc: linux-usb Hi Pavel, On 10/10/2019 8:36 PM, Pavel Hofman wrote: > I forgot version information - branch 5.3 > https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_raspberrypi_linux_tree_rpi-2D5.3.y_drivers_usb_dwc2&d=DwICBA&c=DPL6_X_6JkXFx7AXWqB0tg&r=cQBKt4q-qzNVC53rNAwuwplH23V61rHQhhULvdLA0U8&m=roVTrb8UpajEEelBpJicBEnDNjj4_Ee8-BPoSHmYa-8&s=6Ijfw31Oy-ep8P8YzooBpOpciF5CLCBeGj7iYuXzQMQ&e= > with latest version of > https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_torvalds_linux_blob_master_drivers_usb_dwc2_gadget.c&d=DwICBA&c=DPL6_X_6JkXFx7AXWqB0tg&r=cQBKt4q-qzNVC53rNAwuwplH23V61rHQhhULvdLA0U8&m=roVTrb8UpajEEelBpJicBEnDNjj4_Ee8-BPoSHmYa-8&s=eEEdIx-XNzSx7PzLmt5XYWeoRfeqyI1W5aZLt2GNSok&e= > (i.e. only a few patches behind upstream master). > > Dne 10. 10. 19 v 18:33 Pavel Hofman napsal(a): >> Dear Mr. Harutyunyan, >> >> I am turning to you as the core developer of the dwc2 driver in linux. >> I would like to ask you for help with debugging the following issue: >> >> I would like to improve the g_audio gadget for RaspberryPi4 (the >> gadget alsa device stalls when no USB communication occurs + a few >> other issues but this is not important now). >> >> EP IN works perfectly, I could pass audio 768kHz/3 bytes/3 channels >> which is the maximum for one endpoint (768/8 * 3 * 3 = 864 bytes every >> 125us frame) >> >> But for EP OUT, every g_audio configuration creating USB packet size > >> 900 bytes (approx) results in dwc2/gadget.c not passing any data to >> the audio function (req->actual is always zero). >> >> For interval=8 (bInterval = 4, i.e. data every 1ms): >> >> * 32kHz/1byte/28 channels = 896 bytes packet size -> working perfect, >> bitperfect transmission >> >> * 32kHz/1byte/29 channels = 928 bytes packet size -> no data passed to >> g_audio.c (dwc2_hsotg_handle_outdone() is never called in >> dwc2_hsotg_epint() >> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_torvalds_linux_blob_master_drivers_usb_dwc2_gadget.c-23L3039&d=DwICBA&c=DPL6_X_6JkXFx7AXWqB0tg&r=cQBKt4q-qzNVC53rNAwuwplH23V61rHQhhULvdLA0U8&m=roVTrb8UpajEEelBpJicBEnDNjj4_Ee8-BPoSHmYa-8&s=wMRtUtO5zFAK062HmVWxGAVxbpX9h9wlpzJaQU_URkg&e= >> ) >> >> I tried for different packet sizes, every setup below 900 bytes works, >> every setup above 900 bytes does not work. >> >> Tested with host x86 linux PC and USB loopback on the same RPi (from >> the other USB onboard controller), exactly same behavior for both hosts. >> >> It looks as if the DWC2 considers all isochronous packets with size > >> 900 bytes as incomplete. I do not have a hardware USB analyzer, but >> wireshark on the host PC shows the packets are properly passed to the >> USB controller in linux. >> >> >> I found a DWC2 datasheet at >> https://urldefense.proofpoint.com/v2/url?u=https-3A__www.intel.com_content_www_us_en_programmable_documentation_sfo1410144425160.html&d=DwICBA&c=DPL6_X_6JkXFx7AXWqB0tg&r=cQBKt4q-qzNVC53rNAwuwplH23V61rHQhhULvdLA0U8&m=roVTrb8UpajEEelBpJicBEnDNjj4_Ee8-BPoSHmYa-8&s=bHXds7A-CT3K5jg2C8JX8Gvcl2Yy-ojtuLM5Z4AkrFc&e= >> . >> >> I can provide any debugging information, debugfs of the dwc2 module, >> kernel dynamic debug traces etc. >> >> RPi4 would make a great audio device if the gadget mode worked >> reliably. I can fix/code the alsa device issues, but USB core is above >> my skills. >> >> Thank you very much in advance. >> >> Best regards, >> >> Pavel Hofman. First of all I'll prefer communicate via Linux-usb mailing list <linux-usb@vger.kernel.org>. Let's keep this mailing list address in CC. And one more thing, keep on the beginning of subject follow string: "usb: dwc2: " Thank you for your email. I'll dedicate time on the next week to debug your case. Thanks, Minas ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: usb: dwc2: Re: Maximum packet size in dwc2 gadget HS mode < 1024 2019-10-11 5:54 ` usb: dwc2: Re: Maximum packet size in dwc2 gadget HS mode < 1024 Minas Harutyunyan @ 2019-10-11 7:45 ` Minas Harutyunyan 2019-10-13 18:39 ` Pavel Hofman 0 siblings, 1 reply; 8+ messages in thread From: Minas Harutyunyan @ 2019-10-11 7:45 UTC (permalink / raw) To: Minas Harutyunyan, Pavel Hofman; +Cc: linux-usb Hi Pavel, On 10/11/2019 9:54 AM, Minas Harutyunyan wrote: > Hi Pavel, > > On 10/10/2019 8:36 PM, Pavel Hofman wrote: >> I forgot version information - branch 5.3 >> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_raspberrypi_linux_tree_rpi-2D5.3.y_drivers_usb_dwc2&d=DwICBA&c=DPL6_X_6JkXFx7AXWqB0tg&r=cQBKt4q-qzNVC53rNAwuwplH23V61rHQhhULvdLA0U8&m=roVTrb8UpajEEelBpJicBEnDNjj4_Ee8-BPoSHmYa-8&s=6Ijfw31Oy-ep8P8YzooBpOpciF5CLCBeGj7iYuXzQMQ&e= >> with latest version of >> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_torvalds_linux_blob_master_drivers_usb_dwc2_gadget.c&d=DwICBA&c=DPL6_X_6JkXFx7AXWqB0tg&r=cQBKt4q-qzNVC53rNAwuwplH23V61rHQhhULvdLA0U8&m=roVTrb8UpajEEelBpJicBEnDNjj4_Ee8-BPoSHmYa-8&s=eEEdIx-XNzSx7PzLmt5XYWeoRfeqyI1W5aZLt2GNSok&e= >> (i.e. only a few patches behind upstream master). >> >> Dne 10. 10. 19 v 18:33 Pavel Hofman napsal(a): >>> Dear Mr. Harutyunyan, >>> >>> I am turning to you as the core developer of the dwc2 driver in linux. >>> I would like to ask you for help with debugging the following issue: >>> >>> I would like to improve the g_audio gadget for RaspberryPi4 (the >>> gadget alsa device stalls when no USB communication occurs + a few >>> other issues but this is not important now). >>> >>> EP IN works perfectly, I could pass audio 768kHz/3 bytes/3 channels >>> which is the maximum for one endpoint (768/8 * 3 * 3 = 864 bytes every >>> 125us frame) >>> >>> But for EP OUT, every g_audio configuration creating USB packet size > >>> 900 bytes (approx) results in dwc2/gadget.c not passing any data to >>> the audio function (req->actual is always zero). >>> >>> For interval=8 (bInterval = 4, i.e. data every 1ms): >>> >>> * 32kHz/1byte/28 channels = 896 bytes packet size -> working perfect, >>> bitperfect transmission >>> >>> * 32kHz/1byte/29 channels = 928 bytes packet size -> no data passed to >>> g_audio.c (dwc2_hsotg_handle_outdone() is never called in >>> dwc2_hsotg_epint() >>> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_torvalds_linux_blob_master_drivers_usb_dwc2_gadget.c-23L3039&d=DwICBA&c=DPL6_X_6JkXFx7AXWqB0tg&r=cQBKt4q-qzNVC53rNAwuwplH23V61rHQhhULvdLA0U8&m=roVTrb8UpajEEelBpJicBEnDNjj4_Ee8-BPoSHmYa-8&s=wMRtUtO5zFAK062HmVWxGAVxbpX9h9wlpzJaQU_URkg&e= >>> ) >>> >>> I tried for different packet sizes, every setup below 900 bytes works, >>> every setup above 900 bytes does not work. >>> >>> Tested with host x86 linux PC and USB loopback on the same RPi (from >>> the other USB onboard controller), exactly same behavior for both hosts. >>> >>> It looks as if the DWC2 considers all isochronous packets with size > >>> 900 bytes as incomplete. I do not have a hardware USB analyzer, but >>> wireshark on the host PC shows the packets are properly passed to the >>> USB controller in linux. >>> >>> >>> I found a DWC2 datasheet at >>> https://urldefense.proofpoint.com/v2/url?u=https-3A__www.intel.com_content_www_us_en_programmable_documentation_sfo1410144425160.html&d=DwICBA&c=DPL6_X_6JkXFx7AXWqB0tg&r=cQBKt4q-qzNVC53rNAwuwplH23V61rHQhhULvdLA0U8&m=roVTrb8UpajEEelBpJicBEnDNjj4_Ee8-BPoSHmYa-8&s=bHXds7A-CT3K5jg2C8JX8Gvcl2Yy-ojtuLM5Z4AkrFc&e= >>> . >>> >>> I can provide any debugging information, debugfs of the dwc2 module, >>> kernel dynamic debug traces etc. >>> >>> RPi4 would make a great audio device if the gadget mode worked >>> reliably. I can fix/code the alsa device issues, but USB core is above >>> my skills. >>> >>> Thank you very much in advance. >>> >>> Best regards, >>> >>> Pavel Hofman. > > First of all I'll prefer communicate via Linux-usb mailing list > <linux-usb@vger.kernel.org>. Let's keep this mailing list address in CC. > And one more thing, keep on the beginning of subject follow string: > "usb: dwc2:" > > Thank you for your email. I'll dedicate time on the next week to debug > your case. > > Thanks, > Minas > Could you please send regdump and debug log for failing case. Thanks, Minas ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Re: usb: dwc2: Re: Maximum packet size in dwc2 gadget HS mode < 1024 2019-10-11 7:45 ` Minas Harutyunyan @ 2019-10-13 18:39 ` Pavel Hofman 2019-10-24 6:33 ` Pavel Hofman 0 siblings, 1 reply; 8+ messages in thread From: Pavel Hofman @ 2019-10-13 18:39 UTC (permalink / raw) To: linux-usb, Minas Harutyunyan [-- Attachment #1: Type: text/plain, Size: 1501 bytes --] Hi Minas Dne 11. 10. 19 v 9:45 Minas Harutyunyan napsal(a): > Hi Pavel, > >> > Could you please send regdump and debug log for failing case. > Thanks a lot for your reply. Attaching regdump-960bytes.txt for 32kHz/16b/15ch both playback and capture, bInterval=4 in https://github.com/torvalds/linux/blob/master/drivers/usb/gadget/function/f_uac2.c#L287 => 960 bytes packet size every 1ms. This mode does not work for EP OUT (host playback -> gadget -> RPi capture) Also attaching regdmp-896bytes.txt for 32kHz/16b/14ch which works OK, bitperfect transmission. For debug - I enabled this: file gadget.c +p;file u_audio.c +p; file f_uac2.h +p debug-960bytes.txt - not working: Every 8 packets: [ 2037.700760] dwc2 fe980000.usb: dwc2_hsotg_epint: ep1(out) DxEPINT=0x00000002 [ 2037.700765] dwc2 fe980000.usb: dwc2_gadget_handle_ep_disabled: EPDisbld [ 2037.700773] dwc2 fe980000.usb: complete: ep ba4d666f ep1out, req c55e9e44, -61 => 28ac9e7b [ 2037.700780] u_audio_iso_complete: iso_complete status(-61) 0/960 debug-896bytes.txt - working OK: EPDisbld is not every 8 packets, sometimes I see: 2298.501983] dwc2 fe980000.usb: dwc2_hsotg_epint: ep1(out) DxEPINT=0x00000002 [ 2298.501996] dwc2 fe980000.usb: complete: ep 76ae3eae ep1out, req 6bae385d, -61 => 8ea32601 [ 2298.502001] u_audio_iso_complete: iso_complete status(-61) 0/896 [ 2298.502009] dwc2 fe980000.usb: ep1out: req 6bae385d: 896@68e9d579, noi=0, zero=0, snok=0 Thank you for your help. Best regards, Pavel. [-- Attachment #2: debug-896bytes.txt --] [-- Type: text/plain, Size: 6399 bytes --] [ 2298.499997] u_audio_iso_complete: iso_complete status(-61) 0/896 [ 2298.500004] dwc2 fe980000.usb: ep1out: req 6bae385d: 896@68e9d579, noi=0, zero=0, snok=0 [ 2298.500011] dwc2 fe980000.usb: dwc2_hsotg_start_req: DxEPCTL=0x00068380, ep 1, dir out [ 2298.500015] dwc2 fe980000.usb: ureq->length:896 ureq->actual:0 [ 2298.500021] dwc2 fe980000.usb: dwc2_hsotg_start_req: 1@896/896, 0x00080380 => 0x00000b30 [ 2298.500026] dwc2 fe980000.usb: dwc2_hsotg_start_req: 0x00000000d4c6b380 => 0x00000b34 [ 2298.500030] dwc2 fe980000.usb: ep0 state:0 [ 2298.500034] dwc2 fe980000.usb: dwc2_hsotg_start_req: DxEPCTL=0x84068380 [ 2298.500039] dwc2 fe980000.usb: dwc2_hsotg_start_req: DXEPCTL=0x80048380 [ 2298.500198] dwc2 fe980000.usb: dwc2_hsotg_irq: 04208028 00200000 (d0bc3c44) retry 8 [ 2298.500203] dwc2 fe980000.usb: dwc2_gadget_handle_incomplete_isoc_out: GINTSTS_INCOMPL_SOOUT [ 2298.500449] dwc2 fe980000.usb: dwc2_hsotg_irq: 04208028 00200000 (d0bc3c44) retry 8 [ 2298.500453] dwc2 fe980000.usb: dwc2_gadget_handle_incomplete_isoc_out: GINTSTS_INCOMPL_SOOUT [ 2298.500698] dwc2 fe980000.usb: dwc2_hsotg_irq: 04208028 00200000 (d0bc3c44) retry 8 [ 2298.500703] dwc2 fe980000.usb: dwc2_gadget_handle_incomplete_isoc_out: GINTSTS_INCOMPL_SOOUT [ 2298.500949] dwc2 fe980000.usb: dwc2_hsotg_irq: 04208028 00200000 (d0bc3c44) retry 8 [ 2298.500953] dwc2 fe980000.usb: dwc2_gadget_handle_incomplete_isoc_out: GINTSTS_INCOMPL_SOOUT [ 2298.500962] dwc2 fe980000.usb: dwc2_hsotg_irq: 040080a8 00000080 (d0bc3cc4) retry 8 [ 2298.500966] dwc2 fe980000.usb: GOUTNakEff triggered [ 2298.500973] dwc2 fe980000.usb: dwc2_hsotg_irq: 040880a8 00080000 (d0bc3c44) retry 8 [ 2298.500978] dwc2 fe980000.usb: dwc2_hsotg_irq: daint=00020000 [ 2298.500983] dwc2 fe980000.usb: dwc2_hsotg_epint: ep1(out) DxEPINT=0x00000002 [ 2298.500988] dwc2 fe980000.usb: dwc2_gadget_handle_ep_disabled: EPDisbld [ 2298.500995] dwc2 fe980000.usb: complete: ep 76ae3eae ep1out, req c4380602, -61 => 8ea32601 [ 2298.501001] u_audio_iso_complete: iso_complete status(-61) 0/896 [ 2298.501009] dwc2 fe980000.usb: ep1out: req c4380602: 896@44f9c05a, noi=0, zero=0, snok=0 [ 2298.501016] dwc2 fe980000.usb: dwc2_hsotg_start_req: DxEPCTL=0x00068380, ep 1, dir out [ 2298.501020] dwc2 fe980000.usb: ureq->length:896 ureq->actual:0 [ 2298.501026] dwc2 fe980000.usb: dwc2_hsotg_start_req: 1@896/896, 0x00080380 => 0x00000b30 [ 2298.501031] dwc2 fe980000.usb: dwc2_hsotg_start_req: 0x00000000d4c6b000 => 0x00000b34 [ 2298.501035] dwc2 fe980000.usb: ep0 state:0 [ 2298.501039] dwc2 fe980000.usb: dwc2_hsotg_start_req: DxEPCTL=0x84068380 [ 2298.501044] dwc2 fe980000.usb: dwc2_hsotg_start_req: DXEPCTL=0x80048380 [ 2298.501198] dwc2 fe980000.usb: dwc2_hsotg_irq: 04208028 00200000 (d0bc3c44) retry 8 [ 2298.501203] dwc2 fe980000.usb: dwc2_gadget_handle_incomplete_isoc_out: GINTSTS_INCOMPL_SOOUT [ 2298.501448] dwc2 fe980000.usb: dwc2_hsotg_irq: 04208028 00200000 (d0bc3c44) retry 8 [ 2298.501452] dwc2 fe980000.usb: dwc2_gadget_handle_incomplete_isoc_out: GINTSTS_INCOMPL_SOOUT [ 2298.501698] dwc2 fe980000.usb: dwc2_hsotg_irq: 04208028 00200000 (d0bc3c44) retry 8 [ 2298.501703] dwc2 fe980000.usb: dwc2_gadget_handle_incomplete_isoc_out: GINTSTS_INCOMPL_SOOUT [ 2298.501948] dwc2 fe980000.usb: dwc2_hsotg_irq: 04208028 00200000 (d0bc3c44) retry 8 [ 2298.501953] dwc2 fe980000.usb: dwc2_gadget_handle_incomplete_isoc_out: GINTSTS_INCOMPL_SOOUT [ 2298.501961] dwc2 fe980000.usb: dwc2_hsotg_irq: 040080a8 00000080 (d0bc3cc4) retry 8 [ 2298.501965] dwc2 fe980000.usb: GOUTNakEff triggered [ 2298.501972] dwc2 fe980000.usb: dwc2_hsotg_irq: 040880a8 00080000 (d0bc3c44) retry 8 [ 2298.501977] dwc2 fe980000.usb: dwc2_hsotg_irq: daint=00020000 [ 2298.501983] dwc2 fe980000.usb: dwc2_hsotg_epint: ep1(out) DxEPINT=0x00000002 [ 2298.501996] dwc2 fe980000.usb: complete: ep 76ae3eae ep1out, req 6bae385d, -61 => 8ea32601 [ 2298.502001] u_audio_iso_complete: iso_complete status(-61) 0/896 [ 2298.502009] dwc2 fe980000.usb: ep1out: req 6bae385d: 896@68e9d579, noi=0, zero=0, snok=0 [ 2298.502015] dwc2 fe980000.usb: dwc2_hsotg_start_req: DxEPCTL=0x00068380, ep 1, dir out [ 2298.502020] dwc2 fe980000.usb: ureq->length:896 ureq->actual:0 [ 2298.502025] dwc2 fe980000.usb: dwc2_hsotg_start_req: 1@896/896, 0x00080380 => 0x00000b30 [ 2298.502030] dwc2 fe980000.usb: dwc2_hsotg_start_req: 0x00000000d4c6b380 => 0x00000b34 [ 2298.502034] dwc2 fe980000.usb: ep0 state:0 [ 2298.502039] dwc2 fe980000.usb: dwc2_hsotg_start_req: DxEPCTL=0x84068380 [ 2298.502043] dwc2 fe980000.usb: dwc2_hsotg_start_req: DXEPCTL=0x80048380 [ 2298.502198] dwc2 fe980000.usb: dwc2_hsotg_irq: 04208028 00200000 (d0bc3c44) retry 8 [ 2298.502203] dwc2 fe980000.usb: dwc2_gadget_handle_incomplete_isoc_out: GINTSTS_INCOMPL_SOOUT [ 2298.502449] dwc2 fe980000.usb: dwc2_hsotg_irq: 04208028 00200000 (d0bc3c44) retry 8 [ 2298.502454] dwc2 fe980000.usb: dwc2_gadget_handle_incomplete_isoc_out: GINTSTS_INCOMPL_SOOUT [ 2298.502699] dwc2 fe980000.usb: dwc2_hsotg_irq: 04208028 00200000 (d0bc3c44) retry 8 [ 2298.502703] dwc2 fe980000.usb: dwc2_gadget_handle_incomplete_isoc_out: GINTSTS_INCOMPL_SOOUT [ 2298.502948] dwc2 fe980000.usb: dwc2_hsotg_irq: 04208028 00200000 (d0bc3c44) retry 8 [ 2298.502952] dwc2 fe980000.usb: dwc2_gadget_handle_incomplete_isoc_out: GINTSTS_INCOMPL_SOOUT [ 2298.502960] dwc2 fe980000.usb: dwc2_hsotg_irq: 040080a8 00000080 (d0bc3cc4) retry 8 [ 2298.502964] dwc2 fe980000.usb: GOUTNakEff triggered [ 2298.502993] dwc2 fe980000.usb: complete: ep 76ae3eae ep1out, req c4380602, -61 => 8ea32601 [ 2298.502999] u_audio_iso_complete: iso_complete status(-61) 0/896 [ 2298.503006] dwc2 fe980000.usb: ep1out: req c4380602: 896@44f9c05a, noi=0, zero=0, snok=0 [ 2298.503012] dwc2 fe980000.usb: dwc2_hsotg_start_req: DxEPCTL=0x00068380, ep 1, dir out [ 2298.503017] dwc2 fe980000.usb: ureq->length:896 ureq->actual:0 [ 2298.503022] dwc2 fe980000.usb: dwc2_hsotg_start_req: 1@896/896, 0x00080380 => 0x00000b30 [ 2298.503027] dwc2 fe980000.usb: dwc2_hsotg_start_req: 0x00000000d4c6b000 => 0x00000b34 [ 2298.503031] dwc2 fe980000.usb: ep0 state:0 [ 2298.503035] dwc2 fe980000.usb: dwc2_hsotg_start_req: DxEPCTL=0x84068380 [ 2298.503039] dwc2 fe980000.usb: dwc2_hsotg_start_req: DXEPCTL=0x80048380 [ 2298.503198] dwc2 fe980000.usb: dwc2_hsotg_irq: 04208028 00200000 (d0bc3c44) retry 8 [ 2298.503203] dwc2 fe980000.usb: dwc2_gadget_handle_incomplete_isoc_out: GINTSTS_INCOMPL_SOOUT [-- Attachment #3: debug-960bytes.txt --] [-- Type: text/plain, Size: 6401 bytes --] 2037.699774] u_audio_iso_complete: iso_complete status(-61) 0/960 [ 2037.699781] dwc2 fe980000.usb: ep1out: req 73ddf3c0: 960@2706e743, noi=0, zero=0, snok=0 [ 2037.699789] dwc2 fe980000.usb: dwc2_hsotg_start_req: DxEPCTL=0x000683c0, ep 1, dir out [ 2037.699796] dwc2 fe980000.usb: ureq->length:960 ureq->actual:0 [ 2037.699801] dwc2 fe980000.usb: dwc2_hsotg_start_req: 1@960/960, 0x000803c0 => 0x00000b30 [ 2037.699806] dwc2 fe980000.usb: dwc2_hsotg_start_req: 0x00000000d66e3800 => 0x00000b34 [ 2037.699811] dwc2 fe980000.usb: ep0 state:0 [ 2037.699817] dwc2 fe980000.usb: dwc2_hsotg_start_req: DxEPCTL=0x840683c0 [ 2037.699821] dwc2 fe980000.usb: dwc2_hsotg_start_req: DXEPCTL=0x800483c0 [ 2037.699968] dwc2 fe980000.usb: dwc2_hsotg_irq: 0420c02a 00200000 (d0bc3c44) retry 8 [ 2037.699975] dwc2 fe980000.usb: dwc2_gadget_handle_incomplete_isoc_out: GINTSTS_INCOMPL_SOOUT [ 2037.700217] dwc2 fe980000.usb: dwc2_hsotg_irq: 0420c02a 00200000 (d0bc3c44) retry 8 [ 2037.700221] dwc2 fe980000.usb: dwc2_gadget_handle_incomplete_isoc_out: GINTSTS_INCOMPL_SOOUT [ 2037.700470] dwc2 fe980000.usb: dwc2_hsotg_irq: 0420c02a 00200000 (d0bc3c44) retry 8 [ 2037.700477] dwc2 fe980000.usb: dwc2_gadget_handle_incomplete_isoc_out: GINTSTS_INCOMPL_SOOUT [ 2037.700718] dwc2 fe980000.usb: dwc2_hsotg_irq: 0420c02a 00200000 (d0bc3c44) retry 8 [ 2037.700722] dwc2 fe980000.usb: dwc2_gadget_handle_incomplete_isoc_out: GINTSTS_INCOMPL_SOOUT [ 2037.700734] dwc2 fe980000.usb: dwc2_hsotg_irq: 0400c0aa 00000080 (d0bc3cc4) retry 8 [ 2037.700738] dwc2 fe980000.usb: GOUTNakEff triggered [ 2037.700748] dwc2 fe980000.usb: dwc2_hsotg_irq: 0408c0aa 00080000 (d0bc3c44) retry 8 [ 2037.700754] dwc2 fe980000.usb: dwc2_hsotg_irq: daint=00020000 [ 2037.700760] dwc2 fe980000.usb: dwc2_hsotg_epint: ep1(out) DxEPINT=0x00000002 [ 2037.700765] dwc2 fe980000.usb: dwc2_gadget_handle_ep_disabled: EPDisbld [ 2037.700773] dwc2 fe980000.usb: complete: ep ba4d666f ep1out, req c55e9e44, -61 => 28ac9e7b [ 2037.700780] u_audio_iso_complete: iso_complete status(-61) 0/960 [ 2037.700788] dwc2 fe980000.usb: ep1out: req c55e9e44: 960@04b142de, noi=0, zero=0, snok=0 [ 2037.700794] dwc2 fe980000.usb: dwc2_hsotg_start_req: DxEPCTL=0x000683c0, ep 1, dir out [ 2037.700801] dwc2 fe980000.usb: ureq->length:960 ureq->actual:0 [ 2037.700807] dwc2 fe980000.usb: dwc2_hsotg_start_req: 1@960/960, 0x000803c0 => 0x00000b30 [ 2037.700812] dwc2 fe980000.usb: dwc2_hsotg_start_req: 0x00000000d66e3bc0 => 0x00000b34 [ 2037.700816] dwc2 fe980000.usb: ep0 state:0 [ 2037.700821] dwc2 fe980000.usb: dwc2_hsotg_start_req: DxEPCTL=0x840683c0 [ 2037.700827] dwc2 fe980000.usb: dwc2_hsotg_start_req: DXEPCTL=0x800483c0 [ 2037.700970] dwc2 fe980000.usb: dwc2_hsotg_irq: 0420c02a 00200000 (d0bc3c44) retry 8 [ 2037.700974] dwc2 fe980000.usb: dwc2_gadget_handle_incomplete_isoc_out: GINTSTS_INCOMPL_SOOUT [ 2037.701218] dwc2 fe980000.usb: dwc2_hsotg_irq: 0420c02a 00200000 (d0bc3c44) retry 8 [ 2037.701223] dwc2 fe980000.usb: dwc2_gadget_handle_incomplete_isoc_out: GINTSTS_INCOMPL_SOOUT [ 2037.701469] dwc2 fe980000.usb: dwc2_hsotg_irq: 0420c02a 00200000 (d0bc3c44) retry 8 [ 2037.701473] dwc2 fe980000.usb: dwc2_gadget_handle_incomplete_isoc_out: GINTSTS_INCOMPL_SOOUT [ 2037.701718] dwc2 fe980000.usb: dwc2_hsotg_irq: 0420c02a 00200000 (d0bc3c44) retry 8 [ 2037.701723] dwc2 fe980000.usb: dwc2_gadget_handle_incomplete_isoc_out: GINTSTS_INCOMPL_SOOUT [ 2037.701734] dwc2 fe980000.usb: dwc2_hsotg_irq: 0400c0aa 00000080 (d0bc3cc4) retry 8 [ 2037.701738] dwc2 fe980000.usb: GOUTNakEff triggered [ 2037.701745] dwc2 fe980000.usb: dwc2_hsotg_irq: 0408c0aa 00080000 (d0bc3c44) retry 8 [ 2037.701750] dwc2 fe980000.usb: dwc2_hsotg_irq: daint=00020000 [ 2037.701755] dwc2 fe980000.usb: dwc2_hsotg_epint: ep1(out) DxEPINT=0x00000002 [ 2037.701761] dwc2 fe980000.usb: dwc2_gadget_handle_ep_disabled: EPDisbld [ 2037.701768] dwc2 fe980000.usb: complete: ep ba4d666f ep1out, req 73ddf3c0, -61 => 28ac9e7b [ 2037.701774] u_audio_iso_complete: iso_complete status(-61) 0/960 [ 2037.701780] dwc2 fe980000.usb: ep1out: req 73ddf3c0: 960@2706e743, noi=0, zero=0, snok=0 [ 2037.701788] dwc2 fe980000.usb: dwc2_hsotg_start_req: DxEPCTL=0x000683c0, ep 1, dir out [ 2037.701792] dwc2 fe980000.usb: ureq->length:960 ureq->actual:0 [ 2037.701798] dwc2 fe980000.usb: dwc2_hsotg_start_req: 1@960/960, 0x000803c0 => 0x00000b30 [ 2037.701803] dwc2 fe980000.usb: dwc2_hsotg_start_req: 0x00000000d66e3800 => 0x00000b34 [ 2037.701807] dwc2 fe980000.usb: ep0 state:0 [ 2037.701813] dwc2 fe980000.usb: dwc2_hsotg_start_req: DxEPCTL=0x840683c0 [ 2037.701817] dwc2 fe980000.usb: dwc2_hsotg_start_req: DXEPCTL=0x800483c0 [ 2037.701968] dwc2 fe980000.usb: dwc2_hsotg_irq: 0420c02a 00200000 (d0bc3c44) retry 8 [ 2037.701974] dwc2 fe980000.usb: dwc2_gadget_handle_incomplete_isoc_out: GINTSTS_INCOMPL_SOOUT [ 2037.702218] dwc2 fe980000.usb: dwc2_hsotg_irq: 0420c02a 00200000 (d0bc3c44) retry 8 [ 2037.702223] dwc2 fe980000.usb: dwc2_gadget_handle_incomplete_isoc_out: GINTSTS_INCOMPL_SOOUT [ 2037.702468] dwc2 fe980000.usb: dwc2_hsotg_irq: 0420c02a 00200000 (d0bc3c44) retry 8 [ 2037.702473] dwc2 fe980000.usb: dwc2_gadget_handle_incomplete_isoc_out: GINTSTS_INCOMPL_SOOUT [ 2037.702719] dwc2 fe980000.usb: dwc2_hsotg_irq: 0420c02a 00200000 (d0bc3c44) retry 8 [ 2037.702725] dwc2 fe980000.usb: dwc2_gadget_handle_incomplete_isoc_out: GINTSTS_INCOMPL_SOOUT [ 2037.702733] dwc2 fe980000.usb: dwc2_hsotg_irq: 0400c0aa 00000080 (d0bc3cc4) retry 8 [ 2037.702737] dwc2 fe980000.usb: GOUTNakEff triggered [ 2037.702745] dwc2 fe980000.usb: dwc2_hsotg_irq: 0408c0aa 00080000 (d0bc3c44) retry 8 [ 2037.702751] dwc2 fe980000.usb: dwc2_hsotg_irq: daint=00020000 [ 2037.702756] dwc2 fe980000.usb: dwc2_hsotg_epint: ep1(out) DxEPINT=0x00000002 [ 2037.702761] dwc2 fe980000.usb: dwc2_gadget_handle_ep_disabled: EPDisbld [ 2037.702767] dwc2 fe980000.usb: complete: ep ba4d666f ep1out, req c55e9e44, -61 => 28ac9e7b [ 2037.702773] u_audio_iso_complete: iso_complete status(-61) 0/960 [ 2037.702779] dwc2 fe980000.usb: ep1out: req c55e9e44: 960@04b142de, noi=0, zero=0, snok=0 [ 2037.702786] dwc2 fe980000.usb: dwc2_hsotg_start_req: DxEPCTL=0x000683c0, ep 1, dir out [ 2037.702791] dwc2 fe980000.usb: ureq->length:960 ureq->actual:0 [ 2037.702796] dwc2 fe980000.usb: dwc2_hsotg_start_req: 1@960/960, 0x000803c0 => 0x00000b30 [ 2037.702801] dwc2 fe980000.usb: dwc2_hsotg_start_req: 0x00000000d66e3bc0 => 0x00000b34 [-- Attachment #4: regdump-896bytes.txt --] [-- Type: text/plain, Size: 7526 bytes --] GOTGCTL = 0x000d0000 GOTGINT = 0x00000000 GAHBCFG = 0x00000031 GUSBCFG = 0x00001400 GRSTCTL = 0x80000180 GINTSTS = 0x04008028 GINTMSK = 0xd0bc3c44 GRXSTSR = 0x6151a7d3 GRXFSIZ = 0x00000100 GNPTXFSIZ = 0x00200100 GNPTXSTS = 0x00080020 GI2CCTL = 0x00000000 GPVNDCTL = 0x00000000 GGPIO = 0x00000000 GUID = 0x2708a000 GSNPSID = 0x4f54280a GHWCFG1 = 0x00000000 GHWCFG2 = 0x228ddd50 GHWCFG3 = 0x0ff000e8 GHWCFG4 = 0x1ff00020 GLPMCFG = 0x75736230 GPWRDN = 0x00000000 GDFIFOCFG = 0x00000000 ADPCTL = 0x00000000 HPTXFSIZ = 0x01000c20 DPTXFSIZN(1) = 0x02000120 DPTXFSIZN(2) = 0x02000320 DPTXFSIZN(3) = 0x02000520 DPTXFSIZN(4) = 0x02000720 DPTXFSIZN(5) = 0x02000920 DPTXFSIZN(6) = 0x01000b20 DPTXFSIZN(7) = 0x01000c20 DPTXFSIZN(8) = 0x01000c20 DPTXFSIZN(9) = 0x02000120 DPTXFSIZN(10) = 0x02000320 DPTXFSIZN(11) = 0x02000520 DPTXFSIZN(12) = 0x02000720 DPTXFSIZN(13) = 0x02000920 DPTXFSIZN(14) = 0x01000b20 DPTXFSIZN(15) = 0x01000c20 DCFG = 0x04040120 DCTL = 0x00000000 DSTS = 0x0011ba00 DIEPMSK = 0x0000200f DOEPMSK = 0x0000000f DAINT = 0x00000000 DAINTMSK = 0x00030001 DTKNQR1 = 0x00000000 DTKNQR2 = 0x00000000 DTKNQR3 = 0x0c100020 DTKNQR4 = 0x00000000 DVBUSDIS = 0x000017d7 DVBUSPULSE = 0x000005b8 DIEPCTL(0) = 0x00008000 DIEPCTL(1) = 0x01860380 DIEPCTL(2) = 0x00000400 DIEPCTL(3) = 0x00000400 DIEPCTL(4) = 0x00000400 DIEPCTL(5) = 0x00000400 DIEPCTL(6) = 0x00000400 DIEPCTL(7) = 0x00000400 DIEPCTL(8) = 0x00000400 DIEPCTL(9) = 0x00000400 DIEPCTL(10) = 0x00000400 DIEPCTL(11) = 0x00000400 DIEPCTL(12) = 0x00000400 DIEPCTL(13) = 0x00000400 DIEPCTL(14) = 0x00000400 DIEPCTL(15) = 0x00000400 DOEPCTL(0) = 0x80028000 DOEPCTL(1) = 0x80048380 DOEPCTL(2) = 0x00000400 DOEPCTL(3) = 0x00000400 DOEPCTL(4) = 0x00000400 DOEPCTL(5) = 0x00000400 DOEPCTL(6) = 0x00000400 DOEPCTL(7) = 0x00000400 DOEPCTL(8) = 0x00000400 DOEPCTL(9) = 0x00000400 DOEPCTL(10) = 0x00000400 DOEPCTL(11) = 0x00000400 DOEPCTL(12) = 0x00000400 DOEPCTL(13) = 0x00000400 DOEPCTL(14) = 0x00000400 DOEPCTL(15) = 0x00000400 DIEPINT(0) = 0x000000d0 DIEPINT(1) = 0x00000000 DIEPINT(2) = 0x00000080 DIEPINT(3) = 0x00000080 DIEPINT(4) = 0x00000080 DIEPINT(5) = 0x00000080 DIEPINT(6) = 0x00000080 DIEPINT(7) = 0x00000080 DIEPINT(8) = 0x00000080 DIEPINT(9) = 0x00000080 DIEPINT(10) = 0x00000080 DIEPINT(11) = 0x00000080 DIEPINT(12) = 0x00000080 DIEPINT(13) = 0x00000080 DIEPINT(14) = 0x00000080 DIEPINT(15) = 0x00000080 DOEPINT(0) = 0x00002000 DOEPINT(1) = 0x00002000 DOEPINT(2) = 0x00000000 DOEPINT(3) = 0x00000000 DOEPINT(4) = 0x00000000 DOEPINT(5) = 0x00000000 DOEPINT(6) = 0x00000000 DOEPINT(7) = 0x00000000 DOEPINT(8) = 0x00000000 DOEPINT(9) = 0x00000000 DOEPINT(10) = 0x00000000 DOEPINT(11) = 0x00000000 DOEPINT(12) = 0x00000000 DOEPINT(13) = 0x00000000 DOEPINT(14) = 0x00000000 DOEPINT(15) = 0x00000000 DIEPTSIZ(0) = 0x00000000 DIEPTSIZ(1) = 0x00000000 DIEPTSIZ(2) = 0x00000000 DIEPTSIZ(3) = 0x00000000 DIEPTSIZ(4) = 0x00000000 DIEPTSIZ(5) = 0x00000000 DIEPTSIZ(6) = 0x00000000 DIEPTSIZ(7) = 0x00000000 DIEPTSIZ(8) = 0x00000000 DIEPTSIZ(9) = 0x00000000 DIEPTSIZ(10) = 0x00000000 DIEPTSIZ(11) = 0x00000000 DIEPTSIZ(12) = 0x00000000 DIEPTSIZ(13) = 0x00000000 DIEPTSIZ(14) = 0x00000000 DIEPTSIZ(15) = 0x00000000 DOEPTSIZ(0) = 0x00080008 DOEPTSIZ(1) = 0x00080380 DOEPTSIZ(2) = 0x00000000 DOEPTSIZ(3) = 0x00000000 DOEPTSIZ(4) = 0x00000000 DOEPTSIZ(5) = 0x00000000 DOEPTSIZ(6) = 0x00000000 DOEPTSIZ(7) = 0x00000000 DOEPTSIZ(8) = 0x00000000 DOEPTSIZ(9) = 0x00000000 DOEPTSIZ(10) = 0x00000000 DOEPTSIZ(11) = 0x00000000 DOEPTSIZ(12) = 0x00000000 DOEPTSIZ(13) = 0x00000000 DOEPTSIZ(14) = 0x00000000 DOEPTSIZ(15) = 0x00000000 DIEPDMA(0) = 0xef2b2004 DIEPDMA(1) = 0xd66e0f00 DIEPDMA(2) = 0x1bda55e0 DIEPDMA(3) = 0x6231e1a1 DIEPDMA(4) = 0x58ab6e94 DIEPDMA(5) = 0xfd702e1d DIEPDMA(6) = 0xdb415a94 DIEPDMA(7) = 0x2ee9992c DIEPDMA(8) = 0x2d488611 DIEPDMA(9) = 0x2d488611 DIEPDMA(10) = 0x2d488611 DIEPDMA(11) = 0x2d488611 DIEPDMA(12) = 0x2d488611 DIEPDMA(13) = 0x2d488611 DIEPDMA(14) = 0x2d488611 DIEPDMA(15) = 0x2d488611 DOEPDMA(0) = 0xd7533240 DOEPDMA(1) = 0xd4c6b380 DOEPDMA(2) = 0xe66c5a8d DOEPDMA(3) = 0x0e264341 DOEPDMA(4) = 0x6fee07bd DOEPDMA(5) = 0x72153c07 DOEPDMA(6) = 0x6151a7d3 DOEPDMA(7) = 0x2d488611 DOEPDMA(8) = 0xa57ea57e DOEPDMA(9) = 0xa57ea57e DOEPDMA(10) = 0xa57ea57e DOEPDMA(11) = 0xa57ea57e DOEPDMA(12) = 0xa57ea57e DOEPDMA(13) = 0xa57ea57e DOEPDMA(14) = 0xa57ea57e DOEPDMA(15) = 0xa57ea57e DTXFSTS(0) = 0x00000020 DTXFSTS(1) = 0x00000100 DTXFSTS(2) = 0x00000020 DTXFSTS(3) = 0x00000020 DTXFSTS(4) = 0x00000020 DTXFSTS(5) = 0x00000020 DTXFSTS(6) = 0x00000020 DTXFSTS(7) = 0x00000020 DTXFSTS(8) = 0x00000020 DTXFSTS(9) = 0x00000020 DTXFSTS(10) = 0x00000020 DTXFSTS(11) = 0x00000020 DTXFSTS(12) = 0x00000020 DTXFSTS(13) = 0x00000020 DTXFSTS(14) = 0x00000020 DTXFSTS(15) = 0x00000020 PCGCTL = 0x00000000 HCFG = 0x00040120 HFIR = 0x000017d7 HFNUM = 0x19740237 HPTXSTS = 0x00080200 HAINT = 0x00000000 HAINTMSK = 0x00000001 HFLBADDR = 0x00000000 HPRT0 = 0x00000000 HCCHAR(0) = 0x01860380 HCCHAR(1) = 0x80048380 HCCHAR(2) = 0x00000400 HCCHAR(3) = 0x00000400 HCCHAR(4) = 0x00000400 HCCHAR(5) = 0x00000400 HCCHAR(6) = 0x00000400 HCCHAR(7) = 0x00000400 HCCHAR(8) = 0x00000400 HCCHAR(9) = 0x00000400 HCCHAR(10) = 0x00000400 HCCHAR(11) = 0x00000400 HCCHAR(12) = 0x00000400 HCCHAR(13) = 0x00000400 HCCHAR(14) = 0x00000400 HCCHAR(15) = 0x00000400 HCSPLT(0) = 0x00000000 HCSPLT(1) = 0x00000000 HCSPLT(2) = 0x00000000 HCSPLT(3) = 0x00000000 HCSPLT(4) = 0x00000000 HCSPLT(5) = 0x00000000 HCSPLT(6) = 0x00000000 HCSPLT(7) = 0x00000000 HCSPLT(8) = 0x00000000 HCSPLT(9) = 0x00000000 HCSPLT(10) = 0x00000000 HCSPLT(11) = 0x00000000 HCSPLT(12) = 0x00000000 HCSPLT(13) = 0x00000000 HCSPLT(14) = 0x00000000 HCSPLT(15) = 0x00000000 HCINT(0) = 0x00000000 HCINT(1) = 0x00002000 HCINT(2) = 0x00000000 HCINT(3) = 0x00000000 HCINT(4) = 0x00000000 HCINT(5) = 0x00000000 HCINT(6) = 0x00000000 HCINT(7) = 0x00000000 HCINT(8) = 0x00000000 HCINT(9) = 0x00000000 HCINT(10) = 0x00000000 HCINT(11) = 0x00000000 HCINT(12) = 0x00000000 HCINT(13) = 0x00000000 HCINT(14) = 0x00000000 HCINT(15) = 0x00000000 HCINTMSK(0) = 0x0000000f HCINTMSK(1) = 0x00000000 HCINTMSK(2) = 0x00000000 HCINTMSK(3) = 0x00000000 HCINTMSK(4) = 0x00000000 HCINTMSK(5) = 0x00000000 HCINTMSK(6) = 0x00000000 HCINTMSK(7) = 0x00000000 HCINTMSK(8) = 0x00000000 HCINTMSK(9) = 0x00000000 HCINTMSK(10) = 0x00000000 HCINTMSK(11) = 0x00000000 HCINTMSK(12) = 0x00000000 HCINTMSK(13) = 0x00000000 HCINTMSK(14) = 0x00000000 HCINTMSK(15) = 0x00000000 HCTSIZ(0) = 0x00000000 HCTSIZ(1) = 0x00080380 HCTSIZ(2) = 0x00000000 HCTSIZ(3) = 0x00000000 HCTSIZ(4) = 0x00000000 HCTSIZ(5) = 0x00000000 HCTSIZ(6) = 0x00000000 HCTSIZ(7) = 0x00000000 HCTSIZ(8) = 0x00000000 HCTSIZ(9) = 0x00000000 HCTSIZ(10) = 0x00000000 HCTSIZ(11) = 0x00000000 HCTSIZ(12) = 0x00000000 HCTSIZ(13) = 0x00000000 HCTSIZ(14) = 0x00000000 HCTSIZ(15) = 0x00000000 HCDMA(0) = 0xd7533240 HCDMA(1) = 0xd4c6b380 HCDMA(2) = 0xe66c5a8d HCDMA(3) = 0x0e264341 HCDMA(4) = 0x6fee07bd HCDMA(5) = 0x72153c07 HCDMA(6) = 0x6151a7d3 HCDMA(7) = 0x2d488611 HCDMA(8) = 0xa57ea57e HCDMA(9) = 0xa57ea57e HCDMA(10) = 0xa57ea57e HCDMA(11) = 0xa57ea57e HCDMA(12) = 0xa57ea57e HCDMA(13) = 0xa57ea57e HCDMA(14) = 0xa57ea57e HCDMA(15) = 0xa57ea57e HCDMAB(0) = 0xa57ea57e HCDMAB(1) = 0xd7533240 HCDMAB(2) = 0xd4c6b380 HCDMAB(3) = 0xe66c5a8d HCDMAB(4) = 0x0e264341 HCDMAB(5) = 0x6fee07bd HCDMAB(6) = 0x72153c07 HCDMAB(7) = 0x6151a7d3 HCDMAB(8) = 0x2d488611 HCDMAB(9) = 0xa57ea57e HCDMAB(10) = 0xa57ea57e HCDMAB(11) = 0xa57ea57e HCDMAB(12) = 0xa57ea57e HCDMAB(13) = 0xa57ea57e HCDMAB(14) = 0xa57ea57e HCDMAB(15) = 0xa57ea57e [-- Attachment #5: regdump-960bytes.txt --] [-- Type: text/plain, Size: 7526 bytes --] GOTGCTL = 0x000d0000 GOTGINT = 0x00000000 GAHBCFG = 0x00000031 GUSBCFG = 0x00001400 GRSTCTL = 0x80000180 GINTSTS = 0x0400c02a GINTMSK = 0xd0bc3c44 GRXSTSR = 0x6151a7d3 GRXFSIZ = 0x00000100 GNPTXFSIZ = 0x00200100 GNPTXSTS = 0x00080020 GI2CCTL = 0x00000000 GPVNDCTL = 0x00000000 GGPIO = 0x00000000 GUID = 0x2708a000 GSNPSID = 0x4f54280a GHWCFG1 = 0x00000000 GHWCFG2 = 0x228ddd50 GHWCFG3 = 0x0ff000e8 GHWCFG4 = 0x1ff00020 GLPMCFG = 0x75736230 GPWRDN = 0x00000000 GDFIFOCFG = 0x00000000 ADPCTL = 0x00000000 HPTXFSIZ = 0x01000c20 DPTXFSIZN(1) = 0x02000120 DPTXFSIZN(2) = 0x02000320 DPTXFSIZN(3) = 0x02000520 DPTXFSIZN(4) = 0x02000720 DPTXFSIZN(5) = 0x02000920 DPTXFSIZN(6) = 0x01000b20 DPTXFSIZN(7) = 0x01000c20 DPTXFSIZN(8) = 0x01000c20 DPTXFSIZN(9) = 0x02000120 DPTXFSIZN(10) = 0x02000320 DPTXFSIZN(11) = 0x02000520 DPTXFSIZN(12) = 0x02000720 DPTXFSIZN(13) = 0x02000920 DPTXFSIZN(14) = 0x01000b20 DPTXFSIZN(15) = 0x01000c20 DCFG = 0x04040110 DCTL = 0x00000000 DSTS = 0x003a5a00 DIEPMSK = 0x0000200f DOEPMSK = 0x0000000f DAINT = 0x00000000 DAINTMSK = 0x00010001 DTKNQR1 = 0x00000000 DTKNQR2 = 0x00000000 DTKNQR3 = 0x0c100020 DTKNQR4 = 0x00000000 DVBUSDIS = 0x000017d7 DVBUSPULSE = 0x000005b8 DIEPCTL(0) = 0x00008000 DIEPCTL(1) = 0x018603c0 DIEPCTL(2) = 0x00000400 DIEPCTL(3) = 0x00000400 DIEPCTL(4) = 0x00000400 DIEPCTL(5) = 0x00000400 DIEPCTL(6) = 0x00000400 DIEPCTL(7) = 0x00000400 DIEPCTL(8) = 0x00000400 DIEPCTL(9) = 0x00000400 DIEPCTL(10) = 0x00000400 DIEPCTL(11) = 0x00000400 DIEPCTL(12) = 0x00000400 DIEPCTL(13) = 0x00000400 DIEPCTL(14) = 0x00000400 DIEPCTL(15) = 0x00000400 DOEPCTL(0) = 0x80028000 DOEPCTL(1) = 0x000603c0 DOEPCTL(2) = 0x00000400 DOEPCTL(3) = 0x00000400 DOEPCTL(4) = 0x00000400 DOEPCTL(5) = 0x00000400 DOEPCTL(6) = 0x00000400 DOEPCTL(7) = 0x00000400 DOEPCTL(8) = 0x00000400 DOEPCTL(9) = 0x00000400 DOEPCTL(10) = 0x00000400 DOEPCTL(11) = 0x00000400 DOEPCTL(12) = 0x00000400 DOEPCTL(13) = 0x00000400 DOEPCTL(14) = 0x00000400 DOEPCTL(15) = 0x00000400 DIEPINT(0) = 0x000000d0 DIEPINT(1) = 0x00000000 DIEPINT(2) = 0x00000080 DIEPINT(3) = 0x00000080 DIEPINT(4) = 0x00000080 DIEPINT(5) = 0x00000080 DIEPINT(6) = 0x00000080 DIEPINT(7) = 0x00000080 DIEPINT(8) = 0x00000080 DIEPINT(9) = 0x00000080 DIEPINT(10) = 0x00000080 DIEPINT(11) = 0x00000080 DIEPINT(12) = 0x00000080 DIEPINT(13) = 0x00000080 DIEPINT(14) = 0x00000080 DIEPINT(15) = 0x00000080 DOEPINT(0) = 0x00002000 DOEPINT(1) = 0x00000000 DOEPINT(2) = 0x00000000 DOEPINT(3) = 0x00000000 DOEPINT(4) = 0x00000000 DOEPINT(5) = 0x00000000 DOEPINT(6) = 0x00000000 DOEPINT(7) = 0x00000000 DOEPINT(8) = 0x00000000 DOEPINT(9) = 0x00000000 DOEPINT(10) = 0x00000000 DOEPINT(11) = 0x00000000 DOEPINT(12) = 0x00000000 DOEPINT(13) = 0x00000000 DOEPINT(14) = 0x00000000 DOEPINT(15) = 0x00000000 DIEPTSIZ(0) = 0x00000000 DIEPTSIZ(1) = 0x00000000 DIEPTSIZ(2) = 0x00000000 DIEPTSIZ(3) = 0x00000000 DIEPTSIZ(4) = 0x00000000 DIEPTSIZ(5) = 0x00000000 DIEPTSIZ(6) = 0x00000000 DIEPTSIZ(7) = 0x00000000 DIEPTSIZ(8) = 0x00000000 DIEPTSIZ(9) = 0x00000000 DIEPTSIZ(10) = 0x00000000 DIEPTSIZ(11) = 0x00000000 DIEPTSIZ(12) = 0x00000000 DIEPTSIZ(13) = 0x00000000 DIEPTSIZ(14) = 0x00000000 DIEPTSIZ(15) = 0x00000000 DOEPTSIZ(0) = 0x00080008 DOEPTSIZ(1) = 0x000803c0 DOEPTSIZ(2) = 0x00000000 DOEPTSIZ(3) = 0x00000000 DOEPTSIZ(4) = 0x00000000 DOEPTSIZ(5) = 0x00000000 DOEPTSIZ(6) = 0x00000000 DOEPTSIZ(7) = 0x00000000 DOEPTSIZ(8) = 0x00000000 DOEPTSIZ(9) = 0x00000000 DOEPTSIZ(10) = 0x00000000 DOEPTSIZ(11) = 0x00000000 DOEPTSIZ(12) = 0x00000000 DOEPTSIZ(13) = 0x00000000 DOEPTSIZ(14) = 0x00000000 DOEPTSIZ(15) = 0x00000000 DIEPDMA(0) = 0xd6e73004 DIEPDMA(1) = 0xd66e0f00 DIEPDMA(2) = 0x1bda55e0 DIEPDMA(3) = 0x6231e1a1 DIEPDMA(4) = 0x58ab6e94 DIEPDMA(5) = 0xfd702e1d DIEPDMA(6) = 0xdb415a94 DIEPDMA(7) = 0x2ee9992c DIEPDMA(8) = 0x2d488611 DIEPDMA(9) = 0x2d488611 DIEPDMA(10) = 0x2d488611 DIEPDMA(11) = 0x2d488611 DIEPDMA(12) = 0x2d488611 DIEPDMA(13) = 0x2d488611 DIEPDMA(14) = 0x2d488611 DIEPDMA(15) = 0x2d488611 DOEPDMA(0) = 0xd710f240 DOEPDMA(1) = 0xd66e3800 DOEPDMA(2) = 0xe66c5a8d DOEPDMA(3) = 0x0e264341 DOEPDMA(4) = 0x6fee07bd DOEPDMA(5) = 0x72153c07 DOEPDMA(6) = 0x6151a7d3 DOEPDMA(7) = 0x2d488611 DOEPDMA(8) = 0x00110500 DOEPDMA(9) = 0x00110500 DOEPDMA(10) = 0x00110500 DOEPDMA(11) = 0x00110500 DOEPDMA(12) = 0x00110500 DOEPDMA(13) = 0x00110500 DOEPDMA(14) = 0x00110500 DOEPDMA(15) = 0x00110500 DTXFSTS(0) = 0x00000020 DTXFSTS(1) = 0x00000100 DTXFSTS(2) = 0x00000020 DTXFSTS(3) = 0x00000020 DTXFSTS(4) = 0x00000020 DTXFSTS(5) = 0x00000020 DTXFSTS(6) = 0x00000020 DTXFSTS(7) = 0x00000020 DTXFSTS(8) = 0x00000020 DTXFSTS(9) = 0x00000020 DTXFSTS(10) = 0x00000020 DTXFSTS(11) = 0x00000020 DTXFSTS(12) = 0x00000020 DTXFSTS(13) = 0x00000020 DTXFSTS(14) = 0x00000020 DTXFSTS(15) = 0x00000020 PCGCTL = 0x00000000 HCFG = 0x00040110 HFIR = 0x000017d7 HFNUM = 0x076a074b HPTXSTS = 0x00080200 HAINT = 0x00000000 HAINTMSK = 0x00000001 HFLBADDR = 0x00000000 HPRT0 = 0x00000000 HCCHAR(0) = 0x018603c0 HCCHAR(1) = 0x000603c0 HCCHAR(2) = 0x00000400 HCCHAR(3) = 0x00000400 HCCHAR(4) = 0x00000400 HCCHAR(5) = 0x00000400 HCCHAR(6) = 0x00000400 HCCHAR(7) = 0x00000400 HCCHAR(8) = 0x00000400 HCCHAR(9) = 0x00000400 HCCHAR(10) = 0x00000400 HCCHAR(11) = 0x00000400 HCCHAR(12) = 0x00000400 HCCHAR(13) = 0x00000400 HCCHAR(14) = 0x00000400 HCCHAR(15) = 0x00000400 HCSPLT(0) = 0x00000000 HCSPLT(1) = 0x00000000 HCSPLT(2) = 0x00000000 HCSPLT(3) = 0x00000000 HCSPLT(4) = 0x00000000 HCSPLT(5) = 0x00000000 HCSPLT(6) = 0x00000000 HCSPLT(7) = 0x00000000 HCSPLT(8) = 0x00000000 HCSPLT(9) = 0x00000000 HCSPLT(10) = 0x00000000 HCSPLT(11) = 0x00000000 HCSPLT(12) = 0x00000000 HCSPLT(13) = 0x00000000 HCSPLT(14) = 0x00000000 HCSPLT(15) = 0x00000000 HCINT(0) = 0x00000000 HCINT(1) = 0x00000000 HCINT(2) = 0x00000000 HCINT(3) = 0x00000000 HCINT(4) = 0x00000000 HCINT(5) = 0x00000000 HCINT(6) = 0x00000000 HCINT(7) = 0x00000000 HCINT(8) = 0x00000000 HCINT(9) = 0x00000000 HCINT(10) = 0x00000000 HCINT(11) = 0x00000000 HCINT(12) = 0x00000000 HCINT(13) = 0x00000000 HCINT(14) = 0x00000000 HCINT(15) = 0x00000000 HCINTMSK(0) = 0x0000000f HCINTMSK(1) = 0x00000000 HCINTMSK(2) = 0x00000000 HCINTMSK(3) = 0x00000000 HCINTMSK(4) = 0x00000000 HCINTMSK(5) = 0x00000000 HCINTMSK(6) = 0x00000000 HCINTMSK(7) = 0x00000000 HCINTMSK(8) = 0x00000000 HCINTMSK(9) = 0x00000000 HCINTMSK(10) = 0x00000000 HCINTMSK(11) = 0x00000000 HCINTMSK(12) = 0x00000000 HCINTMSK(13) = 0x00000000 HCINTMSK(14) = 0x00000000 HCINTMSK(15) = 0x00000000 HCTSIZ(0) = 0x00000000 HCTSIZ(1) = 0x000803c0 HCTSIZ(2) = 0x00000000 HCTSIZ(3) = 0x00000000 HCTSIZ(4) = 0x00000000 HCTSIZ(5) = 0x00000000 HCTSIZ(6) = 0x00000000 HCTSIZ(7) = 0x00000000 HCTSIZ(8) = 0x00000000 HCTSIZ(9) = 0x00000000 HCTSIZ(10) = 0x00000000 HCTSIZ(11) = 0x00000000 HCTSIZ(12) = 0x00000000 HCTSIZ(13) = 0x00000000 HCTSIZ(14) = 0x00000000 HCTSIZ(15) = 0x00000000 HCDMA(0) = 0xd710f240 HCDMA(1) = 0xd66e3800 HCDMA(2) = 0xe66c5a8d HCDMA(3) = 0x0e264341 HCDMA(4) = 0x6fee07bd HCDMA(5) = 0x72153c07 HCDMA(6) = 0x6151a7d3 HCDMA(7) = 0x2d488611 HCDMA(8) = 0x00110500 HCDMA(9) = 0x00110500 HCDMA(10) = 0x00110500 HCDMA(11) = 0x00110500 HCDMA(12) = 0x00110500 HCDMA(13) = 0x00110500 HCDMA(14) = 0x00110500 HCDMA(15) = 0x00110500 HCDMAB(0) = 0x00110500 HCDMAB(1) = 0xd710f240 HCDMAB(2) = 0xd66e3800 HCDMAB(3) = 0xe66c5a8d HCDMAB(4) = 0x0e264341 HCDMAB(5) = 0x6fee07bd HCDMAB(6) = 0x72153c07 HCDMAB(7) = 0x6151a7d3 HCDMAB(8) = 0x2d488611 HCDMAB(9) = 0x00110500 HCDMAB(10) = 0x00110500 HCDMAB(11) = 0x00110500 HCDMAB(12) = 0x00110500 HCDMAB(13) = 0x00110500 HCDMAB(14) = 0x00110500 HCDMAB(15) = 0x00110500 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: usb: dwc2: Re: Maximum packet size in dwc2 gadget HS mode < 1024 2019-10-13 18:39 ` Pavel Hofman @ 2019-10-24 6:33 ` Pavel Hofman 2019-10-24 12:47 ` Minas Harutyunyan 0 siblings, 1 reply; 8+ messages in thread From: Pavel Hofman @ 2019-10-24 6:33 UTC (permalink / raw) To: linux-usb, Minas Harutyunyan Hi Minas, Dne 13. 10. 19 v 20:39 Pavel Hofman napsal(a): > Hi Minas > Dne 11. 10. 19 v 9:45 Minas Harutyunyan napsal(a): >> Hi Pavel, >> >>> >> Could you please send regdump and debug log for failing case. >> > > Thanks a lot for your reply. > > Attaching regdump-960bytes.txt for 32kHz/16b/15ch both playback and > capture, bInterval=4 in I do not know if the debug info was sufficient. Please should I provide more? Thanks a lot. Best regards, Pavel. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: usb: dwc2: Re: Maximum packet size in dwc2 gadget HS mode < 1024 2019-10-24 6:33 ` Pavel Hofman @ 2019-10-24 12:47 ` Minas Harutyunyan [not found] ` <5f7cc638-ed27-8f8f-95db-c1b198ebb8f5@ivitera.com> 0 siblings, 1 reply; 8+ messages in thread From: Minas Harutyunyan @ 2019-10-24 12:47 UTC (permalink / raw) To: Pavel Hofman, linux-usb, Minas Harutyunyan Hi Pavel, On 10/24/2019 10:33 AM, Pavel Hofman wrote: > Hi Minas, > > Dne 13. 10. 19 v 20:39 Pavel Hofman napsal(a): >> Hi Minas >> Dne 11. 10. 19 v 9:45 Minas Harutyunyan napsal(a): >>> Hi Pavel, >>> >>>> >>> Could you please send regdump and debug log for failing case. >>> >> >> Thanks a lot for your reply. >> >> Attaching regdump-960bytes.txt for 32kHz/16b/15ch both playback and >> capture, bInterval=4 in > > > I do not know if the debug info was sufficient. Please should I provide > more? > > Thanks a lot. > > Best regards, > > Pavel. Sorry for delay. I haven't enough time to investigate deeper. This type of issue depend on timings: packet sizes and board DMA performance. Anyway, could you please elaborate: 1. 960 bytes case. Is it high bandwidth transfer? I mean how many packets sending in 1 (u)frame? 2. Could you please print hsotg->frame_number in function dwc2_gadget_handle_out_token_ep_disabled(). 3. No any chance to record USB trace? Thanks, Minas ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <5f7cc638-ed27-8f8f-95db-c1b198ebb8f5@ivitera.com>]
* Re: usb: dwc2: Re: Maximum packet size in dwc2 gadget HS mode < 1024 [not found] ` <5f7cc638-ed27-8f8f-95db-c1b198ebb8f5@ivitera.com> @ 2019-11-05 11:30 ` Minas Harutyunyan 2019-11-05 12:10 ` Pavel Hofman 0 siblings, 1 reply; 8+ messages in thread From: Minas Harutyunyan @ 2019-11-05 11:30 UTC (permalink / raw) To: Pavel Hofman, Minas Harutyunyan, linux-usb Hi Pavel, On 11/2/2019 1:52 PM, Pavel Hofman wrote: > Hi Minas, > Dne 24. 10. 19 v 14:47 Minas Harutyunyan napsal(a): >> >> Sorry for delay. I haven't enough time to investigate deeper. > > I apologize for the delay. > >> This type of issue depend on timings: packet sizes and board DMA >> performance. >> Anyway, could you please elaborate: >> 1. 960 bytes case. Is it high bandwidth transfer? I mean how many >> packets sending in 1 (u)frame? > > It is HS (480Mbps). There is only one device (the RPi gadget) connected > to the USB host port. Frame interval is 1ms (i.e. every 8th uframe, > bInterval = 4). > > USB tree on the host machine shows 480M: > > pavel@precision:~/tools/arm-bcm2708$ lsusb -t > /: Bus 08.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M > /: Bus 07.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M > /: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M > /: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M > /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M > /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M > /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/6p, 480M > /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/6p, 480M > |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M > |__ Port 1: Dev 3, If 0, Class=Human Interface Device, > Driver=usbhid, 1.5M > |__ Port 4: Dev 4, If 0, Class=Human Interface Device, > Driver=usbhid, 1.5M > |__ Port 4: Dev 4, If 1, Class=Human Interface Device, > Driver=usbhid, 1.5M > |__ Port 2: Dev 23, If 2, Class=Audio, Driver=snd-usb-audio, 480M > |__ Port 2: Dev 23, If 0, Class=Audio, Driver=snd-usb-audio, 480M > |__ Port 2: Dev 23, If 1, Class=Audio, Driver=snd-usb-audio, 480M <-- > > > > >> 2. Could you please print hsotg->frame_number in function >> dwc2_gadget_handle_out_token_ep_disabled(). > > I added the printout to the beginning of the function: > > --- a/drivers/usb/dwc2/gadget.c > +++ b/drivers/usb/dwc2/gadget.c > @@ -2856,6 +2856,8 @@ static void > dwc2_gadget_handle_out_token_ep_disabled(struct dwc2_hsotg_ep *ep) > if (dir_in || !ep->isochronous) > return; > > + dev_dbg(hsotg->dev, "%s: frame_number: %d\n",__func__, > hsotg->frame_number); > > if (using_desc_dma(hsotg)) { > if (ep->target_frame == TARGET_FRAME_INITIAL) { > /* Start first ISO Out */ > > The dmesg.log is attached. It includes everything from start of playback > on host side. The printout (frame_number) was called only once shortly > after the begining, when zero-length packet was received (only one zlp > during the whole playback). > > >> 3. No any chance to record USB trace? > > I am afraid not, I have no access to any HW USB analyzer. > > I am enclosing wireshark screenshots for the (nonworking) 960bytes case > - list of the URBs, detail of the 5-frame request and of its > corresponding response (URBs as either 5 frames or 4 frames). IMO they > look OK. Two different USB hosts result in the same problem, I think the > host side is OK. > > > > Thanks a lot, > > Pavel. Could you please perform follow 3 tests: 1. Test#1. Disable all debug prints for dwc2 driver and test again 960 bytes mps. 2. Test#2. If not help above then re-enable debug prints and apply below patch, test again and provide me full dmesg. diff --git a/drivers/usb/dwc2/core_intr.c b/drivers/usb/dwc2/core_intr.c index 6af6add3d4c0..bb5859739663 100644 --- a/drivers/usb/dwc2/core_intr.c +++ b/drivers/usb/dwc2/core_intr.c @@ -798,6 +798,10 @@ irqreturn_t dwc2_handle_common_intr(int irq, void *dev) hsotg->frame_number = (dwc2_readl(hsotg, HFNUM) & HFNUM_FRNUM_MASK) >> HFNUM_FRNUM_SHIFT; + dev_dbg(hsotg->dev, "%s: frame_number: %d\n", __func__, + hsotg->frame_number); + + gintsts = dwc2_read_common_intr(hsotg); if (gintsts & ~GINTSTS_PRTINT) retval = IRQ_HANDLED; diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c index 6be10e496e10..8c1b0ff0fe2f 100644 --- a/drivers/usb/dwc2/gadget.c +++ b/drivers/usb/dwc2/gadget.c @@ -2856,6 +2856,9 @@ static void dwc2_gadget_handle_out_token_ep_disabled(struct dwc2_hsotg_ep *ep) if (dir_in || !ep->isochronous) return; + dev_dbg(hsotg->dev, "%s: frame_number: %d\n", __func__, + hsotg->frame_number); + if (using_desc_dma(hsotg)) { if (ep->target_frame == TARGET_FRAME_INITIAL) { /* Start first ISO Out */ @@ -3613,6 +3616,10 @@ static void dwc2_gadget_handle_incomplete_isoc_out(struct dwc2_hsotg *hsotg) if ((BIT(idx) & ~daintmsk) || !hs_ep->isochronous) continue; + dev_dbg(hsotg->dev, "ep%d current_frame=%d, target_frame=%d\n", idx, + (dwc2_readl(hsotg, DSTS) & DSTS_SOFFN_MASK) + >> DSTS_SOFFN_SHIFT, hs_ep->target_frame); + epctrl = dwc2_readl(hsotg, DOEPCTL(idx)); if ((epctrl & DXEPCTL_EPENA) && dwc2_gadget_target_frame_elapsed(hs_ep)) { 3. Test#3. Try to increase Periodic Frame Interval (PerFInt) by using follow patch in gadget.c: @@ -3383,6 +3386,8 @@ void dwc2_hsotg_core_init_disconnected(struct dwc2_hsotg *hsotg, if (hsotg->params.ipg_isoc_en) dcfg |= DCFG_IPG_ISOC_SUPPORDED; + dcfg |= DCFG_PERFRINT(3); + dwc2_writel(hsotg, dcfg, DCFG); /* Clear any pending OTG interrupts */ Thanks, Minas ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: usb: dwc2: Re: Maximum packet size in dwc2 gadget HS mode < 1024 2019-11-05 11:30 ` Minas Harutyunyan @ 2019-11-05 12:10 ` Pavel Hofman 2019-11-05 13:27 ` Minas Harutyunyan 0 siblings, 1 reply; 8+ messages in thread From: Pavel Hofman @ 2019-11-05 12:10 UTC (permalink / raw) To: Minas Harutyunyan, linux-usb Dne 05. 11. 19 v 12:30 Minas Harutyunyan napsal(a): > Hi Pavel, > > > Could you please perform follow 3 tests: > > 1. Test#1. Disable all debug prints for dwc2 driver and test again 960 > bytes mps. Do you mean without any patches, with the existing code? That will result in the existing (incorrect) behaviour. I will do all the other tests, thanks alot for your effort. Regards, Pavel. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: usb: dwc2: Re: Maximum packet size in dwc2 gadget HS mode < 1024 2019-11-05 12:10 ` Pavel Hofman @ 2019-11-05 13:27 ` Minas Harutyunyan 0 siblings, 0 replies; 8+ messages in thread From: Minas Harutyunyan @ 2019-11-05 13:27 UTC (permalink / raw) To: Pavel Hofman, Minas Harutyunyan, linux-usb Hi Pavel, On 11/5/2019 4:10 PM, Pavel Hofman wrote: > Dne 05. 11. 19 v 12:30 Minas Harutyunyan napsal(a): >> Hi Pavel, >> >> >> Could you please perform follow 3 tests: >> >> 1. Test#1. Disable all debug prints for dwc2 driver and test again 960 >> bytes mps. > > Do you mean without any patches, with the existing code? That will > result in the existing (incorrect) behaviour. > Yes, without any patch, just disable debug prints which will improve timings. Thanks, Minas > I will do all the other tests, thanks alot for your effort. > > Regards, > > Pavel. ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2019-11-05 13:27 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <3496ebef-c3b6-d884-8bd8-fed48e875b10@ivitera.com> [not found] ` <52dc70dc-86e4-c47a-ae49-1f201b066b2e@ivitera.com> 2019-10-11 5:54 ` usb: dwc2: Re: Maximum packet size in dwc2 gadget HS mode < 1024 Minas Harutyunyan 2019-10-11 7:45 ` Minas Harutyunyan 2019-10-13 18:39 ` Pavel Hofman 2019-10-24 6:33 ` Pavel Hofman 2019-10-24 12:47 ` Minas Harutyunyan [not found] ` <5f7cc638-ed27-8f8f-95db-c1b198ebb8f5@ivitera.com> 2019-11-05 11:30 ` Minas Harutyunyan 2019-11-05 12:10 ` Pavel Hofman 2019-11-05 13:27 ` Minas Harutyunyan
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).