On Sat, Mar 28, 2015 at 11:29:11AM +0100, Martin Pieuchot wrote:
> With the increasing number of machines shipping with rate-matching
> hubs instead of companion controllers to support USB Full and Low-
> speed devices, a number of people asked me if it was possible to
> add support for Full-speed isochronous transfers in order to use
> USB1.1 uaudio(4) devices with ehci(4)-only systems.
> 
> The diff below does that.  It also contain some cleanups for the
> High-speed isochronous code and plug some memory leaks for free.
> 
> Please let me know how it goes with 1.1 and 2.0 devices.
> 

Hi,

i've done some testing over the weekend and as far as i can tell,
it worked great so far.

uaudio0 at uhub3 port 2 configuration 1 interface 0 "Logitech Logitech USB 
Headset" rev 1.10/1.30 addr 4
uaudio0: audio rev 1.00, 4 mixer controls
audio1 at uaudio0

Tests include:
 - playback/recording with aucat(1)
 - playing sounds/videos via AUDIODEVICE={r,}snd/1 and as snd/0 with
        - firefox/chrome
        - mpv/vlc


Probably unrelated to your diff but i problems with mpv
while watching some video streams from twitch.tv

When used as below, the audio output was slowed down.
---
$ AUDIODEVICE=rsnd/1 mpv http://www.twitch.tv/gfinitytv
Playing: http://www.twitch.tv/gfinitytv
 (+) Video --vid=1 (h264)
 (+) Audio --aid=1 (aac)
AO: [sndio] 44100Hz stereo 2ch s16
[mixer] Hardware volume control unavailable.
[mixer] Hardware volume control unavailable.
VO: [opengl] 1280x720 yuv420p
AV: 00:00:44 A-V:  0.000 Dropped: 4 Cache:  1s+0KB
[ffmpeg] ?: skipping 1 segments ahead, expired from playlists
AV: 00:00:46 A-V: -0.000 Dropped: 4 Cache:  3s+0KB


           *************************************************
           **** Audio/Video desynchronisation detected! ****
           *************************************************

This means either the audio or the video is played too slowly.
Possible reasons, problems, workarounds:
- Your system is simply too slow for this file.
     Transcode it to a lower bitrate file with e.g. mpv encoding support.
- Slow video output.
     Try a different --vo driver (--vo=help for a list). Make sure framedrop
     is not disabled, or experiment with different values for --framedrop.
- Playing from a slow network source.
     Download the file instead.
- Try to find out whether audio/video/subs are causing this by experimenting
  with --no-video, --no-audio, or --no-sub.
- If you switched audio or video tracks, try seeking to force synchronization.
If none of this helps you, file a bug report.

AV: 00:00:46 A-V:  3.947 ct:  0.418 Dropped: 4 Cache:  1s+0KB
---

I'm not an audio expert but could it have something to with the
play.rate of my headset is only capable of max 32000?

When watching the same stream with vlc, all worked fine.


Anyway, thanks for this diff!

Cheers,
Fabian

audioctl -f /dev/audio1
---
name=USB audio
encodings=slinear_le:16:2:1
properties=full_duplex,independent
hiwat=10
lowat=7
mode=play
play.rate=32000
play.channels=2
play.precision=16
play.bps=2
play.msb=1
play.encoding=slinear_le
play.samples=0
play.pause=0
play.active=0
play.block_size=6400
play.errors=0
record.rate=32000
record.channels=2
record.precision=16
record.bps=2
record.msb=1
record.encoding=slinear_le
record.samples=0
record.pause=0
record.active=0
record.block_size=6400
record.errors=0

mixerctl -f /dev/mixer1
---
outputs.spkr.mute=off
outputs.spkr=255,255
record.mic.mute=off
record.mic=248

dmesg
---

