summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb
AgeCommit message (Collapse)AuthorFilesLines
2010-08-21- add a quirk for the apple clear orb usb speakersjasper1-1/+2
2010-08-20regendamien2-4/+9
2010-08-20The Hercules HWNUP-150 is a urtwn (Realtek RTL8192SU).damien1-1/+2
It makes even the smallest run(4) devices look ridiculously huge.
2010-08-18* indentation fixjakemsr1-3/+3
* use the correct variable in a DPRINTF
2010-08-18* the detach and drain functions do the same waiting for channels tojakemsr1-12/+12
complete outstanding requests, so use uaudio_drain in uaudio_detach. * the channel alt index can still be -1 at detach. check for this.
2010-08-17regenjasper2-5/+5
2010-08-17- TI doesn't mean Texas Inteljasper1-2/+2
2010-08-07No "\n" needed at the end of panic() strings.krw1-4/+4
Bogus chunks pointed out by matthew@ and miod@. No cookies for marco@ and jasper@. ok deraadt@ miod@ matthew@ jasper@ macro@
2010-08-02Handle USB_GET_REPORT, USB_GET_REPORT_DESC, USB_GET_REPORT_ID andmiod5-84/+121
USB_SET_REPORT ioctls in ukbd and ums. This allows usbhidctl to be used on these devices e.g. to dump the report descriptor of troublesome models. ok deraadt@
2010-08-02Quirk for USB_PRODUCT_MICROSOFT_WLINTELLIMOUSE turns out not to bemiod1-3/+1
required; PR 6436 ok deraadt@
2010-08-01Be more generous when parsing the report descriptor:miod1-19/+37
- parts of the report descriptor not in a format we expect are now ignored, instead of preventing attachment (e.g. hypothetical multi-bit modifiers). - modifiers beyond MAXMOD are ignored. - keycode arrays larger than MAXKEYCODE are clamped to MAXKEYCODE instead of being rejected. - multiple keycode arrays are ignored. This should allow rogue keyboards to attach and be usable up to a certain extent. Adapted from a diff sent by Loganaden Velvindron (first name at gmail), who has a keyboard which keycode array is larger than MAXKEYCODE (but, like most if not all USB keyboards out there, can only report up to three simultaneous keypresses anyway).
2010-07-31regenmiod1-3/+15
2010-07-31Support extra F-keys (up to F24) on HID keyboards.miod2-13/+26
2010-07-31Factorization of the bluetooth and usb hid input driver logic, to reduce codemiod9-908/+1298
duplication and divergence. Thanks to mlarkin@ for bluetooth devices tests.
2010-07-31The code referencing urndis_watchdog() is #if 0'd out, but the actualmk1-1/+9
function is not. This change #if 0's urndis_watchdog() and some functions that are only called from here. At some point we probably want to use the watchdog functionality but the current code is completely untested so disable it entirely rather than enabling it this close to release.
2010-07-31Break some really long lines.mk1-6/+15
2010-07-31check for audio stream and control interface descriptors in thejakemsr1-16/+38
device configuration descriptor in the match() function. stops midi devices from attaching as uaudio then bailing out, leaving a phantom uaudio.
2010-07-29Add some more devices. -mojmaja1-1/+4
2010-07-29syncmaja2-4/+19
2010-07-29Add some more displaylink devices. -mojmaja1-1/+4
2010-07-26Microsoft LifeCam needs the framesize quirk as well.mk1-1/+8
ok mglocker
2010-07-26syncmk2-4/+9
2010-07-26Add Microsoft LifeCam.mk1-1/+2
2010-07-26Fix some spacing / comment.mglocker1-6/+5
2010-07-26Make one more Sonix chipset cam work with 640x480 by a) adding it to themglocker1-3/+10
UVIDEO_FLAG_FIX_MAX_VIDEO_FRAME_SIZE quirk list and b) cranking the manually calculated frame size by pixels * 4 bytes (discussed with jakemsr@).
2010-07-26Correct the links between threads, processes, pgrps, and sessions,guenther1-8/+8
so that the process-level stuff is to/from struct process and not struct proc. This fixes a bunch of problem cases in rthreads. Based on earlier work by blambert and myself, but mostly written at c2k10. Tested by many: deraadt, sthen, krw, ray, and in snapshots
2010-07-25syncmglocker2-2/+7
2010-07-25Add another uvideo(4) device which needs themglocker1-1/+2
UVIDEO_FLAG_FIX_MAX_VIDEO_FRAME_SIZE quirk.
2010-07-23bring back changes in uaudio.c r1.83, this time remembering to commitjakemsr2-66/+232
uaudioreg.h. sorry about that. sync endpoints allow for the sample clock on USB audio devices to not be synchronized to the USB clock. the sync endpoint gives information on how much data to send to the data endpoint. although devices that require sync endpoints will "work" when the sync endpoint inormation is ignored, there is a possibility of static, echoing, or any other type of clock desync error. requires some small changes to existing code: * tighten up checks for whether a setting needs/supplies a sync endpoint. ignore settings that need a sync endpoint but don't supply one. previously all settings that require a sync endpoint were ignored. * if a sync endpoint is being used, use the same denominator for fractional samples as the sync endpoint uses (2**16). this only implements playback sync endpoints. recording sync endpoints are an odd concept: the driver would control the clock rate of the device. there may be such devices, but I can't even imagine how that could be reliably implemented. I guess you would sync to the USB clock or the system clock ... but then, what's the point?
2010-07-23revert last commit, unbreaking the tree; was missing a macro definitionsthen1-230/+65
presumably from a missing commit to a header file. go ahead kettenis@ todd@
2010-07-23support for playback sync endpointsjakemsr1-65/+230
sync endpoints allow for the sample clock on USB audio devices to not be synchronized to the USB clock. the sync endpoint gives information on how much data to send to the data endpoint. although devices that require sync endpoints will "work" when the sync endpoint inormation is ignored, there is a possibility of static, echoing, or any other type of clock desync error. requires some small changes to existing code: * tighten up checks for whether a setting needs/supplies a sync endpoint. ignore settings that need a sync endpoint but don't supply one. previously all settings that require a sync endpoint were ignored. * if a sync endpoint is being used, use the same denominator for fractional samples as the sync endpoint uses (2**16). this only implements playback sync endpoints. recording sync endpoints are an odd concept: the driver would control the clock rate of the device. there may be such devices, but I can't even imagine how that could be reliably implemented. I guess you would sync to the USB clock or the system clock ... but then, what's the point?
2010-07-21add a couple quirks for the E-MU 0202jakemsr1-4/+39
* the clock rate is configured through the audio interface, instead of on the endpoint. * since the clock rate is set on the interface, both play and record must use the same sample rate. this means the playback and recording parameters are not independent, which is what uaudio assumes.
2010-07-21* check that the bytes per frame the device is reporting isn't ajakemsr1-6/+7
ridiculous value. * encoding expansion factor is always 1.
2010-07-21move use_maxpkt out of struct chan, use a local variable in thejakemsr1-8/+6
only function that was using it.
2010-07-21some bits for USB 2.0 playback support. I'm not 100% sure aboutjakemsr1-4/+23
scaling the frame rate to the polling interval, but it works on the E-MU 0202 and it generally makes a lot of sense, especially considering that this often brings the frames rate back to 1 kHz, which is the frame rate of USB 1.x, which was the most current USB spec when USB audio 1.0 spec was written.
2010-07-21currently we use the endpoint's maximum packet size for recording,jakemsr1-21/+48
and for playback, we use a packet size that is at least one audio frame smaller. in most usb audio devices, the sample clock is synced to the usb clock. this means that for sample rates that aren't multiples of 1000, we'll occasionally need to add a frame to adjust the overall rate. that's why we use the smaller packet size. also, the usb audio spec defines a way for devices to request to always use the maximum packet size. so, * add a max_bytes_per_frame, which is the largest packet size the channel will use. use that instead of calculating what the maximum we will use is in a couple places. generally makes things easier to understand. * respect a device's request to always use maximum packet size.
2010-07-20support 24-bit encodings. simplify the way supported encodings arejakemsr1-190/+154
handled by storing an array of supported encodings. NOTE: this also removes all conversions from this driver. in particular, uaudio no longer supports 16-bit big endian encodings, because the USB audio specification only supports little endian encodings. ok ratchov
2010-07-19Lilliput UM-70 uses the newer DL1x5 chipset. -mojmaja1-2/+2
2010-07-19* don't round blocksize to multiples of 16; can cause problems whenjakemsr1-5/+2
sample size or number of channels is not a power of 2. * use 'param->bps' instead of 'param->precision / NBBY' for the number of bytes per sample. ok ratchov
2010-07-19add a quirk to allow attaching devices which claim to have a vendorjakemsr1-8/+22
defined interface class, but are audio class compliant enough to be supported by this driver. the E-MU 0202 USB is such a device. this gets it attaching, but needs some forthcoming commits to make it usable.
2010-07-19syncjakemsr2-4/+9
2010-07-19Creative Labs/E-MU 0202 USBjakemsr1-1/+2
2010-07-19move audio specific quirks out of usb_quirks and into uaudiojakemsr3-32/+55
ok krw
2010-07-15knock out MetaGeek Wi-Spy 2.4i from attaching to uhid.sthen1-1/+2
2010-07-15syncsthen2-4/+16
2010-07-15add MetaGeek Wi-Spy 2.4isthen1-1/+5
2010-07-15* Comment poll support in conf.hmglocker1-1/+6
* Comment why we call the video interrupt in the mmap interface now in uvideo.c
2010-07-15add two new members to structs audio_encoding and audio_prinfo.jakemsr1-9/+21
for both structs, the new members are 'bps' and 'msb', which describe the number of bytes per sample and data alignment in the sample, respectively. drivers must properly set these fields in the 'query_encoding', 'set_parameters' and 'get_default_params' hardware interface methods. discussed with ratchov, deraadt
2010-07-14implement poll() for video(4)jakemsr1-1/+2
ok mglocker
2010-07-14In urndis_decap(), delay the memcpy() for as long as possible. There ismk1-8/+9
no point in copying before having done the final sanity check (we copied before the last one). ok armani