| Age | Commit message (Collapse) | Author |
|
Patches from sc.dying in kern/56115:
- Set proper Max ESIT Payload value for interrupt/isoc endpoint context.
- Set proper Average TRB Length value.
- Not tested on superspeed/superspeedplus isochronous device.
- Add handling of some error paths for isochronous transfers.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Thanks for Simon Burge for plic(4).
|
|
for xhci (and ehci).
|
|
|
|
|
|
More UAC2 handling for input/output/feature/selector units.
Setting sample rate for UAC2 now works, still no support for clock selectors
and multipliers.
Added sysctl to set debug level.
Minor fixes.
|
|
|
|
|
|
Add sanity check if no default format is found.
|
|
Fix handling of clock sources (mix.wIndex wasn't set).
UAC2 can use separate clock sources (and thus sample rates) for each terminal.
That doesn't match the audio(4) model where sample rates are part of an audio
format and global. For now, try to match clocks for input and output terminals
separately.
|
|
Rather than try to recover from this, just make new commands fail so
at least we don't deadlock.
XXX pullup-9
XXX pullup-10
|
|
Root intr xfers require taking adaptive locks, which is forbidden
while polling.
This is not great -- any USB transfer completion callbacks might try
to take adaptive locks, not just uhub_intr, and that will always
causes trouble. We get lucky with ukbd_intr because it's not
MP-safe, so it relies only on the kernel lock (a spin lock) anyway.
But this change brings xhci in line with ehci.
PR kern/57326
XXX pullup-8
XXX pullup-9
XXX pullup-10
|
|
|
|
|
|
|
|
This is only half of the game as UAC2 devices tend to use 24bit or 32bit
samples. This requires more support in audio(4).
|
|
|
|
cv_timedwait only ever returns 0 or EWOULDBLOCK, so this would always
return ERESTART anyway.
No functional change intended.
|
|
- Use cv_timedwait() rather than cv_timedwait_sig(); the wait here is
bounded (and fairly short besides) and seems appropriate to treat like
other uninterruptible waits. The behavior is now consistent with com(4)
in this regard.
- Map EWOULDBLOCK return from cv_timedwait() to 0, as the successful passage
of time is not an error in this case.
- If the HUP-wait time has passed, clear the HUP-wait timestamp.
kern/57259 (although insufficient -- another change to vfs_syscalls.c
is required)
|
|
|
|
This error branch was introduced to make the system act, when a USB
serial adapter is yanked, as if the other end had spat out a line
feed in an attempt to wake any sleeping readers so they will stop
using the USB serial port.
This is no longer necessary, because ttycancel will wake them anyway,
and it is actually harmful because it puts stuff in the output queue
(CR LF) that will never be processed, causing subsequent users to
hang trying to open the device.
Problem found and patch tested by tih@.
|
|
|
|
be attached as an urndis instead of ugen, and to transmit this commit
message across the tubes.
|
|
|
|
|
|
|
|
if ukbd_attach() fails it means it has only really done the pmf
setup, nothing else, so avoid trying to remove callouts, child
devices, or console setup, usb task and uhidev operations.
fixes the crash (but not the underlying ukbd doesn't work issue)
seen in PR#57149.
|
|
|
|
in ehci_device_fs_isoc_init() to match ehci_device_isoc_init()
|
|
|
|
|
|
due to the regression reported in PR# 57031
|
|
|
|
|
|
|
|
|
|
|
|
Otherwise the error branch is based on garbage.
|
|
|
|
|
|
|
|
|
|
- Example:
xhci4 at pci17 dev 0 function 0: AMD product 15b8 (rev. 0x00)
xhci4: 64-bit DMA
allocated pic msix10 type edge pin 0 level 6 to cpu0 slot 32 idt entry 107
xhci4: interrupting at msix10 vec 0
xhci4: xHCI version 1.20
xhci4: hcs1=1000840 hcs2=140000f1 hcs3=7000a
xhci4: hcc=0x110ffc5<XECP=0x110,MAXPSA=0xf,CFC,SEC,SPC,PAE,NSS,LTC,CSZ,AC64>
xhci4: xECP 440
xhci4: hcc2=0x3f<CIC,LEC,CTC,FSC,CMC,U3C>
xhci4: ECR: 0x00000401
xhci4: ECR: 0x02000402
xhci4: SP: 0x02000402 0x20425355 0x00180101 0x00000000
xhci4: hs ports 1 - 1
xhci4: ECR: 0x000f000a
xhci4: PAGESIZE 0x00000001
xhci4: sc_pgsz 0x00001000
xhci4: sc_maxslots 0x00000040
xhci4: sc_maxports 1
xhci4: sc_maxspbuf 2
xhci4: eventst: 0x000000013ee60fc0 0xffffb08826f5afc0 1000
xhci4: dcbaa: 0x000000013ee63000 0xffffb08826f5b000 1000
xhci4: current IMOD 0
(snip)
usb8 at xhci4: USB revision 3.1
usb9 at xhci4: USB revision 2.0
uhub8 at usb8: NetBSD (0x0000) xHCI root hub (0x0000), class 9/0, rev 3.00/1.00, addr 0
uhub8: 0 ports with 0 removable, self powered
uhub8: no ports, hub ignored
uhub8: WARNING: power management not supported
autoconfiguration error: usb8: root device is not a hub
usb8: WARNING: power management not supported
uhub9 at usb9: NetBSD (0x0000) xHCI root hub (0x0000), class 9/0, rev 2.00/1.00, addr 0
uhub9: 1 port with 1 removable, self powered
- To resolve this problem, keep number of ports of SS and HS and use
it to attach child device(s).
- Tested on ASUS TUF GAMING X670E-PLUS.
- OK'd by skrll@.
|
|
ec_capabilities instead.
|