9.2.2 DVB tbs driver / Hauppauge USB wintv dual HD / Tvheadend conflict

@teacup It’s not a gt king pro specific problem, I’ve got the same with my Odroid N2 since the beginning. I bought an OTG/USB adaptor and my hauppauge wintv dual HD is connected to the front OTG usb2.

Do you mean it is general problem of USB 3.0 on AMLogic S922X platform, when used together with hauppauge wintv dual?
So tuners like this need to be connected only to USB 2.0, in this case OTG variant?
Hmm, that is not nice.
Still it looks like problem of USB 3.0 of s922x rather than the tuner?

Does this happen to N2 on any of the 4 USB ports?
I tried only on C4 and there it was working without any issues.

@Portisch Yes on any of usb3 rear ports. But i haven’t tried since some months because it doesn’t matter for me to connect it on the N2 otg front port.

There was a issue on CE before 9.2.3 on N2 & USB3 and a issue about this dvb tuner. So try again with nightly.

@Portisch Just try with nightly, and confirm that the rears usb ports aren’t enough stable for daily usage. (sometime working, sometime not and must reboot every time when not working )

added

options em28xx reg_debug=1

into /storage/.config/modprobe.d/wintvdual.conf
and got following:

[   38.192943@3] em28xx 1-1.1:1.0: reg: em28xx_write_regs_req: (pipe 0x80000400): OUT:  40 02 00 00 c8 00 08 00 >>> 0c 0a 6f 45 14 f9 d4 64
[   38.192985@3] em28xx 1-1.1:1.0: reg: em28xx_read_reg_req_len: (pipe 0x80000480): IN:  c0 00 00 00 05 00 01 00 <<< 00
[   38.193058@3] em28xx 1-1.1:1.0: reg: em28xx_read_reg_req_len: (pipe 0x80000480): IN:  c0 02 00 00 c8 00 01 00 <<< 80
[   38.193099@3] em28xx 1-1.1:1.0: reg: em28xx_read_reg_req_len: (pipe 0x80000480): IN:  c0 00 00 00 05 00 01 00 <<< 00
[   38.446674@0] em28xx 1-1.1:1.0: reg: em28xx_write_regs_req: (pipe 0x80000400): OUT:  40 02 00 00 c8 00 05 00 >>> 44 3f a1 8b 6b  failed with error -110
[   38.446689@0] em28xx 1-1.1:1.0: writing to i2c device at 0xc8 failed (error=-5)
[   38.446703@0] si2168 6-0064: firmware download failed -5
[   38.701690@0] em28xx 1-1.1:1.0: reg: em28xx_write_regs_req: (pipe 0x80000400): OUT:  40 02 00 00 c8 00 03 00 >>> c0 0d 01  failed with error -110
[   38.701705@0] em28xx 1-1.1:1.0: writing to i2c device at 0xc8 failed (error=-5)
[   38.957402@0] em28xx 1-1.1:1.0: reg: em28xx_write_regs_req: (pipe 0x80000400): OUT:  40 02 00 00 c8 00 03 00 >>> c0 0d 00  failed with error -110
[   38.957417@0] em28xx 1-1.1:1.0: writing to i2c device at 0xc8 failed (error=-5)
[   38.957519@0] em28xx 1-1.1:1.0: DVB: adapter 0 frontend 0 frequency 0 out of range (48000000..870000000)
[   39.225094@0] em28xx 1-1.1:1.0: reg: em28xx_write_regs_req: (pipe 0x80000400): OUT:  40 02 00 00 c8 00 0d 00 >>> c0 12 00 0c 00 0d 16 00 00 00 00 00 00  failed with error -110
[   39.225108@0] em28xx 1-1.1:1.0: writing to i2c device at 0xc8 failed (error=-5)
[   39.253082@0] em28xx 1-1.1:1.0: reg: em28xx_write_regs_req: (pipe 0x80000400): OUT:  40 02 00 00 ce 00 0d 00 >>> c0 12 00 0c 00 0d 16 00 00 00 00 00 00  failed with error -110
[   39.253096@0] em28xx 1-1.1:1.0: writing to i2c device at 0xce failed (error=-5)
[   39.480811@0] em28xx 1-1.1:1.0: reg: em28xx_write_regs_req: (pipe 0x80000400): OUT:  40 02 00 00 c8 00 03 00 >>> c0 0d 01  failed with error -110
[   39.480825@0] em28xx 1-1.1:1.0: writing to i2c device at 0xc8 failed (error=-5)
[   39.508776@0] em28xx 1-1.1:1.0: reg: em28xx_write_regs_req: (pipe 0x80000400): OUT:  40 02 00 00 ce 00 03 00 >>> c0 0d 01  failed with error -110
[   39.508790@0] em28xx 1-1.1:1.0: writing to i2c device at 0xce failed (error=-5)
[   39.736529@0] em28xx 1-1.1:1.0: reg: em28xx_write_regs_req: (pipe 0x80000400): OUT:  40 02 00 00 c8 00 03 00 >>> c0 0d 00  failed with error -110
[   39.736543@0] em28xx 1-1.1:1.0: writing to i2c device at 0xc8 failed (error=-5)
[   39.764621@0] em28xx 1-1.1:1.0: reg: em28xx_write_regs_req: (pipe 0x80000400): OUT:  40 02 00 00 ce 00 03 00 >>> c0 0d 00  failed with error -110
[   39.764635@0] em28xx 1-1.1:1.0: writing to i2c device at 0xce failed (error=-5)
[   39.764742@0] em28xx 1-1.1:1.0: DVB: adapter 1 frontend 0 frequency 0 out of range (48000000..870000000)
[   40.052182@1] em28xx 1-1.1:1.0: reg: em28xx_write_regs_req: (pipe 0x80000400): OUT:  40 02 00 00 ce 00 0d 00 >>> c0 12 00 0c 00 0d 16 00 00 00 00 00 00  failed with error -110
[   40.052197@1] em28xx 1-1.1:1.0: writing to i2c device at 0xce failed (error=-5)
[   40.307892@1] em28xx 1-1.1:1.0: reg: em28xx_write_regs_req: (pipe 0x80000400): OUT:  40 02 00 00 ce 00 03 00 >>> c0 0d 01  failed with error -110
[   40.307906@1] em28xx 1-1.1:1.0: writing to i2c device at 0xce failed (error=-5)
[   40.563625@1] em28xx 1-1.1:1.0: reg: em28xx_write_regs_req: (pipe 0x80000400): OUT:  40 02 00 00 ce 00 03 00 >>> c0 0d 00  failed with error -110
[   40.563640@1] em28xx 1-1.1:1.0: writing to i2c device at 0xce failed (error=-5)