OpenBSD 5.7-current (GENERIC.MP) #4: Sat Mar 28 12:52:22 CET 2015
    [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 3849830400 (3671MB)
avail mem = 3729293312 (3556MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.7 @ 0xdabd5000 (68 entries)
bios0: vendor LENOVO version "H3ET70WW(1.07)" date 12/12/2012
bios0: LENOVO 3354DSG
acpi0 at bios0: rev 2
acpi0: sleep states S0 S3 S4 S5
acpi0: tables DSDT FACP SSDT SSDT HPET APIC MCFG SLIC FPDT ASF! SSDT SSDT UEFI 
UEFI MSDM UEFI DBG2
acpi0: wakeup devices P0P1(S4) GLAN(S4) EHC1(S3) EHC2(S3) XHC_(S3) HDEF(S4) 
PXSX(S4) RP01(S4) PXSX(S4) RP02(S4) PXSX(S4) RP03(S4) PXSX(S4) RP04(S4) 
PXSX(S4) RP05(S4) [...]
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpihpet0 at acpi0: 14318179 Hz
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz, 2594.44 MHz
cpu0: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,XSAVE,AVX,F16C,RDRAND,NXE,LONG,LAHF,PERF,ITSC,FSGSBASE,SMEP,ERMS
cpu0: 256KB 64b/line 8-way L2 cache
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges
cpu0: apic clock running at 99MHz
cpu0: mwait min=64, max=64, C-substates=0.2.1.1.2, IBE
cpu1 at mainbus0: apid 1 (application processor)
cpu1: Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz, 2594.11 MHz
cpu1: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,XSAVE,AVX,F16C,RDRAND,NXE,LONG,LAHF,PERF,ITSC,FSGSBASE,SMEP,ERMS
cpu1: 256KB 64b/line 8-way L2 cache
cpu1: smt 1, core 0, package 0
cpu2 at mainbus0: apid 2 (application processor)
cpu2: Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz, 2594.11 MHz
cpu2: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,XSAVE,AVX,F16C,RDRAND,NXE,LONG,LAHF,PERF,ITSC,FSGSBASE,SMEP,ERMS
cpu2: 256KB 64b/line 8-way L2 cache
cpu2: smt 0, core 1, package 0
cpu3 at mainbus0: apid 3 (application processor)
cpu3: Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz, 2594.11 MHz
cpu3: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,XSAVE,AVX,F16C,RDRAND,NXE,LONG,LAHF,PERF,ITSC,FSGSBASE,SMEP,ERMS
cpu3: 256KB 64b/line 8-way L2 cache
cpu3: smt 1, core 1, package 0
ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 20, 24 pins
acpimcfg0 at acpi0 addr 0xf8000000, bus 0-63
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus -1 (P0P1)
acpiprt2 at acpi0: bus 1 (RP01)
acpiprt3 at acpi0: bus 2 (RP02)
acpiprt4 at acpi0: bus 3 (RP03)
acpiprt5 at acpi0: bus 8 (RP04)
acpiprt6 at acpi0: bus -1 (RP05)
acpiprt7 at acpi0: bus -1 (RP06)
acpiprt8 at acpi0: bus -1 (RP07)
acpiprt9 at acpi0: bus -1 (RP08)
acpiprt10 at acpi0: bus -1 (PEG0)
acpiprt11 at acpi0: bus -1 (PEG1)
acpiprt12 at acpi0: bus -1 (PEG2)
acpiprt13 at acpi0: bus -1 (PEG3)
acpiec0 at acpi0
acpicpu0 at acpi0: C2, C1, PSS
acpicpu1 at acpi0: C2, C1, PSS
acpicpu2 at acpi0: C2, C1, PSS
acpicpu3 at acpi0: C2, C1, PSS
acpitz0 at acpi0: critical temperature is 103 degC
acpitz1 at acpi0: critical temperature is 126 degC
acpibat0 at acpi0: BAT0 model "45N1059" serial 21617 type LION oem 
"31310043474c"
acpithinkpad0 at acpi0
acpiac0 at acpi0: AC unit online
acpibtn0 at acpi0: LID0
acpibtn1 at acpi0: SLPB
cpu0: Enhanced SpeedStep 2594 MHz: speeds: 2601, 2600, 2500, 2400, 2300, 2200, 
2100, 2000, 1900, 1800, 1700, 1600, 1500, 1400, 1300, 1200 MHz
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "Intel Core 3G Host" rev 0x09
vga1 at pci0 dev 2 function 0 "Intel HD Graphics 4000" rev 0x09
intagp at vga1 not configured
inteldrm0 at vga1
drm0 at inteldrm0
error: [drm:pid0:intel_crtc_set_config] *ERROR* failed to set mode on [CRTC:7]
inteldrm0: 1366x768
wsdisplay0 at vga1 mux 1: console (std, vt100 emulation)
wsdisplay0: screen 1-5 added (std, vt100 emulation)
xhci0 at pci0 dev 20 function 0 "Intel 7 Series xHCI" rev 0x04: msi
usb0 at xhci0: USB revision 3.0
uhub0 at usb0 "Intel xHCI root hub" rev 3.00/1.00 addr 1
"Intel 7 Series MEI" rev 0x04 at pci0 dev 22 function 0 not configured
ehci0 at pci0 dev 26 function 0 "Intel 7 Series USB" rev 0x04: apic 2 int 16
usb1 at ehci0: USB revision 2.0
uhub1 at usb1 "Intel EHCI root hub" rev 2.00/1.00 addr 1
azalia0 at pci0 dev 27 function 0 "Intel 7 Series HD Audio" rev 0x04: msi
azalia0: codecs: Realtek ALC269, Intel/0x2806, using Realtek ALC269
audio0 at azalia0
ppb0 at pci0 dev 28 function 0 "Intel 7 Series PCIE" rev 0xc4: msi
pci1 at ppb0 bus 1
ppb1 at pci0 dev 28 function 1 "Intel 7 Series PCIE" rev 0xc4: msi
pci2 at ppb1 bus 2
iwn0 at pci2 dev 0 function 0 "Intel Centrino Wireless-N 2230" rev 0xc4: msi, 
MIMO 2T2R, BGN, address xxx
ppb2 at pci0 dev 28 function 2 "Intel 7 Series PCIE" rev 0xc4: msi
pci3 at ppb2 bus 3
rtsx0 at pci3 dev 0 function 0 "Realtek RTS5209 Card Reader" rev 0x01: msi
sdmmc0 at rtsx0
ppb3 at pci0 dev 28 function 3 "Intel 7 Series PCIE" rev 0xc4: msi
pci4 at ppb3 bus 8
re0 at pci4 dev 0 function 0 "Realtek 8168" rev 0x07: RTL8168E/8111E-VL 
(0x2c80), msi, address xxx
rgephy0 at re0 phy 7: RTL8169S/8110S PHY, rev. 5
ehci1 at pci0 dev 29 function 0 "Intel 7 Series USB" rev 0x04: apic 2 int 23
usb2 at ehci1: USB revision 2.0
uhub2 at usb2 "Intel EHCI root hub" rev 2.00/1.00 addr 1
pcib0 at pci0 dev 31 function 0 "Intel HM77 LPC" rev 0x04
ahci0 at pci0 dev 31 function 2 "Intel 7 Series AHCI" rev 0x04: msi, AHCI 1.3
ahci0: port 1: 6.0Gb/s
scsibus1 at ahci0: 32 targets
sd0 at scsibus1 targ 1 lun 0: <ATA, HGST HTS725050A7, GH2Z> SCSI3 0/direct 
fixed naa.5000cca77fc25016
sd0: 476940MB, 512 bytes/sector, 976773168 sectors
ichiic0 at pci0 dev 31 function 3 "Intel 7 Series SMBus" rev 0x04: apic 2 int 18
iic0 at ichiic0
spdmem0 at iic0 addr 0x52: 4GB DDR3 SDRAM PC3-12800 SO-DIMM
isa0 at pcib0
isadma0 at isa0
pckbc0 at isa0 port 0x60/5
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pms0 at pckbc0 (aux slot)
pckbc0: using irq 12 for aux slot
wsmouse0 at pms0 mux 0
wsmouse1 at pms0 mux 0
pms0: Synaptics clickpad, firmware 8.1
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
uhidev0 at uhub0 port 2 configuration 1 interface 0 "Razer Razer Orochi" rev 
2.00/2.00 addr 2
uhidev0: iclass 3/1
ums0 at uhidev0: 7 buttons, Z dir
wsmouse2 at ums0 mux 0
uhidev1 at uhub0 port 2 configuration 1 interface 1 "Razer Razer Orochi" rev 
2.00/2.00 addr 2
uhidev1: iclass 3/1, 3 report ids
ukbd0 at uhidev1 reportid 1: 8 variable keys, 6 key codes
wskbd1 at ukbd0 mux 1
wskbd1: connecting to wsdisplay0
uhid0 at uhidev1 reportid 2: input=2, output=0, feature=0
uhid1 at uhidev1 reportid 3: input=1, output=0, feature=0
uhidev2 at uhub0 port 4 configuration 1 interface 0 "Holtek USB Keyboard" rev 
1.10/3.90 addr 3
uhidev2: iclass 3/1
ukbd1 at uhidev2: 64 variable keys, 0 key codes
wskbd2 at ukbd1 mux 1
wskbd2: connecting to wsdisplay0
uhidev3 at uhub0 port 4 configuration 1 interface 1 "Holtek USB Keyboard" rev 
1.10/3.90 addr 3
uhidev3: iclass 3/0, 3 report ids
uhid2 at uhidev3 reportid 1: input=2, output=0, feature=0
uhid3 at uhidev3 reportid 2: input=1, output=0, feature=0
ukbd2 at uhidev3 reportid 3: 56 variable keys, 0 key codes
wskbd3 at ukbd2 mux 1
wskbd3: connecting to wsdisplay0
uhub3 at uhub1 port 1 "Intel Rate Matching Hub" rev 2.00/0.00 addr 2
umodem0 at uhub3 port 1 configuration 1 interface 1 "Lenovo H5321 gw" rev 
2.00/0.00 addr 3
umodem0: data interface 2, has CM over data, has break
umodem0: status change notification available
ucom0 at umodem0
umodem1 at uhub3 port 1 configuration 1 interface 3 "Lenovo H5321 gw" rev 
2.00/0.00 addr 3
umodem1: data interface 4, has CM over data, has break
umodem1: status change notification available
ucom1 at umodem1
umodem2 at uhub3 port 1 configuration 1 interface 9 "Lenovo H5321 gw" rev 
2.00/0.00 addr 3
umodem2: data interface 10, has CM over data, has break
umodem2: status change notification available
ucom2 at umodem2
ugen0 at uhub3 port 1 configuration 1 "Lenovo H5321 gw" rev 2.00/0.00 addr 3
uaudio0 at uhub3 port 2 configuration 1 interface 0 "Logitech Logitech USB 
Headset" rev 1.10/1.30 addr 4
uaudio0: audio rev 1.00, 4 mixer controls
audio1 at uaudio0
ugen1 at uhub3 port 4 "Intel product 0x07da" rev 2.00/78.69 addr 5
uvideo0 at uhub3 port 5 configuration 1 interface 0 "Vimicro corp. Integrated 
Camera" rev 2.00/70.14 addr 6
video0 at uvideo0
uhub4 at uhub2 port 1 "Intel Rate Matching Hub" rev 2.00/0.00 addr 2
vscsi0 at root
scsibus2 at vscsi0: 256 targets
softraid0 at root
scsibus3 at softraid0: 256 targets
ucom0 detached
umodem0 detached
ucom1 detached
umodem1 detached
ucom2 detached
umodem2 detached
ugen0 detached
root on sd0a (58e45fe582645eac.a) swap on sd0b dump on sd0b
uhidev4 at uhub3 port 1 configuration 1 interface 0 "vendor 0x0bdb product 
0x1927" rev 2.00/1.00 addr 3
uhidev4: no report descriptor
uhidev4 detached
umodem0 at uhub3 port 1 configuration 1 interface 1 "Lenovo H5321 gw" rev 
2.00/0.00 addr 3
umodem0: data interface 2, has CM over data, has break
umodem0: status change notification available
ucom0 at umodem0
umodem1 at uhub3 port 1 configuration 1 interface 3 "Lenovo H5321 gw" rev 
2.00/0.00 addr 3
umodem1: data interface 4, has CM over data, has break
umodem1: status change notification available
ucom1 at umodem1
umodem2 at uhub3 port 1 configuration 1 interface 9 "Lenovo H5321 gw" rev 
2.00/0.00 addr 3
umodem2: data interface 10, has CM over data, has break
umodem2: status change notification available
ucom2 at umodem2
ugen0 at uhub3 port 1 configuration 1 "Lenovo H5321 gw" rev 2.00/0.00 addr 3
error: [drm:pid23400:intel_crtc_set_config] *ERROR* failed to set mode on 
[CRTC:7]
error: [drm:pid3069:intel_crtc_set_config] *ERROR* failed to set mode on 
[CRTC:7]
error: [drm:pid3069:intel_crtc_set_config] *ERROR* failed to set mode on 
[CRTC:7]
error: [drm:pid3069:intel_crtc_set_config] *ERROR* failed to set mode on 
[CRTC:7]

Reply via email to