Any ideas?

I guess that the -110 error code is -ETIMEDOUT and it comes from usb_start_wait_urb() when timeout expires after call of usb_submit_urb().
It looks like a problem with usb3 transfers, possibly specific to controller used within AMLogic S922X platform.
Or the tuner does not respond for some reason? It would be strange that it would work with usb2 though.

Tested on PC with 5.7.4 kernel, no problem when using usb3 port.
Tested also connected to a usb3 hub (which has been connected to usb3 PC port), no problem either.
When connected that usb3 hub to GT-King Pro usb3 port and then wintv-dual to that usb3 hub, the above described errors appear again. Tried even to use only usb2 cable (instead of the original usb3 cable) to connect the usb3 hub to GT-King Pro usb3 port (i.e. forcing the usb3 hub into usb2 mode), the same errors still.
Basically the AMLogic S922X’s usb3 ports are not usable with the tuner, no matter what you do. But the tuner is usable with ryzen 7 based PC with usb3 ports.
Looks like the usb3 host controller driver issue in my opinion.
– edit –
A bit different errors that sometime appear there:

[   53.302665@4] em28xx 1-1.1.2:1.0: Binding DVB extension
[   53.302750@4] em28xx 1-1.1.2:1.0: reg: em28xx_write_regs_req: (pipe 0x80000500): OUT:  40 00 00 00 5d 00 01 00 >>> ff  failed with error -71
[   53.302797@4] em28xx 1-1.1.2:1.0: reg: em28xx_read_reg_req_len: (pipe 0x80000580): IN:  c0 00 00 00 5f 00 01 00  failed with error -71
[   53.302845@3] em28xx 1-1.1.2:1.0: reg: em28xx_read_reg_req_len: (pipe 0x80000580): IN:  c0 00 00 00 80 00 01 00  failed with error -71
[   53.315943@4] em28xx 1-1.1.2:1.0: reg: em28xx_read_reg_req_len: (pipe 0x80000580): IN:  c0 00 00 00 06 00 01 00  failed with error -71
[   53.316004@5] em28xx 1-1.1.2:1.0: reg: em28xx_write_regs_req: (pipe 0x80000500): OUT:  40 02 00 00 c8 00 0d 00 >>> c0 12 00 0c 00 0d 16 00 00 00 00 00 00  failed with error -71
[   53.316008@5] em28xx 1-1.1.2:1.0: writing to i2c device at 0xc8 failed (error=-5)
[   53.316012@5] si2168 6-0064: probe failed = -5
[   53.316020@5] si2168: probe of 6-0064 failed with error -5

That -71 error might be -EPROTO, but I am not sure where it may come from.
– edit –
Possibly interesting post that might be related:
https://www.mail-archive.com/linux-media@vger.kernel.org/msg111615.html
Not sure if it is the same case though, it mentions heavy use of isochronous usb transfers, while the tuner driver logs the bulk mode:

# dmesg | grep bulk
[   52.204378@5] em28xx 1-1.1.2:1.0: DVB interface 0 found: bulk
[   52.905959@0] em28xx 1-1.1.2:1.0: dvb set to bulk mode.
[   53.086102@0] em28xx 1-1.1.2:1.0: dvb ts2 set to bulk mode.
1 Like

This problem is unrelated to the original issue. The usb3 issues are hardware related. Comparing it to a PC is not helping.

Topic is solved.

Just to confirm the error failed with error -110:
I tried to downgrade the USB driver and I got the error randomly on any port of the back on the N2.
Also with 9.2.1 the error happen.

It works without any issue on Minix NEO T5 (S905X2) or Odroid C4 (S905X3) on any port as example.
Maybe it’s really a SoC & USB3 host related error.