369538 |
01-Apr-2021 |
git2svn |
MFC 31070b5bc77a: Set default alternate setting when USB audio devices are not in use, to activate power save features.
Differential Revision: https://reviews.freebsd.org/D28032 Suggested by: Shichun_Ma@Dell.com Sponsored by: Mellanox Technologies // NVIDIA Networking
(cherry picked from commit 31070b5bc77a499009a835650eb9d4bf2eceaa15)
Git Hash: ba535b10228f0af8021f64890e25f44c446a6cd9 Git Author: hselasky@FreeBSD.org |
369283 |
18-Feb-2021 |
git2svn |
MFC 12148d4300db: Fix for locking order reversal in USB audio driver, when using mmap().
Locking the second lock which causes the LOR, can be skipped because the code updating the shared variables is always executing from the same USB thread.
lock order reversal: 1st 0xfffff80005cc3840 pcm7:play:dsp7.p0 (pcm play channel, sleep mutex) @ usb_transfer.c:2342 2nd 0xfffff80005cc3860 pcm7:record:dsp7.r0 (pcm record channel, sleep mutex) @ uaudio.c:2317
lock order pcm record channel -> pcm play channel established at: witness_checkorder+0x461 __mtx_lock_flags+0x98 dsp_mmap_single+0x151 vm_mmap_cdev+0x65 devfs_mmap_f+0x143 kern_mmap_req+0x594 sys_mmap+0x46 amd64_syscall+0x12e fast_syscall_common+0xf8
lock order pcm play channel -> pcm record channel attempted at: witness_checkorder+0xd82 __mtx_lock_flags+0x98 uaudio_chan_play_callback+0xeb usbd_callback_wrapper+0x7ec usb_command_wrapper+0x7e usb_callback_proc+0x8e usb_process+0xf3 fork_exit+0x80 fork_trampoline+0xe
Found by: Stefan Ehmann <shoesoft@gmx.net> Sponsored by: Mellanox Technologies // NVIDIA Networking
(cherry picked from commit 12148d4300dbbd93260bf2801cdb9eda8b3b05a4)
Git Hash: e710703067b1468226bf4d60e343d63928859ac0 Git Author: hselasky@FreeBSD.org |
368212 |
01-Dec-2020 |
hselasky |
MFC r367615: Add a tunable sysctl, hw.usb.uaudio.handle_hid, to allow disabling the the HID volume keys support in the USB audio driver.
While at it re-organize the USB audio sysctls a bit.
Differential Revision: https://reviews.freebsd.org/D27180 Sponsored by: Mellanox Technologies // NVIDIA Networking |
365242 |
02-Sep-2020 |
hselasky |
MFC r364374: Print current buffer latency in dmesg for the USB audio driver and not just the maximum.
Sponsored by: Mellanox Technologies |
363665 |
29-Jul-2020 |
markj |
MFC r363420: usb(4): Stop checking for failures from malloc(M_WAITOK). |
361175 |
18-May-2020 |
hselasky |
MFC r360790: Set PCM_CAP_VIRTUAL for virtual DSP devices.
Submitted by: Kevin Zheng <kevinz5000@gmail.com> PR: 246206 Sponsored by: Mellanox Technologies |
360305 |
25-Apr-2020 |
dim |
MFC r357146 (partial, by jhb):
Fix some misleading indentation warnings reported by recent clang.
These should not be any functional change. While the change in emul10kx-pcm.c looks like a real bug fix (as opposed to inconsistent whitespace), the extra statements were not harmful.
Reviewed by: kib Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D23363 |
359889 |
13-Apr-2020 |
hselasky |
MFC r359446: Add support for multiple playback and recording devices per physical USB audio device. This requires some structural refactoring inside the driver, mostly about converting existing audio channel structures into arrays.
The main audio mixer is provided by the first PCM instance. The non-first audio instances may only have a software mixer for PCM playback.
Tested by: Horse Ma <Shichun.Ma@dell.com> Sponsored by: Mellanox Technologies |
359886 |
13-Apr-2020 |
hselasky |
MFC r359440: Implement new mixer API to return the device pointer based on the mixer pointer.
Sponsored by: Mellanox Technologies |
359883 |
13-Apr-2020 |
hselasky |
MFC r359356: Change default microphone level from 0 to 25.
Discussed with: Horse Ma <Shichun.Ma@dell.com> Sponsored by: Mellanox Technologies |
359880 |
13-Apr-2020 |
hselasky |
MFC r359355: Improve USB audio mixer support for USB audio class 1 and 2. - make sure volume controls are correctly mapped to "pcm" and "rec" depending on how they deliver audio to the USB host. - make sure there are no duplicate record selections. - remove internal only mixer class type. - don't add software volume controls for recording only. - some minor mixer code cleanup.
Tested by: Horse Ma <Shichun.Ma@dell.com> Sponsored by: Mellanox Technologies |
359877 |
13-Apr-2020 |
hselasky |
MFC r359323: Be more intelligent when classifying USB audio terminal types, so that we don't end up using SOUND_MIXER_VOLUME for all undefined types.
Sponsored by: Mellanox Technologies |
359874 |
13-Apr-2020 |
hselasky |
MFC r359322: Make mute controls available for USB audio mixers.
Submitted by: Horse Ma <Shichun.Ma@dell.com> Sponsored by: Mellanox Technologies |
359871 |
13-Apr-2020 |
hselasky |
MFC r359321: Factor out USB audio mixer value range check.
Sponsored by: Mellanox Technologies |
359868 |
13-Apr-2020 |
hselasky |
MFC r359320: Avoid scaling USB audio mixer values twice.
Sponsored by: Mellanox Technologies |
359485 |
31-Mar-2020 |
kib |
MFC r359396: hdaa: remove verbosity from the normal driver operations. |
359114 |
19-Mar-2020 |
gonzo |
MFC r352775-r352776
r352775: snd_hda: Add Intel Cannon Lake support
Add PCI ids for Intel Cannon Lake PCH
Tested on: HP Spectre x360 13-p0043dx PR: 240574 Submitted by: Neel Chauhan <neel@neelc.org> Reviewed by: imp, mizhka, ray Differential Revision: https://reviews.freebsd.org/D21789
r352776: snd_hda: Add Intel Cannon Lake support
Add missing header change ommitted in r352775
X-MFC-with: 352775 |
358878 |
11-Mar-2020 |
hselasky |
MFC r358629: Implement a detaching flag for the sound(4) subsystem to take appropriate actions when we are trying to detach an audio device, but cannot because someone is using it.
This avoids applications having to wait for the DSP read data timeout before they receive any error indication. Tested with virtual_oss(8).
Remove some unused definitions while at it.
PR: 194727 Sponsored by: Mellanox Technologies |
352326 |
14-Sep-2019 |
hselasky |
MFC r351847: Decrease the default audio playback latency to a maximum of 21.3ms. This significantly improves the audio playback response time.
Discussed with: mav@ Sponsored by: Mellanox Technologies |
351814 |
04-Sep-2019 |
jkim |
MFC: r351231, r351233
Fix sound on headset jack for Lenovo Thinkpad X1 Carbon Gen 6 (model 20KH). |
351265 |
20-Aug-2019 |
markj |
MFC r351262: Use a sleepable lock for midistat functions.
Security: CVE-2019-5612 |
347113 |
04-May-2019 |
avatar |
MFC r338422: Adding support for CS46xx MIDI output.
With this patch, users can play the MIDI files through /dev/sequencer device with tools like playmidi. The audio output will go through the external MIDI device such like wavetable synthesis card.
Reviewed by: matk (a long time ago), kib Tested with: Terratec SiXPack 5.1+ + Yamaha DB50XG |
345822 |
03-Apr-2019 |
mav |
MFC r345332: Tune chipset naming. |
345545 |
26-Mar-2019 |
hselasky |
MFC r342961: snd_uaudio: Add quirks for Edirol UA-25EX in advanced driver mode.
Extend the vendor class USB audio quirk to cover devices without the USB audio control descriptor.
PR: 234794 Sponsored by: Mellanox Technologies |
342723 |
03-Jan-2019 |
hselasky |
MFC r342456: Fix reading of USB sample rate descriptor for SPL Crimson Rev 1.
Read first one entry, then try to read the full rate descriptor table.
PR: 234380 Sponsored by: Mellanox Technologies |
340351 |
11-Nov-2018 |
hselasky |
MFC r340248: Don't read the USB audio sync endpoint when we don't use it to save isochronous bandwidth.
Sponsored by: Mellanox Technologies |
339720 |
25-Oct-2018 |
hselasky |
MFC r339582: Drop sequencer mutex around uiomove() and make sure we don't move more bytes than is available, else a panic might happen.
Found by: Peter Holm <peter@holm.cc> Sponsored by: Mellanox Technologies |
339714 |
25-Oct-2018 |
hselasky |
MFC r339581: Fix off-by-one which can lead to panics.
Found by: Peter Holm <peter@holm.cc> Sponsored by: Mellanox Technologies |
339296 |
10-Oct-2018 |
avatar |
MFC r338200: Adding device ID for Terratec SiXPack 5.1+. |
338325 |
26-Aug-2018 |
avatar |
MFC r338038: Extending the delay cycles to give the codec more time to pump ADC data across the AC-link.
Without this patch, some CS4614 cards will need users to reload the driver manually or the hardware won't be initialised properly. Something like:
# kldload snd_csa # kldunload snd_csa # kldload snd_csa
Tested with: Terratec SiXPack 5.1+ |
336889 |
30-Jul-2018 |
hselasky |
MFC r336632: Update modify counter when setting a mixer control.
PR: 229969 |
331722 |
29-Mar-2018 |
eadler |
Revert r330897:
This was intended to be a non-functional change. It wasn't. The commit message was thus wrong. In addition it broke arm, and merged crypto related code.
Revert with prejudice.
This revert skips files touched in r316370 since that commit was since MFCed. This revert also skips files that require $FreeBSD$ property changes.
Thank you to those who helped me get out of this mess including but not limited to gonzo, kevans, rgrimes.
Requested by: gjb (re) |
331643 |
27-Mar-2018 |
dim |
MFC r314568 (by emaste):
kern_sig.c: ANSIfy and remove archaic register keyword
Sponsored by: The FreeBSD Foundation
MFC r318389 (by emaste):
Remove register keyword from sys/ and ANSIfy prototypes
A long long time ago the register keyword told the compiler to store the corresponding variable in a CPU register, but it is not relevant for any compiler used in the FreeBSD world today.
ANSIfy related prototypes while here.
Reviewed by: cem, jhb Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D10193 |
330897 |
14-Mar-2018 |
eadler |
Partial merge of the SPDX changes
These changes are incomplete but are making it difficult to determine what other changes can/should be merged.
No objections from: pfg |
330446 |
05-Mar-2018 |
eadler |
MFC r327231,r327232:
kernel: Fix several typos and minor errors lib: Fix several typos and minor errors
- duplicate words - typos - references to old versions of FreeBSD |
327170 |
25-Dec-2017 |
mav |
MFC r326186: Slightly fix bidirectional stream number allocation.
This logic is still imperfect, since it allows at most 15 bidirectional streams out of 30 allowed by specification, but at least now those should work better. On the other side I don't remember I ever saw controller supporting the bidirectional streams, so this is likely a nop change. |
324909 |
23-Oct-2017 |
mav |
MFC r324661: Add Creative vendor ID. |
322573 |
16-Aug-2017 |
mav |
MFC r322309, r322316: Use "Ibex Peak" codename for "5 Series/3400 Series" chipsets.
This is shorter and unifies naming with later chipsets. |
322572 |
16-Aug-2017 |
mav |
MFC r322308: Add new Intel Lewisburg and Union Point chipset PCI IDs.
While there, polish some old AHCI ones, since they are still reused. |
319065 |
28-May-2017 |
hselasky |
MFC r318860: Declare the "snd_fxdiv_table" once. This shaves around 24Kbytes of binary data from sound.ko and the kernel. |
318978 |
27-May-2017 |
hselasky |
MFC r318820: Increase the allowed maximum number of audio channels from 31 to 127 in the PCM feeder mixer. Without this change a value of 32 channels is treated like zero, due to using a mask of 0x1f, causing a kernel assert when trying to playback bitperfect 32-channel audio. Also update the AWK script which is generating the division tables to handle more than 18 channels. This commit complements r282650. |
317793 |
04-May-2017 |
pfg |
MFC r317583: Fix some cases where an index was used before its limits check.
Obtained from: DragonFlyBSD (git 799ba435) |
317485 |
27-Apr-2017 |
mav |
MFC r316758: Update list of Conexant and Realtek codecs. |
317484 |
27-Apr-2017 |
mav |
MFC r315961: Add ids for ALC233 found on Intel Skull Mountain NUC. |
317010 |
16-Apr-2017 |
mmel |
MFC r309532,r310674:
r309532: Add IDs for HDA codecs found on Nvidia Tegra SoCs. r310674: Limit number of stripes supported by HDA codec to maximum number announced by HDA controller. Incorrectly implermented HDA codec may report support for more stripes that HDA controller already have. Due to this, always limit number of enabled stripes by global controller maximum. |
315248 |
14-Mar-2017 |
hselasky |
MFC r312338:
Add USB audio support for S/PDIF output with C-Media CM6206 devices.
Submitted by: Julien Nadeau <vedge@hypertriton.com> PR: 216131 |
312366 |
18-Jan-2017 |
yongari |
MFC r309527-309528: r309527: Recognize RealTek ALC1150 7.1 channel HD audio codec.
r309528: Fix too low volume on MSI H170 GAMING M3 board by poking vendor specific COEF. |
308738 |
16-Nov-2016 |
mav |
MFC r308464, r308471: Add some device IDs found in my new laptop. |
308571 |
12-Nov-2016 |
hselasky |
MFC r308437 and r308461: Range check the jitter values to avoid bogus sample rate adjustments. The expected deviation should not be more than 1Hz per second. The USB v2.0 specification also mandates this requirement. Refer to chapter 5.12.4.2 about feedback.
Allow higher sample rates to have more jitter than lower ones.
PR: 208791 |
308032 |
28-Oct-2016 |
hselasky |
MFC r307651: Add support for adjusting the hardware buffering delay for USB audio.
Requested by: Goran Mekic <meka@tilda.center> |
302408 |
08-Jul-2016 |
gjb |
Copy head@r302406 to stable/11 as part of the 11.0-RELEASE cycle. Prune svn:mergeinfo from the new branch, as nothing has been merged here.
Additional commits post-branch will follow.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
301039 |
31-May-2016 |
hselasky |
Add support for simplex USB MIDI devices, which only provide BULK or INTERRUPT endpoints for moving data in one direction, like the KeyRig 49 from M-Audio.
Requested by: Ivan Klymenko <fidaj@ukr.net> MFC after: 1 week
|
299504 |
12-May-2016 |
cem |
snd_hda(4): Don't pass bogus sizeof()s to unused sysctl arg2 parameter (again)
More of the same sort of issue as r299503, just missed some sysctls added in a different place than the others.
Reported by: Coverity CIDs: 1007692, 1009677, 1009678 Sponsored by: EMC / Isilon Storage Division
|
299503 |
12-May-2016 |
cem |
snd_hda(4): Don't pass bogus sizeof()s to unused sysctl arg2 parameter
None of the sysctl handlers in hdaa use the arg2 parameter, so just pass zero instead. Additionally, the sizes being passed in were suspect (size of the pointer rather than the value).
Reported by: Coverity CIDs: 1007694, 1009679 Sponsored by: EMC / Isilon Storage Division
|
298983 |
03-May-2016 |
mav |
Add some device IDs from Intel Sunrise Point chipsets.
MFC after: 2 weeks
|
298657 |
26-Apr-2016 |
cem |
emu10kx: Don't iterate beyond array bounds
Reported by: Coverity CID: 1354978 Sponsored by: EMC / Isilon Storage Division
|
298646 |
26-Apr-2016 |
pfg |
sys/dev: extend use of the howmany() macro when available.
We have a howmany() macro in the <sys/param.h> header that is convenient to re-use as it makes things easier to read.
|
298411 |
21-Apr-2016 |
pfg |
Remove slightly used const values that can be replaced with nitems().
Suggested by: jhb
|
298339 |
20-Apr-2016 |
cem |
sound(4): Don't use-after-free in midi module unload
Also, use ANSI function parameter definitions (void) while here.
Reported by: Coverity CID: 1006107 Sponsored by: EMC / Isilon Storage Division
|
298307 |
19-Apr-2016 |
pfg |
sys/dev: use our nitems() macro when it is avaliable through param.h.
No functional change, only trivial cases are done in this sweep, Drivers that can get further enhancements will be done independently.
Discussed in: freebsd-current
|
297862 |
12-Apr-2016 |
pfg |
Replace 0 with NULL for pointers in misc. device drivers.
Found with devel/coccinelle.
|
297793 |
10-Apr-2016 |
pfg |
Cleanup unnecessary semicolons from the kernel.
Found with devel/coccinelle.
|
297387 |
29-Mar-2016 |
mav |
Add some device IDs found on AMD FCH shipsets.
MFC after: 2 weeks
|
297000 |
18-Mar-2016 |
jhibbits |
Use uintmax_t (typedef'd to rman_res_t type) for rman ranges.
On some architectures, u_long isn't large enough for resource definitions. Particularly, powerpc and arm allow 36-bit (or larger) physical addresses, but type `long' is only 32-bit. This extends rman's resources to uintmax_t. With this change, any resource can feasibly be placed anywhere in physical memory (within the constraints of the driver).
Why uintmax_t and not something machine dependent, or uint64_t? Though it's possible for uintmax_t to grow, it's highly unlikely it will become 128-bit on 32-bit architectures. 64-bit architectures should have plenty of RAM to absorb the increase on resource sizes if and when this occurs, and the number of resources on memory-constrained systems should be sufficiently small as to not pose a drastic overhead. That being said, uintmax_t was chosen for source clarity. If it's specified as uint64_t, all printf()-like calls would either need casts to uintmax_t, or be littered with PRI*64 macros. Casts to uintmax_t aren't horrible, but it would also bake into the API for resource_list_print_type() either a hidden assumption that entries get cast to uintmax_t for printing, or these calls would need the PRI*64 macros. Since source code is meant to be read more often than written, I chose the clearest path of simply using uintmax_t.
Tested on a PowerPC p5020-based board, which places all device resources in 0xfxxxxxxxx, and has 8GB RAM. Regression tested on qemu-system-i386 Regression tested on qemu-system-mips (malta profile)
Tested PAE and devinfo on virtualbox (live CD)
Special thanks to bz for his testing on ARM.
Reviewed By: bz, jhb (previous) Relnotes: Yes Sponsored by: Alex Perez/Inertial Computing Differential Revision: https://reviews.freebsd.org/D4544
|
296137 |
27-Feb-2016 |
jhibbits |
Migrate many bus_alloc_resource() calls to bus_alloc_resource_anywhere().
Most calls to bus_alloc_resource() use "anywhere" as the range, with a given count. Migrate these to use the new bus_alloc_resource_anywhere() API.
Reviewed by: jhb Differential Revision: https://reviews.freebsd.org/D5370
|
296135 |
27-Feb-2016 |
jhibbits |
Replace several bus_alloc_resource() calls with bus_alloc_resource_any()
Most of these are BARs, and we allocate them in their entirety. The one outlier in this is amdsbwd, which calls bus_set_resource() prior.
Reviewed by: jhb Differential Revision: https://reviews.freebsd.org/D5370 (partial)
|
295790 |
19-Feb-2016 |
jhibbits |
Replace several bus_alloc_resource() calls using default arguments with bus_alloc_resource_any()
Since these calls only use default arguments, bus_alloc_resource_any() is the right call.
Differential Revision: https://reviews.freebsd.org/D5306
|
295440 |
09-Feb-2016 |
hselasky |
To support userspace audio daemons like Virtual OSS, /dev/sndstat is made writeable by the root user. Userspace audio daemons can add or update an entry in /dev/sndstat by doing a single system write call to any /dev/sndstat file descriptor handle. When the audio daemon closes the file handle or is killed the entry disappears.
While at it, cleanup the sound status code a bit: - keep the device list sorted to avoid sorting the list every time a /dev/sndstat read request is made. - factor out locking into a pair of locking macros. - use the sound status lock to protect all per file handle states, when generating the output for /dev/sndstat and when removing or adding sound status devices. This way sndstat_acquire() and sndstat_release() become superfluous and can be removed.
Reviewed by: mav @ Differential Revision: https://reviews.freebsd.org/D5191
|
294883 |
27-Jan-2016 |
jhibbits |
Convert rman to use rman_res_t instead of u_long
Summary: Migrate to using the semi-opaque type rman_res_t to specify rman resources. For now, this is still compatible with u_long.
This is step one in migrating rman to use uintmax_t for resources instead of u_long.
Going forward, this could feasibly be used to specify architecture-specific definitions of resource ranges, rather than baking a specific integer type into the API.
This change has been broken out to facilitate MFC'ing drivers back to 10 without breaking ABI.
Reviewed By: jhb Sponsored by: Alex Perez/Inertial Computing Differential Revision: https://reviews.freebsd.org/D5075
|
294632 |
23-Jan-2016 |
br |
o Add gain-level control registers. o Fix style.
Sponsored by: Machdep, Inc.
|
292080 |
11-Dec-2015 |
imp |
Create a USB_PNP_INFO and use it to export the existing PNP tables. Some drivers needed some slight re-arrangement of declarations to accommodate this. Change the USB pnp tables slightly to allow better compatibility with the system by moving linux driver info from start of each entry to the end. All other PNP tables in the system have the per-device flags and such at the end of the elements rather that at the beginning.
Differential Review: https://reviews.freebsd.org/D3458
|
289888 |
24-Oct-2015 |
avatar |
- Plugging a memory leak when malloc() failed during initialisation; - Plugging another memory leak inside the destructor.
Reviewed by: matk MFC after: 3 weeks
|
286887 |
18-Aug-2015 |
avatar |
Using the error return code documented in the comment.
Though there is no direct midi_uninit() caller amongst existing drivers at this moment, a quick experiment indicates that EBUSY gives users more precise error message once drivers start to honour this result. For example, emu_midi_detach() should check the result of mpu401_uninit() and block module unloading if there is any MIDI I/O in progress.
MFC after: 2 weeks
|
286886 |
18-Aug-2015 |
avatar |
Fixing typo as well as improving readability of a few comments.
MFC after: 3 days
|
285723 |
20-Jul-2015 |
mav |
Increase output amp on ASUS UX31A by +5dB.
While there, implement couple helper functions.
|
284865 |
26-Jun-2015 |
adrian |
Rename seq_* to mseq_*, to avoid clashes with seq.h (namely, seq_read.)
|
283291 |
22-May-2015 |
jkim |
CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten years for head. However, it is continuously misused as the mpsafe argument for callout_init(9). Deprecate the flag and clean up callout_init() calls to make them more consistent.
Differential Revision: https://reviews.freebsd.org/D2613 Reviewed by: jhb MFC after: 2 weeks
|
283064 |
18-May-2015 |
hselasky |
Fix an off-by-one error by adding proper range checks when parsing the HDA association descriptors. This fixes a crash during device probe for some HDA PCI devices.
Reported by: David Wolfskill <david@catwhisker.org> Reviewed by: mav @ MFC after: 1 week
|
282652 |
08-May-2015 |
hselasky |
Ensure the USB audio driver doesn't attach twice on the same USB device by grabbing all the USB audio device interfaces.
MFC after: 1 week
|
282651 |
08-May-2015 |
hselasky |
Add support for more than 8 audio channels per PCM stream for USB audio class compliant devices under FreeBSD. Tested using 16 recording and 16 playback audio channels simultaneously.
MFC after: 2 weeks
|
282650 |
08-May-2015 |
hselasky |
Extend the maximum number of allowed PCM channels in a PCM stream to 127 and decrease the maximum number of sub-channels to 1. These definitions are only used inside the kernel and can be changed later if more than one sub-channel is desired. This has been done to allow so-called USB audio rack modules to work with FreeBSD.
Bump the FreeBSD version to force recompiling all external modules.
MFC after: 2 weeks Reviewed by: mav
|
282017 |
26-Apr-2015 |
hselasky |
Allow DSP basename cloning to be disabled or enabled at boot and runtime. This is useful when implementing OSS sound stacks in userspace via libcuse for example.
MFC after: 2 weeks
|
281544 |
15-Apr-2015 |
rpaulo |
snd_hda: add support for the Lenovo X1 20BS model.
This requires a patch to redirect the output to a separate DAC when the headphones are used. While there, add device strings for Intel Broadwell HDA controllers and Realtek ALC292 codecs.
MFC after: 1 week
|
280442 |
24-Mar-2015 |
hselasky |
Make all PCM core sysctls tunable and remove redundant TUNABLE() statements. This allows for setting all PCM core parameters in the kernel environment through loader.conf(5) or kenv(1) which is useful for pluggable PCM devices like USB audio devices which might be plugged after that sysctl.conf(5) is executed.
|
280429 |
24-Mar-2015 |
hselasky |
Use the feedback value from the synchronization endpoint as fallback when there is no recording channel.
MFC after: 3 days PR: 198444
|
280322 |
21-Mar-2015 |
hselasky |
The synchronisation value returned by the so-called feedback endpoint appears to be too inaccurate that it can be used to synchronize the playback data stream. If there is a recording endpoint associated with the playback endpoint, use that instead. That means if the isochronous OUT endpoint is asynchronus the USB audio driver will automatically start recording, if possible, to get exact information about the needed sample rate adjustments. In no recording endpoint is present, no rate adaption will be done.
While at it fix an issue where the hardware buffer pointers don't get reset at the first device PCM trigger.
Make some variables 32-bit to avoid problems with multithreading.
MFC after: 3 days PR: 198444
|
278503 |
10-Feb-2015 |
hselasky |
Revert r274918 and make a better solution. Poll the synchronisation endpoint less frequently to make the sample rate adjustment more accurate. This should resolve problems with the DN32-USB module for Midas audio systems and possibly other similar products from Klark Teknik.
MFC after: 3 days
|
277214 |
15-Jan-2015 |
bapt |
Sound: fix typos in user visible messages etc.
Submitted by: Sascha Wildner <saw@online.de> Obtained from: DragonFly MFC after: 3 days
|
276701 |
05-Jan-2015 |
hselasky |
Make a bunch of USB debug SYSCTLs tunable, so that their value(s) can be set before the USB device(s) are probed.
|
275101 |
26-Nov-2014 |
mav |
Add bunch of PCI IDs of Intel Wildcat Point (9 Series) chipsets.
MFC after: 1 week
|
274918 |
23-Nov-2014 |
hselasky |
Don't use the synchronization endpoint unless referenced by the isochronous endpoint descriptor used for the data transfers, hence the synchronization feature might not be supposed to be supported [yet]. This makes seamless playback synced with the USB HOST clock work with the DN32-USB module for Midas audio systems and possibly other similar products from Klark Teknik.
MFC after: 1 week
|
274105 |
04-Nov-2014 |
bapt |
Partially fix indentation issues to improve readability helping cooperation with Dragonfly folks
PR: 194785 Submitted by: François Tigeot (ftigeot@wolfpond.org)
|
274035 |
03-Nov-2014 |
bapt |
Remove check for obsolete FreeBSD versions
PR: 194517 Submitted by: François Tigeot <ftigeot@wolfpond.org>
|
273377 |
21-Oct-2014 |
hselasky |
Fix multiple incorrect SYSCTL arguments in the kernel:
- Wrong integer type was specified.
- Wrong or missing "access" specifier. The "access" specifier sometimes included the SYSCTL type, which it should not, except for procedural SYSCTL nodes.
- Logical OR where binary OR was expected.
- Properly assert the "access" argument passed to all SYSCTL macros, using the CTASSERT macro. This applies to both static- and dynamically created SYSCTLs.
- Properly assert the the data type for both static and dynamic SYSCTLs. In the case of static SYSCTLs we only assert that the data pointed to by the SYSCTL data pointer has the correct size, hence there is no easy way to assert types in the C language outside a C-function.
- Rewrote some code which doesn't pass a constant "access" specifier when creating dynamic SYSCTL nodes, which is now a requirement.
- Updated "EXAMPLES" section in SYSCTL manual page.
MFC after: 3 days Sponsored by: Mellanox Technologies
|
272254 |
28-Sep-2014 |
hselasky |
Instead of creating the full range of possible ports, try to figure out the actual number of so-called "embedded jacks" which are present when a USB MIDI device is attaching.
MFC after: 3 days
|
271218 |
07-Sep-2014 |
hselasky |
Update mixer description for FastTrackPro.
MFC after: 3 days
|
270134 |
18-Aug-2014 |
hselasky |
Use the "bSubslotSize" and "bSubFrameSize" fields to obtain the actual sample size. According to the USB audio frame format specification from USB.org, the value in the "bBitResolution" field can be less than the actual sample size, depending on the actual hardware, and should not be used for this computation.
PR: 192755 MFC after: 1 week
|
269228 |
29-Jul-2014 |
mav |
Add support for SOUND_MIXER_INFO IOCTL, used by gstreamer.
Submitted by: Dmitry Luhtionov <dmitryluhtionov@gmail.com> MFC after: 2 weeks
|
269158 |
27-Jul-2014 |
adrian |
Update from mav@ - don't break the input switching.
|
269152 |
27-Jul-2014 |
adrian |
Add support for my Lenovo T400.
Tested:
* Lenovo T400, model w/ P8700 Intel CPU on-board
|
268584 |
13-Jul-2014 |
markj |
Add a headphone redirection quirk for the Lenovo G580.
MFC after: 1 week
|
268351 |
07-Jul-2014 |
marcel |
Remove ia64.
This includes: o All directories named *ia64* o All files named *ia64* o All ia64-specific code guarded by __ia64__ o All ia64-specific makefile logic o Mention of ia64 in comments and documentation
This excludes: o Everything under contrib/ o Everything under crypto/ o sys/xen/interface o sys/sys/elf_common.h
Discussed at: BSDcan
|
267992 |
28-Jun-2014 |
hselasky |
Pull in r267961 and r267973 again. Fix for issues reported will follow.
|
267985 |
27-Jun-2014 |
gjb |
Revert r267961, r267973:
These changes prevent sysctl(8) from returning proper output, such as:
1) no output from sysctl(8) 2) erroneously returning ENOMEM with tools like truss(1) or uname(1) truss: can not get etype: Cannot allocate memory
|
267961 |
27-Jun-2014 |
hselasky |
Extend the meaning of the CTLFLAG_TUN flag to automatically check if there is an environment variable which shall initialize the SYSCTL during early boot. This works for all SYSCTL types both statically and dynamically created ones, except for the SYSCTL NODE type and SYSCTLs which belong to VNETs. A new flag, CTLFLAG_NOFETCH, has been added to be used in the case a tunable sysctl has a custom initialisation function allowing the sysctl to still be marked as a tunable. The kernel SYSCTL API is mostly the same, with a few exceptions for some special operations like iterating childrens of a static/extern SYSCTL node. This operation should probably be made into a factored out common macro, hence some device drivers use this. The reason for changing the SYSCTL API was the need for a SYSCTL parent OID pointer and not only the SYSCTL parent OID list pointer in order to quickly generate the sysctl path. The motivation behind this patch is to avoid parameter loading cludges inside the OFED driver subsystem. Instead of adding special code to the OFED driver subsystem to post-load tunables into dynamically created sysctls, we generalize this in the kernel.
Other changes: - Corrected a possibly incorrect sysctl name from "hw.cbb.intr_mask" to "hw.pcic.intr_mask". - Removed redundant TUNABLE statements throughout the kernel. - Some minor code rewrites in connection to removing not needed TUNABLE statements. - Added a missing SYSCTL_DECL(). - Wrapped two very long lines. - Avoid malloc()/free() inside sysctl string handling, in case it is called to initialize a sysctl from a tunable, hence malloc()/free() is not ready when sysctls from the sysctl dataset are registered. - Bumped FreeBSD version to indicate SYSCTL API change.
MFC after: 2 weeks Sponsored by: Mellanox Technologies
|
267762 |
23-Jun-2014 |
kan |
Restore the check for non-NULL dmatag in sndbuf_free.
The sound drivers that use own buffer management can use sndbuf_setup and not do any busdma allocation, so the driver will end up with the managed buffer but no valid dma map and tag for it. Avoid calling bus_dmamem_free in such cases.
Reported by: ache Missed in review by: kan
|
267581 |
17-Jun-2014 |
jhb |
Fix various bugs with freeing static DMA allocations in sound drivers: - Don't compare the DMA map to NULL to determine if bus_dmamap_unload() should be called when releasing a static allocation. Instead, compare the bus address against 0. - Don't assume that the DMA map for static allocations is NULL. Instead, save the value set by bus_dmamem_alloc() so it can later be passed to bus_dmamem_free(). Also, add missing calls to bus_dmamap_unload() in these cases before freeing the buffer. - Use the bus address from the bus_dma callback instead of calling vtophys() on the address allocated by bus_dmamem_alloc().
Reviewed by: kan
|
266808 |
28-May-2014 |
marius |
Actually, just merge r233362 and do away with the unnecessary uint8_t pointer casting altogether.
|
266799 |
28-May-2014 |
marius |
Commit the right version of r266793.
|
266793 |
28-May-2014 |
marius |
- Fix compilation with PAE support enabled by improving the casting of physical addresses. - Nuke the unused softc of emujoy(4). - Use DEVMETHOD_END. - Use NULL instead of 0 for pointers.
MFC after: 3 days Sponsored by: Bally Wulff Games & Entertainment GmbH
|
266011 |
14-May-2014 |
hselasky |
Make sure the USB audio driver is loaded last. This is important when built as part of a kernel module to prevent panics when the USB audio driver kernel module is unloaded.
Suggested by: marius @ MFC after: 1 week
|
264832 |
23-Apr-2014 |
marius |
- Sprinkle const and static as appropriate. - Convert the remainder of snd_hda(4) to take advantage of nitems(). - Use DEVMETHOD_END. - Use NULL instead of 0 for pointers.
MFC after: 3 days
|
264831 |
23-Apr-2014 |
marius |
Add quirk to configure headphones redirection on Intel DH87RL boards.
MFC after: 3 days
|
263159 |
14-Mar-2014 |
hselasky |
Workaround for USB MIDI adapters which use non-supported values of wMaxPacketSize for BULK endpoints.
MFC after: 1 week
|
263155 |
14-Mar-2014 |
hselasky |
Add support for more sample rates to USB audio driver.
Submitted by: Shunsuke Suganuma <3226388001@jcom.home.ne.jp> PR: usb/171254 MFC after: 1 week
|
262066 |
17-Feb-2014 |
eadler |
pcm(4): Permit non-root users to change default unit
Discussed with: mav
|
261508 |
05-Feb-2014 |
hselasky |
Use system macro instead of own hand-rolled one.
|
261507 |
05-Feb-2014 |
hselasky |
Add more quirks for making builtin audio speakers work with more MacBookPro's. Only tested with MacBookPro 9,2.
Obtained from: Linux MFC after: 1 week
|
260112 |
30-Dec-2013 |
dim |
In sys/dev/sound/pci/maestro.c, #if 0 two unused static functions.
MFC after: 3 days
|
258780 |
30-Nov-2013 |
eadler |
Fix undefined behavior: (1 << 31) is not defined as 1 is an int and this shifts into the sign bit. Instead use (1U << 31) which gets the expected result.
This fix is not ideal as it assumes a 32 bit int, but does fix the issue for most cases.
A similar change was made in OpenBSD.
Discussed with: -arch, rdivacky Reviewed by: cperciva
|
258170 |
15-Nov-2013 |
mav |
Add some more Intel HDA controller IDs and rename HDMI CODEC to Haswell.
|
258168 |
15-Nov-2013 |
mav |
Add ID for Intel Lynx Point HDMI CODEC.
Submitted by: Dmitry Luhtionov <dmitryluhtionov@gmail.com>
|
254263 |
12-Aug-2013 |
scottl |
Update PCI drivers to no longer look at the MEMIO-enabled bit in the PCI command register. The lazy BAR allocation code in FreeBSD sometimes disables this bit when it detects a range conflict, and will re-enable it on demand when a driver allocates the BAR. Thus, the bit is no longer a reliable indication of capability, and should not be checked. This results in the elimination of a lot of code from drivers, and also gives the opportunity to simplify a lot of drivers to use a helper API to set the busmaster enable bit.
This changes fixes some recent reports of disk controllers and their associated drives/enclosures disappearing during boot.
Submitted by: jhb Reviewed by: jfv, marius, achadd, achim MFC after: 1 day
|
253645 |
25-Jul-2013 |
uqs |
snd_ds1(4): Fix order of arguments for stereo/16bit mode
This function is called 4 times in this file, with swapped parameter ordering. Fix the function definition instead of all the call sites. 16bit/stereo or 8bit/mono playback is unaffected and was probably working fine before, this should fix 16bit/mono and 8bit/stereo playback.
Found by: Coverity Scan, CID 1006688
|
253036 |
08-Jul-2013 |
mav |
Add quirk to configure headphones redirection on ASUS UX31A laptop.
MFC after: 3 days
|
250797 |
19-May-2013 |
sbruno |
Update snd quirks for T520, T420, X220.
Group onboard mic and headphone mic jack together. Creates association that will switch between microphone inputs depending on the state of the headphone jack being connected to a live mic.
Fixes onboard mic not working at all on T520.
Tested on T520, T420. Suspect X220 needs this too, untested on.
MFC after: 1 month
|
250765 |
18-May-2013 |
hselasky |
Don't clear stall at first time use of USB MIDI endpoints. Most likely some non-USB compliant devices will choke on it sooner or later. Clear stall is strictly speaking not needed. If the first MIDI command sent or transmitted is lost, this is not a big problem for us.
MFC after: 1 week
|
250763 |
18-May-2013 |
hselasky |
Fix issue with "Logitech Webcam C525":
Set a valid alternate interface setting when enumerating USB audio devices else the device mentioned will not work like expected.
PR: usb/178722 MFC after: 1 week
|
250286 |
05-May-2013 |
mav |
Some fixes to snd_envy24ht(4) driver: - Allow DMA addresses anywhere in the lower 4GB; Envy24HT has a 32-bit DMA engine, not 28-bit like Envy24. - Mark interrupt handler as MPSAFE, seems to be correctly synchronized.
PR: kern/152378 Submitted by: Jason Harmening <jason.harmening@gmail.com> MFC after: 1 month
|
249845 |
24-Apr-2013 |
hselasky |
Fix for duplicate sample rate detection after recent patches.
|
249844 |
24-Apr-2013 |
hselasky |
Fix the USB audio feedback endpoint algorithm. There should not be any need to bias the returned value.
Reported by: Craig Leres <leres@ee.lbl.gov>
|
249830 |
24-Apr-2013 |
hselasky |
Fix playback for Focusrite Scarlett 2i2 USB recording interface.
Submitted by: Ed Maste, emaste @
|
249796 |
23-Apr-2013 |
hselasky |
Add support for runtime switching of sample rate for USB audio devices. Previously the highest sample rate was unconditionally selected.
Requested by: Craig Leres <leres@ee.lbl.gov>
|
249587 |
17-Apr-2013 |
gabor |
- Correct mispellings of word and
Submitted by: Christoph Mallon <christoph.mallon@gmx.de> (via private mail)
|
249585 |
17-Apr-2013 |
gabor |
- Corrrect mispellings of word useful
Submitted by: Christoph Mallon <christoph.mallon@gmx.de> (via private mail)
|
248786 |
27-Mar-2013 |
mav |
Add Subsystem ID field to the quirk table. Use it to identify Mac Pro 1,1, which requires OVREF to be set to get proper playback volume, but which has all zeroes in HDA controller subdevice IDs on PCI.
MFC after: 1 month Sponsored by:
|
248381 |
16-Mar-2013 |
joel |
Hide version string under verbose.
Approved by: mav
|
248254 |
13-Mar-2013 |
delphij |
Add quirk for Lenovo T530 headphone redirection.
MFC after: 2 weeks
|
248187 |
12-Mar-2013 |
glebius |
More Lenovo headphones redirection quirks: Lenovo T430, Lenovo T430S.
Submitted by: Sergey Nasonov <snasonov bcc.ru>, T430 Submitted by: Johannes Dieterich <dieterich.joh gmail.com>, T430S
|
248084 |
09-Mar-2013 |
attilio |
Switch the vm_object mutex to be a rwlock. This will enable in the future further optimizations where the vm_object lock will be held in read mode most of the time the page cache resident pool of pages are accessed for reading purposes.
The change is mostly mechanical but few notes are reported: * The KPI changes as follow: - VM_OBJECT_LOCK() -> VM_OBJECT_WLOCK() - VM_OBJECT_TRYLOCK() -> VM_OBJECT_TRYWLOCK() - VM_OBJECT_UNLOCK() -> VM_OBJECT_WUNLOCK() - VM_OBJECT_LOCK_ASSERT(MA_OWNED) -> VM_OBJECT_ASSERT_WLOCKED() (in order to avoid visibility of implementation details) - The read-mode operations are added: VM_OBJECT_RLOCK(), VM_OBJECT_TRYRLOCK(), VM_OBJECT_RUNLOCK(), VM_OBJECT_ASSERT_RLOCKED(), VM_OBJECT_ASSERT_LOCKED() * The vm/vm_pager.h namespace pollution avoidance (forcing requiring sys/mutex.h in consumers directly to cater its inlining functions using VM_OBJECT_LOCK()) imposes that all the vm/vm_pager.h consumers now must include also sys/rwlock.h. * zfs requires a quite convoluted fix to include FreeBSD rwlocks into the compat layer because the name clash between FreeBSD and solaris versions must be avoided. At this purpose zfs redefines the vm_object locking functions directly, isolating the FreeBSD components in specific compat stubs.
The KPI results heavilly broken by this commit. Thirdy part ports must be updated accordingly (I can think off-hand of VirtualBox, for example).
Sponsored by: EMC / Isilon storage division Reviewed by: jeff Reviewed by: pjd (ZFS specific review) Discussed with: alc Tested by: pho
|
247911 |
07-Mar-2013 |
glebius |
Add quirks to enable headphones redirection on number of Lenovo laptops, namely X1, X1 Carbon, T420, T520.
PR: misc/176656 Submitted by: Hiren Panchasar <hiren.panchasara gmail.com> Tested by: glebius, X1 Carbon Tested by: osa, X1 Tested by: Hiren Panchasar, T420 Tested by: sbruno, T520 Reviewed by: mav Sponsored by: Nginx, Inc.
|
247910 |
07-Mar-2013 |
glebius |
Plug a memory leak.
Reviewed by: mav Sponsored by: Nginx, Inc.
|
247815 |
04-Mar-2013 |
mav |
Add quirk to enable headphones redirection on Lenovo X220.
PR: kern/174876 MFC after: 1 week
|
246983 |
19-Feb-2013 |
uqs |
Fix typo
Submitted by: Matt Burke <mattblists@icritical.com>
|
246454 |
07-Feb-2013 |
hselasky |
Add support for mute buttons on USB audio devices and use the hwvol interface to adjust the mixer settings.
MFC after: 1 week
|
246421 |
06-Feb-2013 |
hselasky |
Add support for buttons on USB audio devices, like Volume Up and Volume Down.
Reviewed by: mav @ MFC after: 1 week
|
246128 |
30-Jan-2013 |
sbz |
Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays
Reviewed by: cognet Approved by: cognet
|
244980 |
02-Jan-2013 |
jfv |
Add Intel Lynx Point PCH HD Audio Device IDs
|
244567 |
21-Dec-2012 |
hselasky |
Reduce stack usage in the USB audio driver by moving some large stack elements to the USB audio softc structure. This fixes a double CPU fault when attaching USB audio devices in 10-current for i386 at least.
MFC after: 1 week
|
244145 |
12-Dec-2012 |
mav |
Add quirks for AD1984A codec and Lenovo X300 laptop.
PR: kern/148741 MFC after: 2 weeks
|
244027 |
08-Dec-2012 |
hselasky |
Add support for various Yamaha keyboards.
MFC after: 1 week PR: usb/174254
|
243794 |
02-Dec-2012 |
eadler |
Add a few more translations from IDs to model name.
Submitted by: "4721@hushmail.com" <4721@hushmail.com> Approved by: cperciva (implicit) MFC after: 2 weeks
|
243793 |
02-Dec-2012 |
eadler |
Add support for hdmi hda codec onboard nvidia gt 440 graphics card
PR: kern/174059 Submitted by: "4721@hushmail.com" <4721@hushmail.com> Approved by: cperciva (implicit) MFC after: 2 weeks
|
243535 |
26-Nov-2012 |
mav |
Fix uninitialized variable reported by gcc, but not clang.
|
243533 |
26-Nov-2012 |
mav |
Remove extra sbuf_trim() copy/pasted into r243530.
|
243530 |
25-Nov-2012 |
mav |
On multiple requests, compact HDA driver verbose output by hiding CODEC's detailed information under the sound debug. To make it easier accessible, export that information through the set of sysctls like dev.hdaa.X.nidY. Also tune some output to make it both more compact and informative.
|
243459 |
23-Nov-2012 |
mav |
Remove "clone manager: " message from verbose dmesg. It is pointless to print values that are statically hardcoded few lines above that.
|
243450 |
23-Nov-2012 |
mav |
Move sndbuf_setmap() output about buffer addresses from the general verbose output to sound verbose output, where all other sndbuf messages live.
|
243181 |
17-Nov-2012 |
mav |
Summarize information about connected analog pins and EDID-like data received from HDMI/DisplayPort devices in form of general connection status and sound(4)-style channel matrix. Now that information is only reported in readable form to verbose logs, but potentially could be used by sound(4) to correctly choose default devices and configure vchans.
Fix rear and side channels swap on analog 7.1 outputs. As soon as there is a huge mess in industry about naming and using of these channels, duplicate rear channels of 4 and 5.1 streams to both read and side speakers.
|
243138 |
16-Nov-2012 |
mav |
For some more completeness add matrixes for 3.1 and 7.0 channel setups.
|
242692 |
07-Nov-2012 |
kevlo |
Fix typo; s/ouput/output
|
242458 |
01-Nov-2012 |
hselasky |
Correct buffer size printout.
MFC after: 1 week
|
242455 |
01-Nov-2012 |
hselasky |
Increase default volume for FastTracker playback channels.
MFC after: 1 week
|
242453 |
01-Nov-2012 |
hselasky |
Fix sysctl free bug in last commit, which eventually leads to a panic. Add software mixer table for FastTrack Ultra. Only set volume controls which are valid at startup for standard USB audio devices, so that settings like treble and bass use the reset defaults.
MFC after: 1 week
|
242438 |
01-Nov-2012 |
hselasky |
Export all mixer nodes into dev.pcm.X.mixer.Y sysctl nodes, hence the PCM API doesn't support showing all the knobs. Make sure all the USB audio mixer nodes are freed at detach. Before this patch USB audio would leak some memory at detach. Print out buffer sizes in number of samples at attach. Fix setting of volume controls when the number of channels is greater than two.
MFC after: 1 week
|
242435 |
01-Nov-2012 |
hselasky |
Add missing inclusion guard.
|
242417 |
31-Oct-2012 |
mav |
ASUS EeePC 1001px has strange variant of ALC269 CODEC, that mutes speaker if unused in that configuration mixer at NID 15 is muted. Probably CODEC incorrectly reports its internal connections. Hide that muter from the driver to avoid muting and make built-in speaker work.
There are several different CODECs sharing this ID and I have not enough information about them and the bug to implement more universal solution.
Tested by: Big Yuuta <init.py@gmail.com> MFC after: 2 weeks
|
242357 |
30-Oct-2012 |
mav |
Set all pins initial connection status to unknown (2) and then update it with the real value in regular way if sensing is supported. This fixes minor inconsistency when playback redirection appeared in undefined state on boot if headphones were not connected.
|
242352 |
30-Oct-2012 |
mav |
Print card and subsystem IDs in verbose logs to help to identify system. Hide some less iseful messages under debug.
|
242223 |
28-Oct-2012 |
hselasky |
Implement support for the so-called USB feedback endpoint for USB audio devices. This endpoint gives clues to the USB host about the actual data rate on asynchronous endpoints and makes the more expensive USB audio devices usable under FreeBSD. The Linux USB audio driver was used as reference for the automagic shift of the received value.
MFC after: 1 week
|
242129 |
26-Oct-2012 |
hselasky |
Make sure the vendor class quirk only matches the vendor specific class, else multiple pcm devices can appear on certain USB audio devices.
MFC after: 1 week
|
241988 |
24-Oct-2012 |
hselasky |
Fix USB audio specification compliance by filtering which descriptors can appear on which interface. This fixes detection of some USB audio adapters. Also increase the channel limit for FULL speed devices to 4 channels.
Tested by: gavin MFC after: 1 week
|
241917 |
22-Oct-2012 |
eadler |
Now that device disabling is generic, remove extraneous code from the device drivers that used to provide this feature.
This is a subset of 241856 (which was reverted)
Reviewed by: des Approved by: cperciva (implicit) MFC after: 1 week
|
241885 |
22-Oct-2012 |
eadler |
This isn't functionally identical. In some cases a hint to disable unit 0 would in fact disable all units.
This reverts r241856
Approved by: cperciva (implicit)
|
241856 |
22-Oct-2012 |
eadler |
Now that device disabling is generic, remove extraneous code from the device drivers that used to provide this feature.
Reviewed by: des Approved by: cperciva MFC after: 1 week
|
241844 |
22-Oct-2012 |
eadler |
remove duplicate semicolons where possible.
Approved by: cperciva MFC after: 1 week
|
241375 |
09-Oct-2012 |
mav |
Cast vendor-specific spell on VIA VT1818S codecs alike to VT1708S to make analog input loopback and dual-stream playback work by enabling signal mixing by nid 22, as it should be according to info returned by the CODEC. Otherwise pin nid 28 receives only signal from DAC nid 16.
PR: kern/169124 MFC after: 1 week
|
241066 |
30-Sep-2012 |
kevlo |
Free result of device_get_children(9).
|
240884 |
24-Sep-2012 |
mav |
Fix panic caused by wrong pointer dereference, left after pin sense rewrite at r230551.
Also while there, make sense polling use reported for each node separately instead of reporting accumulated total status.
Submitted by: Barbara <barbara.freebsd@gmail.com> (1) MFC after: 3 days
|
240609 |
17-Sep-2012 |
hselasky |
Implement support for USB Audio v2.0. Remove some redundant USB audio v1.0 debug data, hence userspace tools like lsusb exist to show this information properly.
|
240078 |
03-Sep-2012 |
hselasky |
Add required USB AUDIO v2.0 structure definitions.
PR: misc/171254
|
239908 |
30-Aug-2012 |
mav |
Add bunch of ATI HDMI HDA controller IDs.
Submitted by: Dmitry Luhtionov <dmitryluhtionov@gmail.com> MFC after: 1 week
|
239401 |
19-Aug-2012 |
andreast |
Add a new sound driver for PowerMacs, found here on my Quad G5. It allows simple playback and volume control like the other Mac drivers, not more.
|
239326 |
16-Aug-2012 |
mav |
Fix "speaker" volume control, broken at r230451.
Reported and tested by: Slawa Olhovchenkov <slw@zxy.spb.ru> MFC after: 1 month
|
239254 |
14-Aug-2012 |
mav |
Fix multichannel input signals tracing on some CODECs like ALC260.
Reported and tested by: Slawa Olhovchenkov <slw@zxy.spb.ru> MFC after: 1 month
|
239245 |
14-Aug-2012 |
andreast |
Fix typo in comment.
|
238022 |
02-Jul-2012 |
mav |
Remove 14 not very useful characters " HDA CODEC PCM" from HDA pcm device names to shorten them. PulseAudio reported to have problems with names longer then 63 chars and at least in XMMS long names are inconvinient.
Reported by: hselasky MFC after: 3 days
|
238011 |
02-Jul-2012 |
mav |
Restore GPIO config quirks handling, lost during last big refactoring.
Tested by: hselasky MFC after: 3 days
|
237975 |
02-Jul-2012 |
glebius |
- Call bus_generic_attach() at end of hdspe_attach(). - Use own devclass_t in DRIVER_MODULE().
This fixes operation of hdspe(4) when built as loadable module.
Submitted by: Ruslan Bukin <br bsdpad.com>
|
234932 |
02-May-2012 |
pho |
Added D_TRACKCLOSE to sndstat_cdevsw to fix the situation when another process is in open() or stat() for the device node, then close() from the owning process does not result in cdevsw close method call. This fixes the pemanent "Device busy" seen.
Changed the sndstat_lock from mutex to sx. This allows to extend the region covered by the lock, to include the uiomove() call in sndstat_read() and bufptr increment. This fixes the "panic: sbuf_put_byte called with finished or corrupt sbuf" seen.
In collaboration with: kib MFC after: 1 week
|
233774 |
02-Apr-2012 |
hselasky |
Fix compiler warnings, mostly signed issues, when USB modules are compiled with WARNS=9.
MFC after: 1 weeks
|
233692 |
30-Mar-2012 |
mav |
Reenable unsolicited responses on CODEC if hdaa_sense_init() called again. This fixes jack connection events handling after suspend/resume.
PR: kern/166382 MFC after: 1 week
|
233606 |
28-Mar-2012 |
mav |
Stop HDA controller polling callout on suspend and reset it on resume.
PR: kern/166382 MFC after: 1 week
|
233362 |
23-Mar-2012 |
jhb |
Don't cast a bus address to a uint8_t pointer just to add an offset to it. Instead, add the offset directly to the bus address.
|
232337 |
01-Mar-2012 |
mav |
Add driver for the RME HDSPe AIO/RayDAT sound cards -- snd_hdspe(4). Cards are expensive and so rare, so leave the driver as module.
Submitted by: Ruslan Bukin <br@bsdpad.com> MFC after: 2 weeks
|
232039 |
23-Feb-2012 |
hselasky |
Avoid creating PCM devices for MIDI adapters.
MFC after: 3 days
|
231647 |
14-Feb-2012 |
mav |
Do not handle MOD_SHUTDOWN equally to MOD_UNLOAD in sound kernel module. MOD_SHUTDOWN is not an end of existence, and there is a life after it. In particular, code previously called on MOD_SHUTDOWN grabbed lock and deallocated unit numbering. That caused infinite wait loop if snd_uaudio tried to destroy its PCM device after that point.
MFC after: 3 days
|
231378 |
10-Feb-2012 |
ed |
Remove direct access to si_name.
Code should just use the devtoname() function to obtain the name of a character device. Also add const keywords to pieces of code that need it to build properly.
MFC after: 2 weeks
|
231024 |
05-Feb-2012 |
mav |
Remove extra semicolon.
Submitted by: emaste
|
230897 |
01-Feb-2012 |
pfg |
Use new OSS-based BSD-licensed header for cs sound driver.
The cs driver requires a table with firmware values. An alternative firmware is available in a similar Open Sound System driver. This is actually a partial revert of Revision 77504.
Special thanks to joel@ for patiently testing several replacement attempts.
The csa driver and the complete sound system are now free of the GPL.
Tested by: joel Approved by: jhb (mentor) MFC after: 3 weeks
|
230845 |
31-Jan-2012 |
mav |
Make sound(4) more flexible in setting soft buffer and block sizes when hardware imposes strict limitations on hard buffer and block sizes.
Previous code set soft buffer to be no smaller then hard buffer. On some cards with fixed 64K physical buffer that caused up to 800ms play latency. New code allows to set soft buffer size down to just two blocks of the hard buffer and to not write more then that size ahead to the hardware buffer. As result of that change I was able to reduce full practically measured record-playback loop delay in those conditions down to only about 115ms with theoretical playback latency of only about 50ms.
New code works fine for both vchans and direct cases. In both cases sound(4) tries to follow hw.snd.latency_profile and hw.snd.latency values and application-requested buffer and block sizes as much as limitation of two hardware blocks allows.
Reviewed by: silence on multimedia@
|
230807 |
31-Jan-2012 |
mav |
Just in case, clear stream interrupts before enabling them.
|
230768 |
30-Jan-2012 |
mav |
Fix typo in comments.
|
230641 |
28-Jan-2012 |
mav |
Fix HBR enabling condition. cchs is from 0 to 7, not from 1 to 8.
|
230602 |
26-Jan-2012 |
pfg |
Minor cleanups to the csa snd driver.
Remove unneeded temporary variable (data) to better match the OSS code. Remove some unused constants and type definitions.
Tested by: joel Approved by: jhb (mentor) MFC after: 3 weeks
|
230585 |
26-Jan-2012 |
mav |
Press some more info into the PCM device name: - add "+HP" in case of headphones redirection; - add device type for analog devices, if all pins have the same.
As result now it may look like "Analog 5.1+HP/2.0" or "Front Analog Mic". I hope it will be more useful than long and confusing.
MFC after: 2 months Sponsored by: iXsystems, Inc.
|
230574 |
26-Jan-2012 |
mav |
Fix typo in r230571.
Submitted by: trasz
|
230571 |
26-Jan-2012 |
mav |
Add another bunch of CODEC IDs.
|
230554 |
25-Jan-2012 |
mav |
Oops, fix the loader tunable name added in r230551.
|
230551 |
25-Jan-2012 |
mav |
Rewrite jack presence detection and implement automatic recording source selection in snd_hda(4) driver.
Now driver tracks jack presence detection status for every CODEC pin. For playback associations, when configured, that information, same as before, can be used to automatically redirect audio to headphones. Also same as before, these events are used to track digital display connection status and fetch ELD. Now in addition to that driver uses that information to automatically switch recording source of the mixer to the connected input.
When there are devices with no jack detection and with one both connected, last ones will have the precedence. As result, on most laptops after boot internal microphone should be automatically selected. But if external one (for example, headset) connected, it will be selected automatically. When external mic disconnected, internal one will be selected again.
Automatic recording source selection is enabled by default now to make recording work out of the box without touching mixer. But it can be disabled or limited only to attach time using hint.pcm.X.rec.autosrc loader tunables or dev.pcm.X.rec.autosrc sysctls.
MFC after: 2 months Sponsored by: iXsystems, Inc.
|
230537 |
25-Jan-2012 |
mav |
Allow PASSTHROUGH (AC3) to have more then 2 channels. 8 channels can be used to get more then 6.144Mbps bandwidth.
|
230532 |
25-Jan-2012 |
mav |
Fix word order in hdaa_subvendor_id() to match PCI (where it comes from), broken at r230130. This should fix applying system-specific patches.
|
230513 |
24-Jan-2012 |
mav |
In addition to r230511, allow 8 channel AC3 formats.
|
230511 |
24-Jan-2012 |
mav |
Enable High Bit Rate (HBR) Encoded Packet Type (EPT), if supported (HDMI and HBR bits set) and needed (AC3 format used with 8 channels). This should allow DTS-HD/TrueHD pass-through with rates above 6.144Mbps.
MFC after: 2 months Sponsored by: iXsystems, Inc.
|
230507 |
24-Jan-2012 |
mav |
HDMI and DisplayPort support can coexist in HDA CODEC. Report "HDMI/DP" in PCM device name if both supported.
MFC after: 2 months Sponsored by: iXsystems, Inc.
|
230488 |
23-Jan-2012 |
mav |
Realtek CODECs declare support for 32bit samples on S/PDIF input/output widgets. I am not sure if S/PDIF supports 32bit samples, but my Marantz SR4001 doesn't, producing only single clicks on playback start/stop. Because HDA controller requires 32bit alignment for all samples above 16bit, we can't handle this situation in regular way and have to set 32bit format in sound(4) for anything above 16bit. To workaround the problem, prefer to setup hardware to use 24/20bit samples when 32bit format requested. Add dev.pcm.X.play.32bit and dev.pcm.X.rec.32bit sysctls to control what format really use for 32bit samples.
MFC after: 2 months Sponsored by: iXsystems, Inc.
|
230465 |
22-Jan-2012 |
mav |
Increase snd_hda(4) default maximal buffer size from 16K to 64K and maximal from 64K to 256K.
We usually don't need 750 sound interrupts per second (1.3ms latency) when playing 192K/24/8 stream. 187 should be better. On usual 48K/16/2 it is just enough for hw.snd.latency=9 at hw.snd.latency_profile=1 with 23 and 6 interrupts per second.
MFC after: 2 weeks Sponsored by: iXsystems, Inc.
|
230451 |
22-Jan-2012 |
mav |
Complete rewrite of the snd_hda(4) volume control.
Previous code was relatively dumb. During CODEC probe it was tracing signals and statically binding amplifier controls to the OSS mixer controls. To set volume it just set all bound amplifier controls proportionally to mixer level, not looking on their hierarchy and amplification levels/offsets.
New code is much smarter. It also traces signals during probe, but mostly to find out possible amplification control rages in dB for each specific signal. To set volume it retraces each affected signal again and sets amplifiers controls recursively to reach desired amplification level in dB. It would be nice to export values in dB to user, but unluckily our OSS mixer API is too simple for that.
As result of this change: - cascaded amplifiers will work together to reach maximal precision. If some input has 0/+40dB preamplifier with 10dB step and -10/+10dB mixer with 1dB step after it, new code will use both to provide 0/+40dB control with 1dB step! We could even get -10/+50dB range there, but that is intentionally blocked for now. - different channels of multichannel associations on non-uniform CODECs such as VIA VT1708S will have the same volume, not looking that control ranges are different. It was not good when fronts were 12dB louder. - for multiplexed recording, when we can record from only one source at a time, we can now use recording amplifier controls to set different volume levels for different inputs if they have no own controls of they are less precise. If recording source change, amplifiers will be reconfigured.
To improve out-of-the-box behavior, ignore default volume levels set by sound(4) and use own, more reasonable: +20dB for mics, -10dB for analog output volume and 0dB for the rest of controls. sound(4) defaults of 75% mean absolutely random things for different controls of different CODECs because of very different control ranges. Together with further planned automatic recording source selection this should allow users to get fine playback and recording without touching mixer first. Note that existing users should delete /var/db/mixer*-state and reboot or trigger CODEC reconfiguration to get new default values.
MFC after: 2 months Sponsored by: iXsystems, Inc.
|
230401 |
20-Jan-2012 |
pfg |
Replace GPLd headers from the Maestro3 driver with BSD licensed versions derived from /usr/ports/audio/oss.
The particular headers used were taken from the attic/drv/oss_allegro directory and are mostly identical to the previous files.
The Maestro3 driver is now free from the GPL.
NOTE: due to lack of testers this driver is being considered for deprecation and removal.
PR: kern/153920 Approved by: jhb (mentor) MFC after: 2 weeks
|
230331 |
19-Jan-2012 |
mav |
Print controller/codec IDs for unknown chips instead of useless and frightening "unknown" word. In most cases we don't need to know chips to properly handle them, but having IDs in logs may simplify debugging.
MFC after: 2 weeks Sponsored by: iXsystems, Inc.
|
230326 |
19-Jan-2012 |
mav |
Two 192/24/8 playback streams overflow single mandatory output line (SDO) of HDA bus. Handle that from two directions: - Add support for "striping" (using several SDO lines), if supported. - Account HDA bus utilization and return error on new stream allocation attempt if remaining bandwidth is unsifficient.
Most of HDA controllers have one SDO line with 46Mbps output bandwidth. NVIDIA GF210 has 2 lines - 92Mbps. NVIDIA GF520 has 4 lines - 184Mbps!
MFC after: 2 months Sponsored by: iXsystems, Inc.
|
230312 |
18-Jan-2012 |
mav |
Improve HDMI/DisplayPort audio support in snd_hda(4):
- Enable and handle unsolicited responses from digital display pins, reporting connection and EDID-Like Data (ELD) validity status changes. - Fetch ELD data, describing connected digital display device audio capabilities. These data not really used at the moment (user is not denied to use audio formats not supported by the device), only printed to verbose logs. But they are useful for debugging. The fact that ELD was received tells that HDMI link was established and video driver enabled HDMI audio passthrough. Some old chips may not return ELD, so lack of it is not necessary a problem. - Add some more points to CODEC configuration sequence: - For converter widgets, supporting more then two channels (HDMI/DP converter widgets support 8), set number of channels to handle. - For digital display pins (HDMI/DP) fill audio infoframe, reporting connected device about number of channels and speakers allocation. - For digital display pins (HDMI/DP) set mapping between channels seen by software and channels transferred via HDMI/DisplayPort. - Allow more audio formats, not used for analog connections because of stereo pairs orientation, but easily applicable to HDMI/DisplayPort: 2.1, 3.0, 3.1, 4.1, 5.0, 6.0, 6.1, 7.0. That list may be filtered later using info from ELD. - Disable MSI interrupts for NVIDIA HDA controllers before GT520.
At this point I can successfully play audio over HDMI from NVIDIA GT210 and GT520 cards with nvidia-driver-290.10 driver to Marantz SR4001 receiver in 2.0, 2.1, 3.0, 4.0, 4.1, 5.0 and 5.1 PCM formats at 44, 48, 88 and 96KHz at 16 and 24 bits, same as do AC3/DTS passthrough. 6.0, 6.1, 7.0 and 7.1 PCM formats are not working for me, but I think it is because of receiver age.
MFC after: 2 months Sponsored by: iXsystems, Inc.
|
230181 |
16-Jan-2012 |
mav |
Add check to avoid assertion panic on duplicate stop.
Reported by: Yuri Pankov <yuri.pankov@gmail.com> MFC after: 2 months
|
230137 |
15-Jan-2012 |
joel |
Fix a few comment typos.
|
230133 |
15-Jan-2012 |
uqs |
Remove spurious 8bit chars, turning files into plain ASCII.
|
230130 |
15-Jan-2012 |
mav |
Major snd_hda driver rewrite: - Huge old hdac driver was split into three independent pieces: HDA controller driver (hdac), HDA CODEC driver (hdacc) and HDA sudio function driver (hdaa). - Support for multichannel recording was added. Now, as specification defines, driver checks input associations for pins with sequence numbers 14 and 15, and if found (usually) -- works as before, mixing signals together. If it doesn't, it configures input association as multichannel. - Signal tracer was improved to look for cases where several DACs/ADCs in CODEC can work with the same audio signal. If such case found, driver registers additional playback/record stream (channel) for the pcm device. - New controller streams reservation mechanism was implemented. That allows to have more pcm devices then streams supported by the controller (usually 4 in each direction). Now it limits only number of simultaneously transferred audio streams, that is rarely reachable and properly reported if happens. - Codec pins and GPIO signals configuration was exported via set of writable sysctls. Another sysctl dev.hdaa.X.reconfig allows to trigger driver reconfiguration in run-time. - Driver now decodes pins location and connector type names. In some cases it allows to hint user where on the system case connectors, related to the pcm device, are located. Number of channels supported by pcm device, reported now (if it is not 2), should also make search easier. - Added workaround for digital mic on some Asus laptops/netbooks.
MFC after: 2 months Sponsored by: iXsystems, Inc.
|
229981 |
11-Jan-2012 |
pfg |
Replace GPL'd headers in the emu10kx snd driver code.
This uses the emuxkireg.h already used in the emu10k1 snd driver. Special thanks go to Alexander Motin as he was able to find some errors and reverse engineer some wrong values in the emuxkireg header.
The emu10kx driver is now free from the GPL.
PR: 153901 Tested by: mav, joel Approved by: jhb (mentor) MFC after: 2 weeks
|
229980 |
11-Jan-2012 |
pfg |
Fix an inconsistency that crept in while replacing constants from the new header.
Approved by: jhb (mentor) MFC after: 3 days
|
229430 |
03-Jan-2012 |
pfg |
Replace a GPL'd header in the emu10k1 snd driver code.
This brings in the emuxkireg.h from NetBSD (dev/pci) which is used for the same purpose but is smaller. The emu10k1 is now free from the GPL.
PR: 153901 Obtained from: NetBSD Approved by: core (mentor implicit) MFC after: 2 weeks
|
228727 |
20-Dec-2011 |
mav |
Oops, list of IDs is not sequential. Have to list all of them expoicitly.
|
228726 |
20-Dec-2011 |
mav |
Cast some vendor-specific spell on VIA VT1708S codecs to: - make analog input loopback work; - get access to the mics boost controls.
Sponsored by: iXsystems, Inc. MFC after: 1 month
|
228485 |
14-Dec-2011 |
hselasky |
Use usbd_transfer_unsetup() instead of usbd_transfer_stop() so that we don't have to worry about locking.
MFC after: 1 weeks
|
228484 |
14-Dec-2011 |
hselasky |
Stop USB audio transfers early so that any audio applications will time out and close opened /dev/dspX.Y device(s), if any. This is a workaround because we cannot unregister PCM devices while the audio character device is in use.
Add a missing inclusion guard.
MFC after: 1 weeks
|
227843 |
22-Nov-2011 |
marius |
- There's no need to overwrite the default device method with the default one. Interestingly, these are actually the default for quite some time (bus_generic_driver_added(9) since r52045 and bus_generic_print_child(9) since r52045) but even recently added device drivers do this unnecessarily. Discussed with: jhb, marcel - While at it, use DEVMETHOD_END. Discussed with: jhb - Also while at it, use __FBSDID.
|
227309 |
07-Nov-2011 |
ed |
Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs.
The SYSCTL_NODE macro defines a list that stores all child-elements of that node. If there's no SYSCTL_DECL macro anywhere else, there's no reason why it shouldn't be static.
|
227293 |
07-Nov-2011 |
ed |
Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs.
This means that their use is restricted to a single C file.
|
225617 |
16-Sep-2011 |
kmacy |
In order to maximize the re-usability of kernel code in user space this patch modifies makesyscalls.sh to prefix all of the non-compatibility calls (e.g. not linux_, freebsd32_) with sys_ and updates the kernel entry points and all places in the code that use them. It also fixes an additional name space collision between the kernel function psignal and the libc function of the same name by renaming the kernel psignal kern_psignal(). By introducing this change now we will ease future MFCs that change syscalls.
Reviewed by: rwatson Approved by: re (bz)
|
225505 |
12-Sep-2011 |
avg |
dsp_ioctl: fix type of variable used to store ioctl request
PR: kern/156433 Submitted by: Grigori Goronzy <greg@chown.ath.cx> Reviewed by: hselasky Approved by: re (kib) MFC after: 1 week
|
225414 |
06-Sep-2011 |
hselasky |
Fix precedence warning when compiling kernel with clang.
Approved by: re (kib) Submitted by: dim MFC after: 1 week
|
224967 |
18-Aug-2011 |
mav |
Fix headphones pin configuration on Lenovo B450 laptop.
Submitted by: "Sergey V. Dyatko" <sergey.dyatko@gmail.com> Approved by: re (kib)
|
224024 |
14-Jul-2011 |
hselasky |
Restore USB MIDI transmit buffer size to 1Kbyte.
MFC after: 1 week
|
223736 |
03-Jul-2011 |
hselasky |
Introduce a quirk for broken USB MIDI hardware instead of limiting performance in general.
MFC after: 1 week
|
223727 |
02-Jul-2011 |
hselasky |
Fix problem about USB MIDI TX data format, that some devices only accept a maximum of 4 bytes (one command) per short terminated USB transfer. Optimise the TX case by sending multiple USB frames.
MFC after: 1 week
|
223554 |
26-Jun-2011 |
nwhitehorn |
Do not attach to the sound device on G5 Xserves, which is actually an LED controller used to run the load graph on the server's front panel.
Reported by: Paul Mather <paul at gromit dot dlib dot vt dot edu> MFC after: 3 days
|
223486 |
24-Jun-2011 |
hselasky |
- Move all USB device ID arrays into so-called sections, sorted according to the mode which they support: host, device or dual mode - Add generic tool to extract these data: tools/bus_autoconf
Discussed with: imp Suggested by: Robert Millan <rmh@debian.org> PR: misc/157903 MFC after: 14 days
|
223118 |
15-Jun-2011 |
joel |
Hide driver revision behind bootverbose.
Approved by: mav
|
223058 |
13-Jun-2011 |
mav |
Add bunch of Conexant codec IDs. For some of them add quirks to disable excessive signal paths to simplify tracer's life.
|
222826 |
07-Jun-2011 |
mav |
Make automatic hw.snd.default_unit choice a bit more intelligent. Instead of just setting it to the first registered device, reevaluate it for each device registered, trying to choose best candidate, unless one was forced. For now use such preference order: play&rec, play, rec.
As side effect, this should workaround the situation when HDMI audio output of the video card, usually not connected to anything, becomes default, that requires manual user intervention to make sound working. If at some point this won't be enough, we can try to fetch some additional priority flags from the device driver.
|
222298 |
26-May-2011 |
mav |
Add better names for the Intel HDMI audio codecs.
|
222051 |
18-May-2011 |
avg |
usb: change to one-pass probing of device drivers
This brings USB bus more in line with how newbus is supposed to be used. Also, because of the two-pass probing the following message was produced by devd in default configuration when almost any USB device was connected: Unknown USB device: vendor <> product <> bus <> This should be fixed now.
Note that many USB device drivers pass some information from probe method to attach method via ivars. For this to continue working we rely on the fact that the subr_bus code calls probe method of a winning driver again before calling its attach method in the case where multiple drivers claim to support a device. This is done because device description is set in successful probe methods and we want to get a correct device description from a winning driver. So now this logic is re-used for setting ivars too.
Reviewed by: hselasky MFC after: 1 month
|
221809 |
12-May-2011 |
avg |
fix build on 32-bit platforms for r221803
Casting a pointer to a wide integer is probably not that bad, but I am still guilty of not testing this.
Pointyhat to: avg MFC after: 1 week X-MFC with: r221803
|
221803 |
12-May-2011 |
avg |
dsp/pcm: allow to mmap both read and write buffers using the same fd
This brings our implementation in line with OSS specification for systems that support mmap. The change should also improve compatibility with OSS software not specifically written for FreeBSD, e.g. PulseAudio OSS plugin.
Reviewed by: kib, jhb MFC after: 1 week
|
221794 |
12-May-2011 |
jfv |
Correct a typo
|
221789 |
11-May-2011 |
jfv |
Chipset support for the new Intel Panther Point PCH, thanks to Seth Heasley for preparing the changes.
|
221695 |
09-May-2011 |
hselasky |
Workaround for broken no-name USB audio devices sold by dealextreme called "3D sound" and the alike.
MFC after: 14 days
|
221388 |
03-May-2011 |
avg |
SNDCTL_DSP_GETIPTR: set pointer to sndbuf_getfreeptr()
Rationale: - unlike current behavior this seems to be compliant with OSS specification: http://manuals.opensound.com/developer/SNDCTL_DSP_GETIPTR.html - this seems to meet expectations of some OSS programs compiled for or ported from Linux, e.g. ALSA OSS plugin - this doesn't seem to break any programs as far as current testing shows
Tested by: nox, hselasky MFC after: 4 days
|
220900 |
20-Apr-2011 |
hselasky |
Only set the sample rate if the USB audio channel reports that it supports the frequency control request.
MFC after: 7 days Approved by: thompsa (mentor)
|
219548 |
11-Mar-2011 |
marius |
Allocate the sound buffer DMA memory coherent. While NetBSD typically also does this for sound drivers it's probably not necessary for all combinations of controllers and drivers. However, given that our sound drivers completely lack bus_dmamap_sync(9) calls this at least serves as a workaround when enabling use of the IOMMU streaming buffers on sparc64 and generally for arm and mips.
MFC after: 2 weeks
|
218988 |
24-Feb-2011 |
hselasky |
- Add support for some non-standard USB MIDI devices from Roland, by means of allowing vendor specific interface class for audio and MIDI devices. - Add new quirks for this. The vendor and product list in OpenBSD's dev/usb/umidi_quirks.c was used as reference.
MFC after: 14 days Approved by: thompsa (mentor)
|
218909 |
21-Feb-2011 |
brucec |
Fix typos - remove duplicate "the".
PR: bin/154928 Submitted by: Eitan Adler <lists at eitanadler.com> MFC after: 3 days
|
218791 |
18-Feb-2011 |
hselasky |
- Make an enum for all the umidi USB transfers. - Use the USB stack's builtin clear-stall feature. - Wrap some long lines. - Use memcpy() instead of bcopy(). - Use memset() instead of bzero(). - Tested applications: /usr/ports/audio/fluidsynth
MFC after: 7 days Approved by: thompsa (mentor)
|
218478 |
09-Feb-2011 |
marius |
Correct signedness and off-by-one issues in parameters used for DMA tag creation.
PR: 154259 Submitted by: Vladislav Movchan (partially) MFC after: 3 days
|
218149 |
01-Feb-2011 |
jfv |
Support for the new Patsburg PCH chipset: - SMBus Controller - SATA Controller - HD Audio Controller - Watchdog Controller
Thanks to Seth Heasley (seth.heasley@intel.com) for providing us code.
MFC after 3 days
|
217368 |
13-Jan-2011 |
mdf |
Fix up a few more sysctl(9) mis-typing found in various LINT builds.
|
217323 |
12-Jan-2011 |
mdf |
sysctl(9) cleanup checkpoint: amd64 GENERIC builds cleanly.
Commit the rest of the devices.
|
217265 |
11-Jan-2011 |
jhb |
Remove unneeded includes of <sys/linker_set.h>. Other headers that use it internally contain nested includes.
Reviewed by: bde
|
216766 |
28-Dec-2010 |
yongari |
Add device id for RDC M3010 which is found on Vortex86 SoC.
Reviewed by: mav
|
216592 |
20-Dec-2010 |
tijl |
Merge amd64 and i386 bus.h and move the resulting header to x86. Replace the original amd64 and i386 headers with stubs.
Rename (AMD64|I386)_BUS_SPACE_* to X86_BUS_SPACE_* everywhere.
Reviewed by: imp (previous version), jhb Approved by: kib (mentor)
|
216518 |
18-Dec-2010 |
tijl |
Use convenience functions where possible instead of accessing the PCI configuration registers directly.
Remove pci_enable_io calls where they are redundant. The PCI bus driver will set the right bits when the corresponding bus resource is activated.
Remove redundant pci_* function calls from suspend/resume methods. The bus driver already saves and restores the PCI configuration.
Reviewed by: jhb Approved by: kib (mentor)
|
215034 |
09-Nov-2010 |
brucec |
Fix typos.
PR: bin/148894 Submitted by: olgeni
|
214332 |
25-Oct-2010 |
mav |
Make hw.snd.vpc_0db to be also a loader tunable.
|
213779 |
13-Oct-2010 |
rpaulo |
Fix a brain-o: wrong case statement semantics.
Found with: clang
|
211910 |
28-Aug-2010 |
jfv |
Add Intel Cougar Point PCH HD Audio Controller ID
MFC in a week
|
210839 |
04-Aug-2010 |
gavin |
Do not free sc if attach failed, as it was allocated by the bus infrastructure, not us. This appears to be a leftover from an older version of the driver.
Submitted by: avg Tested by: Anton Shterenlikht <mexas bristol.ac.uk> MFC after: 1 week X-MFC-Note: To stable/8 and stable/7 only
|
209452 |
22-Jun-2010 |
thompsa |
- fix for USB audio devices which use the 7-byte endpoint descriptor instead of the 9-byte one. - remove sync-endpoint code, which is currently unused.
Reported by: Antun Matanovi Submitted by: Hans Petter Selasky
|
209450 |
22-Jun-2010 |
thompsa |
Reduce MIDI input buffer size to one USB packet, hence some USB devices don't properly short terminate their transfers. This fixes a problem where input appears several seconds late.
Reported by: Alexander Yerenkow Submitted by: Hans Petter Selasky
|
209193 |
15-Jun-2010 |
avg |
sound/pcm: use non-const string as a value with SYSCTL_STRING
Although the sysctls are marked with CTLFLAG_RD and the values will stay immutable, current sysctl implementation stores value pointer in void* type, which means that const qualifier is discarded anyway and some newer compilers complaint about that. We can't use de-const trick in sysctl implementation, because in that case we could miss an opposite situation where a const value is used with CTLFLAG_RW sysctl.
Complaint from: gcc 4.4, clang MFC after: 2 weeks
|
208934 |
09-Jun-2010 |
mav |
Add set of codec IDs.
PR: kern/147466
|
207620 |
04-May-2010 |
jkim |
- Remove more dead code[1]. Since r207330, we only need to check division by zero of the second argument 'from'. - Prefer u_int32_t over unsigned int to make its intention more clearer. - Move the function to a header file and make it a static inline function.
Pointed out by: Andrew Reilly (areilly at bigpond dot net dot au)[1] MFC after: 3 days
|
207330 |
28-Apr-2010 |
jkim |
Remove dead code. Calculated greatest common divisor was not used at all. On top of that, LLVM+Clang mis-compiles this code because of its register allocator bug.
Analyzed by: Andrew Reilly (areilly at bigpond dot net dot au) Reviewed by: ariff, rdivacky MFC after: 3 days
|
207077 |
22-Apr-2010 |
thompsa |
Change USB_DEBUG to #ifdef and allow it to be turned off. Previously this had the illusion of a tunable setting but was always turned on regardless.
MFC after: 1 week
|
206033 |
01-Apr-2010 |
joel |
Fix the gap between mute and lowest possible volume. The es1370 mixer volumes were incorrectly calculated.
I've tested this with one of my es1370 cards and I can confirm that it works.
PR: 98167 Submitted by: Joseph Terner <jtsn@gmx.de> Approved by: kib
|
205859 |
29-Mar-2010 |
joel |
Start copyright notices with /*-
|
205734 |
27-Mar-2010 |
mav |
Fix lock leakage.
PR: kern/145081
|
205413 |
21-Mar-2010 |
mav |
Add some more codec IDs.
|
204875 |
08-Mar-2010 |
joel |
Looks like I forgot to add half of the copyright text when we switched to our preferred license.
|
204351 |
26-Feb-2010 |
mav |
Fix bug in headphones audio redirection using separate DAC. It was exposed by removing channel duplication during multichannel audio implementation.
|
203678 |
08-Feb-2010 |
brucec |
Rename usb2_ structures and variables to usb_.
Approved by: rrs (mentor) Discussed with: hps
|
202796 |
22-Jan-2010 |
mav |
Oops! r202789 broke recording from input mixer. Restore previous "mix" usage and use "igain" instead for input-to-output monitoring loopback.
|
202789 |
22-Jan-2010 |
mav |
- Improve tracer, to handle more cases of input-to-output monitoring loopback. - Change the meaning of "mix" OSS control. Now it controls loopback level, according to comments in soundcard.h. - Allow AD1981HD codecs to use playback mixer. Now driver should be able to really use it. - Fix bug in shared muters operation.
|
202736 |
21-Jan-2010 |
mav |
Print playback channels paths in order of their sequence numbers, not nids.
|
202267 |
13-Jan-2010 |
mav |
Hide from default sndstat some information not used on daily basis, to make it readable by average user with average screen size.
|
202170 |
12-Jan-2010 |
mav |
Make OSS_GETVERSION ioctl supported also for DSP devices, same as 4Front and Linux do.
MFC after: 1 month
|
202166 |
12-Jan-2010 |
mav |
Make default recording source choosing more intelligent. Change default recording level from 0 to 75. It should increase chances for things to work just out of the box.
|
202156 |
12-Jan-2010 |
mav |
Align buffer size to LCM of 128bytes, required by hardware, and alignment of current format. This fixes problems with non-power-of-2 number of channels.
Enable 5.1 formats support, as they are working fine now.
|
202150 |
12-Jan-2010 |
mav |
Make OSS_GETVERSION ioctl really work. It has 'M' group, not 'P', as different nearby ones, and was grabbed by MIXER_xxx() handler.
While there, replace '(cmd & MIXER_xxx(0)) == MIXER_xxx(0)' expressions with more correct '(cmd & ~0xff) == MIXER_READ(0)'. Use of bit operations to compare numeric fields doesn't looks sane.
MFC after: 1 month
|
202127 |
11-Jan-2010 |
mav |
Add multichannel (4.0 and 7.1) playback support. 5.1 mode support blocked now due to unidentified synchonization problem. For 7.1 soundcards 5.1 support handled correctly via software upmix done by sound(4).
Stereo stream is no more duplicated to all ports. If you loose sound, check you are using right connectors. Front speakers connector is usually green, center/LFE - orange, rear - black, side - gray.
|
201758 |
07-Jan-2010 |
mbr |
Remove extraneous semicolons, no functional changes.
Submitted by: Marc Balmer <marc@msys.ch> MFC after: 1 week
|
201223 |
29-Dec-2009 |
rnoland |
Update d_mmap() to accept vm_ooffset_t and vm_memattr_t.
This replaces d_mmap() with the d_mmap2() implementation and also changes the type of offset to vm_ooffset_t.
Purge d_mmap2().
All driver modules will need to be rebuilt since D_VERSION is also bumped.
Reviewed by: jhb@ MFC after: Not in this lifetime...
|
201145 |
28-Dec-2009 |
antoine |
(S)LIST_HEAD_INITIALIZER takes a (S)LIST_HEAD as an argument. Fix some wrong usages. Note: this does not affect generated binaries as this argument is not used.
PR: 137213 Submitted by: Eygene Ryabinkin (initial version) MFC after: 1 month
|
200825 |
22-Dec-2009 |
thompsa |
- add support for more than 2 audio channels. [1] - add support for more sample rates
Submitted by: [1] ariff (earlier version), Hans Petter Selasky
|
200375 |
11-Dec-2009 |
mav |
Add one more set of codec IDs.
|
199846 |
26-Nov-2009 |
mav |
Add two Cirrus Logic codec IDs. Add GPIO setting quirk for Apple MacBookPro5,5.
Submitted by: ed
|
199677 |
22-Nov-2009 |
thompsa |
add support for MIDI devices without audio control stream.
Submitted by: Hans Petter Selasky
|
199576 |
20-Nov-2009 |
thompsa |
remove volume alignment (was previously not correctly implemented)
Submitted by: HPS Reported by: Jaakko Heinonen
|
199258 |
13-Nov-2009 |
mav |
Add more codec IDs.
|
199060 |
08-Nov-2009 |
thompsa |
Improve support for High-speed USB audio devices. - fix issues regarding the mixer, where the interface number was not set in time. - fix wrong use of resolution parameter.
Submitted by: Hans Petter Selasky
|
197640 |
30-Sep-2009 |
mav |
Fix typo in previous commit. Add Realtek ALC887 codec ID.
|
197611 |
29-Sep-2009 |
mav |
Add some bits of HDMI/DisplayPort support from later specification updates. It may be not enough to make them work, but at least should give some information about these beasts.
|
197404 |
22-Sep-2009 |
joel |
Move es137x.c and es137x.h to a 2-clause BSD license. Also move a few comments.
Submitted by: Joachim Kuebart Approved by: core, Russell Cattelan <cattelan@thebarn.com>
|
197401 |
22-Sep-2009 |
marius |
- According to Linux, the ALi M5451 can do 31-bit DMA instead of just 30-bit like the reset of the controllers supported by this driver. Actually ALi M5451 can be setup up to generate 32-bit addresses by setting the 31st bit via the accompanying ISA bridge, which allows it to work in sparc64 machines whose IOMMU require at least 32-bit DMA. Even though other architectures would also benefit from 32-bit DMA, enabling this bit is limited to sparc64 as bus_dma(9) doesn't generally guarantee that a low address of BUS_SPACE_MAXADDR_32BIT results in a buffer in the 32-bit range. - According to Tatsuo YOKOGAWA's ali(4), the the DMA transfer size of ALi M5451 is fixed to 64k and in fact using the default size of 4k - The 4DWAVE DX and NX require the recording buffer to be 8-byte aligned so adjust the bus_dma_tag_create(9) accordingly. - Unlike the rest of the controllers supported by this driver, the ALi M5451 only has 32 hardware channels instead of 64 so limit the loop in tr_intr() accordingly. [1]
Submitted by: yongari [1] Reviewed by: yongari (superset of what is committed) MFC after: 3 days
|
197018 |
09-Sep-2009 |
mav |
Add NVidia MCP89 HDA controller IDs.
|
197017 |
09-Sep-2009 |
mav |
Add Intel 82801JD (one more ICH10) HDA controller ID.
Submitted by: yongari
|
196762 |
02-Sep-2009 |
mav |
Improve HDA controller capabilities logging.
|
196487 |
24-Aug-2009 |
alfred |
Remove redundant Giant reference. Giant will be dropped automatically when the mutex argument is NULL.
Reported by: Various people Submitted by: hps
|
196403 |
20-Aug-2009 |
jhb |
Temporarily revert the new-bus locking for 8.0 release. It will be reintroduced after HEAD is reopened for commits by re@.
Approved by: re (kib), attilio
|
196219 |
14-Aug-2009 |
jhb |
Purge mergeinfo from files that were temporarily renamed while USB2 was imported into the tree alongside USB.
Approved by: re (mergeinfo blanket)
|
196037 |
02-Aug-2009 |
attilio |
Make the newbus subsystem Giant free by adding the new newbus sxlock. The newbus lock is responsible for protecting newbus internIal structures, device states and devclass flags. It is necessary to hold it when all such datas are accessed. For the other operations, softc locking should ensure enough protection to avoid races.
Newbus lock is automatically held when virtual operations on the device and bus are invoked when loading the driver or when the suspend/resume take place. For other 'spourious' operations trying to access/modify the newbus topology, newbus lock needs to be automatically acquired and dropped.
For the moment Giant is also acquired in some key point (modules subsystem) in order to avoid problems before the 8.0 release as module handlers could make assumptions about it. This Giant locking should go just after the release happens.
Please keep in mind that the public interface can be expanded in order to provide more support, if there are really necessities at some point and also some bugs could arise as long as the patch needs a bit of further testing.
Bump __FreeBSD_version in order to reflect the newbus lock introduction.
Reviewed by: ed, hps, jhb, imp, mav, scottl No answer by: ariff, thompsa, yongari Tested by: pho, G. Trematerra <giovanni dot trematerra at gmail dot com>, Brandon Gooch <jamesbrandongooch at gmail dot com> Sponsored by: Yahoo! Incorporated Approved by: re (ksmith)
|
195961 |
30-Jul-2009 |
alfred |
USB audio: - code factoring patch from "Eygene Ryabinkin" - P4 ID: 166149
Submitted by: hps Approved by: re
|
195690 |
14-Jul-2009 |
mav |
Disable MSI by default for nVidia MCP55 chipset. It is reported to be broken in the same way as MCP51.
PR: kern/136429 Approved by: re (kib)
|
195689 |
14-Jul-2009 |
ariff |
- Do aggresive saturation on various polynomial interpolators. This dramatically pushing 99.9% interpolations and quantizations error _below_ -180dB on 32bit dynamic range, resulting extremely high quality conversion. - Use BSPLINE interpolator for filter oversampling factor greater or equal than 64 (log2 6).
Approved by: re (kib)
|
195640 |
12-Jul-2009 |
marcel |
Isochronous transfers only have 1 frame buffer, but multiple frame lengths. The frame buffer is at index 0.
Approved by: re (kensmith) Obtained from: HPS
|
195519 |
09-Jul-2009 |
ariff |
Rearrange shift operation to increase interpolation accuracy, further reducing conversion artifacts and better worst case SNR.
Approved by: re (kib)
|
195378 |
05-Jul-2009 |
ariff |
- Increase dynamic range of filter coefficients from 28bit to 30bit. This cause dramatic effect in overall precision and conversion quality by pushing down most aliasing artifacts around -180 dB.
Spectrogram analysis/comparison:
http://people.freebsd.org/~ariff/z_comparison/z_28vs30/
- Guard against possible 64bit overflow during accumulation process by slightly normalize and saturate sample and coefficient multiplication, possible during extreme 32bit downsampling (eg. 380KHz -> 8KHz) with custom preset that require more than ~7000 taps filter (which is overkill).
- Add knobs through FEEDER_RATE_PRESETS to set dynamic range of filter coefficients/accumulator and prefered polynomial interpolator:
COEFFICIENT_BIT:X (where 1 <= X <= 30, default: 30)
ACCUMULATOR_BIT:X (where 32 <= X <=64, default: 58)
INTERPOLATOR:I (where I = ZOH, LINEAR, QUADRATIC, HERMITE, BSPLINE, OPT32X, OPT16X, OPT8X, OPT4X, OPT2X)
Approved by: re (kib)
|
195120 |
27-Jun-2009 |
thompsa |
Use the correct mutex in umidi_open()
Submitted by: Hans Petter Selasky Approved by: re (kib)
|
194990 |
25-Jun-2009 |
kib |
Change the type of uio_resid member of struct uio from int to ssize_t. Note that this does not actually enable full-range i/o requests for 64 architectures, and is done now to update KBI only.
Tested by: pho Reviewed by: jhb, bde (as part of the review of the bigger patch)
|
194861 |
24-Jun-2009 |
mav |
Some DMA related changes: - honor parent DMA tag limitations, as man page requires, - allow data buffer to be allocated within full 64bit address range, when support is announced by hardware, - add quirk, disabling 64bit addresses for broken chips, use it for MCP78.
|
194805 |
24-Jun-2009 |
ariff |
Slight comment fix.
|
194682 |
23-Jun-2009 |
thompsa |
Fix a typeo in the frame len function to unbreak the build, make it shorter while I am here.
|
194677 |
23-Jun-2009 |
thompsa |
- Make struct usb_xfer opaque so that drivers can not access the internals - Reduce the number of headers needed for a usb driver, the common case is just usb.h and usbdi.h
|
194233 |
15-Jun-2009 |
ariff |
- Add a way to change filter oversampling factor through FEEDER_RATE_PRESET "OVERSAMPLING_FACTOR:X .. .." where X = log2(oversampling factor).
- Lower down default filter oversampling factor from 128 (log2 = 7) to 32 (log2 = 5), saving worth of 80 Kb. The use of better polynomial interpolator will raise its conversion quality/accuracy to match (or slightly better) with previous settings.
- Bump driver version.
|
194232 |
15-Jun-2009 |
ariff |
Remap type of polynomial interpolators for better polyphase coefficients quality: - Linear interpolator for oversampling factor larger and equal than 4096 (log2 = 12). - Quadratic interpolator for oversampling factor larger and equal than 256 (log2 = 8).
Default oversampling factor (128 ~ log2 = 7) will use OPT32X, which provides better accuracy.
|
194228 |
15-Jun-2009 |
thompsa |
s/usb2_/usb_|usbd_/ on all function names for the USB stack.
|
194177 |
14-Jun-2009 |
mav |
Fix type of lowaddr variable.
|
193979 |
11-Jun-2009 |
ariff |
Remove custom KOBJMETHOD(), CHANNEL_DECLARE() and MIXER_DECLARE() (enabled with SND_DEBUG) that was intended to provoke build failure due to inconsistencies.
|
193886 |
10-Jun-2009 |
ariff |
Move machine dependant AFMT_* definition from sound.h to global soundcard.h .
|
193779 |
08-Jun-2009 |
ariff |
Fix compile time warning on sparc64, thanks to strict kobj signatures checking.
Noticed by: bz
|
193694 |
08-Jun-2009 |
ariff |
Fix powerpc build failure due to strict kobj signatures checking.
|
193667 |
07-Jun-2009 |
ariff |
Fix build on sparc64.
Pointy hat: ariff@
|
193642 |
07-Jun-2009 |
ariff |
Bump driver revision (should have bumped it earlier).
|
193640 |
07-Jun-2009 |
ariff |
Sound Mega-commit. Expect further cleanup until code freeze.
For a slightly thorough explaination, please refer to [1] http://people.freebsd.org/~ariff/SOUND_4.TXT.html .
Summary of changes includes:
1 Volume Per-Channel (vpc). Provides private / standalone volume control unique per-stream pcm channel without touching master volume / pcm. Applications can directly use SNDCTL_DSP_[GET|SET][PLAY|REC]VOL, or for backwards compatibility, SOUND_MIXER_PCM through the opened dsp device instead of /dev/mixer. Special "bypass" mode is enabled through /dev/mixer which will automatically detect if the adjustment is made through /dev/mixer and forward its request to this private volume controller. Changes to this volume object will not interfere with other channels.
Requirements: - SNDCTL_DSP_[GET|SET][PLAY|REC]_VOL are newer ioctls (OSSv4) which require specific application modifications (preferred). - No modifications required for using bypass mode, so applications like mplayer or xmms should work out of the box.
Kernel hints: - hint.pcm.%d.vpc (0 = disable vpc).
Kernel sysctls: - hw.snd.vpc_mixer_bypass (default: 1). Enable or disable /dev/mixer bypass mode. - hw.snd.vpc_autoreset (default: 1). By default, closing/opening /dev/dsp will reset the volume back to 0 db gain/attenuation. Setting this to 0 will preserve its settings across device closing/opening. - hw.snd.vpc_reset (default: 0). Panic/reset button to reset all volume settings back to 0 db. - hw.snd.vpc_0db (default: 45). 0 db relative to linear mixer value.
2 High quality fixed-point Bandlimited SINC sampling rate converter, based on Julius O'Smith's Digital Audio Resampling - http://ccrma.stanford.edu/~jos/resample/. It includes a filter design script written in awk (the clumsiest joke I've ever written) - 100% 32bit fixed-point, 64bit accumulator. - Possibly among the fastest (if not fastest) of its kind. - Resampling quality is tunable, either runtime or during kernel compilation (FEEDER_RATE_PRESETS). - Quality can be further customized during kernel compilation by defining FEEDER_RATE_PRESETS in /etc/make.conf.
Kernel sysctls: - hw.snd.feeder_rate_quality. 0 - Zero-order Hold (ZOH). Fastest, bad quality. 1 - Linear Interpolation (LINEAR). Slightly slower than ZOH, better quality but still does not eliminate aliasing. 2 - (and above) - Sinc Interpolation(SINC). Best quality. SINC quality always start from 2 and above.
Rough quality comparisons: - http://people.freebsd.org/~ariff/z_comparison/
3 Bit-perfect mode. Bypasses all feeder/dsp effects. Pure sound will be directly fed into the hardware.
4 Parametric (compile time) Software Equalizer (Bass/Treble mixer). Can be customized by defining FEEDER_EQ_PRESETS in /etc/make.conf.
5 Transparent/Adaptive Virtual Channel. Now you don't have to disable vchans in order to make digital format pass through. It also makes vchans more dynamic by choosing a better format/rate among all the concurrent streams, which means that dev.pcm.X.play.vchanformat/rate becomes sort of optional.
6 Exclusive Stream, with special open() mode O_EXCL. This will "mute" other concurrent vchan streams and only allow a single channel with O_EXCL set to keep producing sound.
Other Changes: * most feeder_* stuffs are compilable in userland. Let's not speculate whether we should go all out for it (save that for FreeBSD 16.0-RELEASE). * kobj signature fixups, thanks to Andriy Gapon <avg@freebsd.org> * pull out channel mixing logic out of vchan.c and create its own feeder_mixer for world justice. * various refactoring here and there, for good or bad. * activation of few more OSSv4 ioctls() (see [1] above). * opt_snd.h for possible compile time configuration: (mostly for debugging purposes, don't try these at home) SND_DEBUG SND_DIAGNOSTIC SND_FEEDER_MULTIFORMAT SND_FEEDER_FULL_MULTIFORMAT SND_FEEDER_RATE_HP SND_PCM_64 SND_OLDSTEREO
Manual page updates are on the way.
Tested by: joel, Olivier SMEDTS <olivier at gid0 d org>, too many unsung / unnamed heroes.
|
193465 |
04-Jun-2009 |
thompsa |
revert r162516. We only support 1 or 2 channels per stream which reflects mono and stereo.
Submitted by: Hans Petter Selasky
|
193228 |
01-Jun-2009 |
mav |
Comment out old Realtek ALC883 quirk, that was disabling phantop power on mic inputs. I have no idea what for it was made that time, but now I have several reports that it should be removed to make microphones work. If this quirk is still required for some systems then they should be identified and specified explicitly.
|
193045 |
29-May-2009 |
thompsa |
s/usb2_/usb_/ on all typedefs for the USB stack.
|
192984 |
28-May-2009 |
thompsa |
s/usb2_/usb_/ on all C structs for the USB stack.
|
192929 |
27-May-2009 |
thompsa |
Provide a workaround for USB devices that do not support mono or stereo operation by overriding the channel count.
Submitted by: Hans Petter Selasky Reported by: MIHIRA Sanpei Yoshiro
|
192921 |
27-May-2009 |
joel |
Slightly adjust copyright text.
Approved by: Hannu Savolainen <hannu@opensound.com>
|
192920 |
27-May-2009 |
joel |
Slightly adjust copyright text.
Approved by: luigi
|
192919 |
27-May-2009 |
joel |
Separate comments from the license text.
|
192505 |
21-May-2009 |
thompsa |
Fix a few variable renames of usb2_mode outside dev/usb.
|
192460 |
20-May-2009 |
joel |
Slightly adjust copyright text.
Approved by: matk
|
192458 |
20-May-2009 |
joel |
Remove license clauses 3 and 4 as per rev. 1.65 of midi.c in NetBSD.
Approved by: matk
|
192457 |
20-May-2009 |
joel |
Remove license clauses 3 and 4 as per rev. 1.65 of auvia.c in NetBSD.
|
192453 |
20-May-2009 |
joel |
Remove license clauses 3 and 4 as per rev. 1.112 of uaudio.c and rev. 1.15 of uaudioreg.h in NetBSD.
|
192452 |
20-May-2009 |
joel |
Remove license clauses 3 and 4 as per rev. 1.12 of cs4231reg.h in NetBSD.
|
191911 |
08-May-2009 |
mav |
Add one more board ID with inverted external amplifier control.
PR: kern/121156
|
191310 |
20-Apr-2009 |
stas |
- Unlock softc mutex on failure.
MFC after: 1 week
|
191308 |
20-Apr-2009 |
stas |
- Properly unlock mutex on failure in channel_trigger. Before this the function just returned with the mutex held.
MFC after: 1 week
|
190749 |
05-Apr-2009 |
piso |
Remove pointeless mergeinfo that crept in from r190633.
|
190734 |
05-Apr-2009 |
thompsa |
MFp4 //depot/projects/usb@159909
- make usb2_power_mask_t 16-bit - remove "usb2_config_sub" structure from "usb2_config". To compensate for this "usb2_config" has a new field called "usb_mode" which select for which mode the current xfer entry is active. Options are: a) Device mode only b) Host mode only (default-by-zero) c) Both modes. This change was scripted using the following sed script: "s/\.mh\././g". - the standard packet size table in "usb_transfer.c" is now a function, hence the code for the function uses less memory than the table itself.
Submitted by: Hans Petter Selasky
|
190633 |
01-Apr-2009 |
piso |
Implement an ipfw action to reassemble ip packets: reass.
|
190630 |
01-Apr-2009 |
mav |
Add some more logic for AD1986A codec input tracing. Use mic preamplifier only for mic-type inputs. This gives better chances to use it.
Change default configuration for some AD1986A codec based ASUS boards, use it also for ASUS P5PL2 board. This makes front mic preamplifier working.
Tested by: Vadim Frolov <frolov@frolov.ck.ua>
|
190581 |
30-Mar-2009 |
mav |
Integrate user/mav/ata branch:
Add ch_suspend/ch_resume methods for PCI controllers and implement them for AHCI. Refactor AHCI channel initialization according to it.
Fix Port Multipliers operation. It is far from perfect yet, but works now. Tested with JMicron JMB363 AHCI + SiI 3726 PMP pair. Previous version was also tested with SiI 4726 PMP.
Hardware sponsored by: Vitsch Electronics / VEHosting.nl
|
190519 |
29-Mar-2009 |
mav |
Fixup relative pointers after channel realloc. It fixes crash on systems with several HDA codecs per controller.
While I am there, remove some unneeded dereferences.
Submitted by: Tor Egge <Tor.Egge@cvsup.no.freebsd.org>
|
189879 |
16-Mar-2009 |
mav |
Remove CD input hack for ALC268 based Acer systems. Latest systems does not implement CD input in hardware, while unconditional showing it confuse users. Also it was made in the way that sometimes improper with present driver.
Add patch for ALC268 based Acer TM5320 to make headphones jack sensing work. Default configuration defines two separate playback associations, which current driver unable to trace properly due to order they are defined and limited codec uniformity.
Submitted by: G. Mirov <g.mirov AT gmail.com>
|
189876 |
16-Mar-2009 |
mav |
Fix spelling in message.
|
189699 |
11-Mar-2009 |
dfr |
Merge in support for Xen HVM on amd64 architecture.
|
189575 |
09-Mar-2009 |
imp |
remove now-redunant cardbus attachment.
|
189275 |
02-Mar-2009 |
thompsa |
Rename the ushub device class back to uhub as it was in the old usb stack, moused(8) looks for "uhub/ums" to decide if needs to load the module.
Reported by: Garrett Cooper
|
189127 |
27-Feb-2009 |
mav |
Copy/paste bug fix for previos commit.
|
189110 |
27-Feb-2009 |
thompsa |
Change USB over to make_dev() for all device nodes, previously it hooked into the devfs clone handler to open the (invisible) devices on the fly.
The /dev entries are layed out as follows,
/dev/usbctl = master device /dev/usb/0.1.0.5 = usb device, (<bus>.<dev>.<iface>.<endpoint>) /dev/ugen0.1 -> usb/0.1.0.0 = ugen link to ctrl endpoint
This also removes the custom permissions model from USB. Bump __FreeBSD_version to 800066.
Submitted by: rink (earlier version)
|
189086 |
26-Feb-2009 |
mav |
Add MSI blacklisting support.
Disable MSI for nVidia MCP51 controller. Enabling MSI there leads to unexpected errors and timeouts, that should not happen even if interrupts are not working completely.
|
188957 |
23-Feb-2009 |
thompsa |
Move the uaudio and ata-usb drivers into their correct locations.
|
188955 |
23-Feb-2009 |
thompsa |
Move two missed usb drivers out to the graveyard location under sys/legacy/dev.
|
188656 |
15-Feb-2009 |
mav |
Enable MSI support by default. Still can be disabled using device.hints.
|
188510 |
12-Feb-2009 |
mav |
s/succeded/succeeded/ in comments.
|
188480 |
11-Feb-2009 |
netchild |
All open fixes and improvements from Konstantin for which users had to use patches so far: + Envy24: - fix: broken init data for M Audio Delta DiO 2496 - add: support for M Audio Delta 44 - add: support for M Audio Delta 1010LT Tested by: Dominique Goncalves, dominique.goncalves at gmail.com - add: support for Terratec EWX 2496 Tested by: Stefan Sperling, stsp at stsp.name - add: support for M Audio Delta 66 Tested by: Richard Bown, richard.bown at blueyonder.co.uk - add: support for M Audio Delta 1010 Tested by: Andrew Reilly, areilly at bigpond.net.au + Envy24HT: - add: support for Terrasoniq TS22PCI - fix: M-Audio Revolution 5.1 sound volume is very low Reported by: Oliver Hartmann, ohartman at zedat.fu-berlin.de Andrey Slusar, anrays at gmail.com Tested by: Andrey Slusar, anrays at gmail.com Rusu Silviu, arol.the at gmail.com - fix: M-Audio Revolution 7.1 sound is distorted and very quiet Reported by: Olev Hannula, hannula at gmail.com Tested by: Olev Hannula, hannula at gmail.com Stanislav Belansky, stanislav at icmail.ru - fix: Terratec PHASE 22 codec is power-off due to wrong init data Reported by: Philipp Ost, pj at smo.de Tested by: Philipp Ost, pj at smo.de + SpicDS: - fix: AK4381 produce hiss sound on 192kHz sample rate - fix: stupid bug with volume control for AK4396
Submitted by: Konstantin Dimitrov <kosio.dimitrov@gmail.com>
|
188424 |
09-Feb-2009 |
cognet |
Hmm... "base? base : 0" and "base" should be equivalent.
Pointy hat to: cognet
MFC after: 3 days
|
188259 |
07-Feb-2009 |
nwhitehorn |
Rearrange this code slightly to pass softcs around instead of device_t, solving a possible panic when snd_ai2s is loaded at boot time. Also change the device setup to indicate to the pcm layer that the device is MPSAFE.
Submitted by: Marco Trillo Suggestions by: Ariff Abdullah
|
187944 |
31-Jan-2009 |
mav |
Fix bug in hint.hdac.X.config parsing.
|
187721 |
26-Jan-2009 |
mav |
Specify analog beep pin widget for several AD codecs. It gives working speaker control for that systems.
|
187717 |
26-Jan-2009 |
nwhitehorn |
Change the way our softc is stored to use the devinfo facility provided by pcm instead of the regular device softc interface. This brings the AOA driver in line with the other pcm drivers.
Requested by: ariff
|
187692 |
25-Jan-2009 |
nwhitehorn |
Add support for the I2S and davbus audio controllers found in Apple PowerPC hardware.
Submitted by: Marco Trillo
|
187445 |
19-Jan-2009 |
mav |
Add two more nVidia HDMI codec IDs.
|
187375 |
18-Jan-2009 |
keramida |
Add support for CMedia CMI120.
PR: kern/123640 Approved by: ariff MFC after: 2 weeks
|
187202 |
13-Jan-2009 |
mav |
Correct spelling in comment.
|
187196 |
13-Jan-2009 |
mav |
Improve AD1983 codec support: - force playback via mixer to get PCM volume control, - make cleanup on recoring source selection.
|
187154 |
13-Jan-2009 |
mav |
Change configuration order to enable output only after codec is configured. Mute all mixer controllable amplifiers initially to let mixer to unmute only some of them later. This should reduce clicks and noises during boot.
|
187052 |
11-Jan-2009 |
mav |
Fix unwanted crosschannel mixing, possible on some codecs like VIA VT1708B and Realtek ALC268.
|
187036 |
10-Jan-2009 |
mav |
OSS tools expect EINVAL for unsupported ioctls, but not ENXIO.
|
187034 |
10-Jan-2009 |
mav |
Make devnode include full device path. This makes OSSv4 osstest tool work.
|
187032 |
10-Jan-2009 |
mav |
Remove debug slipped with the previous commit.
|
187030 |
10-Jan-2009 |
mav |
Import some new constants and structures fields from OSSv4. Implement some OSSv4 ioctls to make ossinfo tool work and print something reasonable.
|
187020 |
10-Jan-2009 |
mav |
Add one more bunch of controller and codec IDs.
|
186912 |
08-Jan-2009 |
mav |
Add external connector jack color into widget names. It should help users to identify them while reading verbose messages.
|
186875 |
07-Jan-2009 |
mav |
Add some new oss_sysinfo structure fields from OSSv4.
|
186851 |
07-Jan-2009 |
rafan |
- Remove snd_au88x0 which seems never got compiled into kernel nor as a kernel module. These files cause manual interaction when building ports/audio/aureal-kmod which provides a usable i386-only driver (it requires linking against some linux object files distributed by vendor which bankrupted back in 2000).
MFC after: 1 week
|
186511 |
27-Dec-2008 |
mav |
Add some found NVidia MCP7x HDA controller IDs.
|
186503 |
26-Dec-2008 |
mav |
Add some special handling for AD1986A codec:
Disable some unneeded pathes in overcomplicated input mixer to help parser to handle the rest better. This gives mic input boost control in some configurations and just more predictable operation in others.
|
186430 |
23-Dec-2008 |
mav |
Organize Conexant codecs. Add CX20561 (Hermosa) codec ID.
|
186403 |
22-Dec-2008 |
mav |
Add 9 more Analog Devices codec names.
|
186301 |
18-Dec-2008 |
mav |
Add ULI M5461 chipset and vendor ID.
|
186146 |
16-Dec-2008 |
mav |
Add some HDMI codec IDs.
|
186145 |
15-Dec-2008 |
mav |
Add VIA VT1708B codec IDs.
|
185236 |
23-Nov-2008 |
mav |
Remove DELAY() on hdac_audio_commit(). I don't see the reason why it is needed.
|
185230 |
23-Nov-2008 |
mav |
Do not use soft PCM volume for digital outputs to allow SPDIF AC3 bypass to work. Soft PCM volume (and vchans) unable to bypass AC3 stream now.
|
185225 |
23-Nov-2008 |
mav |
Strictly differentiate digital and analog PCM devices according to codec nodes capabilities. Add "Analog"/"Digital" marks to the pcm device names.
I hope it will help new users easier accept concept of several PCM devices and understand exact purposes of that devices.
|
185178 |
22-Nov-2008 |
mav |
Whitespace cleanup for previous commit.
|
185177 |
22-Nov-2008 |
mav |
Handle device_get_children() errors in more correct way. We shouldn't detach until all children are surely destroyed.
Found with: Coverity Prevent(tm) CID: 2137
|
185176 |
22-Nov-2008 |
mav |
Change check order to avoid array overrun.
Found with: Coverity Prevent(tm) CID: 2497
|
184991 |
15-Nov-2008 |
mav |
Correct association 0 handling. as=0 means unused pin, so disable it explicitly, this is mostly cosmetics.
|
184610 |
04-Nov-2008 |
alfred |
Bring in USB4BSD, Hans Petter Selasky rework of the USB stack that includes significant features and SMP safety.
This commit includes a more or less complete rewrite of the *BSD USB stack, including Host Controller and Device Controller drivers and updating all existing USB drivers to use the new USB API:
1) A brief feature list:
- A new and mutex enabled USB API.
- Many USB drivers are now running Giant free.
- Linux USB kernel compatibility layer.
- New UGEN backend and libusb library, finally solves the "driver unloading" problem. The new BSD licensed libusb20 library is fully compatible with libusb-0.1.12 from sourceforge.
- New "usbconfig" utility, for easy configuration of USB.
- Full support for Split transactions, which means you can use your full speed USB audio device on a high speed USB HUB.
- Full support for HS ISOC transactions, which makes writing drivers for various HS webcams possible, for example.
- Full support for USB on embedded platforms, mostly cache flushing and buffer invalidating stuff.
- Safer parsing of USB descriptors.
- Autodetect of annoying USB install disks.
- Support for USB device side mode, also called USB gadget mode, using the same API like the USB host side. In other words the new USB stack is symmetric with regard to host and device side.
- Support for USB transfers like I/O vectors, means more throughput and less interrupts.
- ... see the FreeBSD quarterly status reports under "USB project"
2) To enable the driver in the default kernel build:
2.a) Remove all existing USB device options from your kernel config file.
2.b) Add the following USB device options to your kernel configuration file:
# USB core support device usb2_core
# USB controller support device usb2_controller device usb2_controller_ehci device usb2_controller_ohci device usb2_controller_uhci
# USB mass storage support device usb2_storage device usb2_storage_mass
# USB ethernet support, requires miibus device usb2_ethernet device usb2_ethernet_aue device usb2_ethernet_axe device usb2_ethernet_cdce device usb2_ethernet_cue device usb2_ethernet_kue device usb2_ethernet_rue device usb2_ethernet_dav
# USB wireless LAN support device usb2_wlan device usb2_wlan_rum device usb2_wlan_ral device usb2_wlan_zyd
# USB serial device support device usb2_serial device usb2_serial_ark device usb2_serial_bsa device usb2_serial_bser device usb2_serial_chcom device usb2_serial_cycom device usb2_serial_foma device usb2_serial_ftdi device usb2_serial_gensa device usb2_serial_ipaq device usb2_serial_lpt device usb2_serial_mct device usb2_serial_modem device usb2_serial_moscom device usb2_serial_plcom device usb2_serial_visor device usb2_serial_vscom
# USB bluetooth support device usb2_bluetooth device usb2_bluetooth_ng
# USB input device support device usb2_input device usb2_input_hid device usb2_input_kbd device usb2_input_ms
# USB sound and MIDI device support device usb2_sound
2) To enable the driver at runtime:
2.a) Unload all existing USB modules. If USB is compiled into the kernel then you might have to build a new kernel.
2.b) Load the "usb2_xxx.ko" modules under /boot/kernel having the same base name like the kernel device option.
Submitted by: Hans Petter Selasky hselasky at c2i dot net Reviewed by: imp, alfred
|
184483 |
30-Oct-2008 |
mav |
Add quirk to set GPIO2 to enable internal speaker on Dell Vostro 1400.
Tested by: Sergio Veloso
|
184254 |
25-Oct-2008 |
mav |
Fix spelling in comment.
|
184231 |
24-Oct-2008 |
mav |
Bump the revision after the latest commits.
|
184230 |
24-Oct-2008 |
mav |
Add some special handeling for AD1981HD codec. It has very unusual design with several points unappropriate for the present parser. This patch disables input-to-output analog monitoring but instead fixes recording.
Tested by Tobias Grosser on ThinkPad T61p.
|
184207 |
23-Oct-2008 |
mav |
Add Intel ICH10 and SCH HDA controllers PCI IDs.
|
184095 |
20-Oct-2008 |
mav |
Make HDA PCM device boot and sndstat messages more alike to PCI device ones. Move codec # out of the device name as it is a device address and not part of device type name.
|
184089 |
20-Oct-2008 |
mav |
Tune boot messages a bit. Use <> brackets only at device name line.
|
183894 |
14-Oct-2008 |
mav |
Add all Sigmatel/IDT codecs I could find. Add IDT and Intel unknown codecs.
PR: kern/125822
|
183811 |
12-Oct-2008 |
mav |
Bump driver revision after the previous commit.
|
183810 |
12-Oct-2008 |
mav |
Fix bug in a second call of the channel allocation function. This should fix crash on systems where two audio codecs connected to the same HDA bus.
|
183397 |
27-Sep-2008 |
ed |
Replace all calls to minor() with dev2unit().
After I removed all the unit2minor()/minor2unit() calls from the kernel yesterday, I realised calling minor() everywhere is quite confusing. Character devices now only have the ability to store a unit number, not a minor number. Remove the confusion by using dev2unit() everywhere.
This commit could also be considered as a bug fix. A lot of drivers call minor(), while they should actually be calling dev2unit(). In -CURRENT this isn't a problem, but it turns out we never had any problem reports related to that issue in the past. I suspect not many people connect more than 256 pieces of the same hardware.
Reviewed by: kib
|
183381 |
26-Sep-2008 |
ed |
Remove unit2minor() use from kernel code.
When I changed kern_conf.c three months ago I made device unit numbers equal to (unneeded) device minor numbers. We used to require bitshifting, because there were eight bits in the middle that were reserved for a device major number. Not very long after I turned dev2unit(), minor(), unit2minor() and minor2unit() into macro's. The unit2minor() and minor2unit() macro's were no-ops.
We'd better not remove these four macro's from the kernel, because there is a lot of (external) code that may still depend on them. For now it's harmless to remove all invocations of unit2minor() and minor2unit().
Reviewed by: kib
|
183097 |
16-Sep-2008 |
mav |
Hide some of driver's internal debugging.
Left only parts surely required for basic troubleshooting and configuration purposes. There is still very long output, but further shrinking makes it less informative.
Original debugging can be enabled with hw.snd.verbose=4.
|
183025 |
14-Sep-2008 |
mav |
Small addition to the previous commit. Sorry.
|
183024 |
14-Sep-2008 |
mav |
Add some missing Realtek codec IDs. Just for reference. Fix small typo in error message.
|
183019 |
14-Sep-2008 |
mav |
Remove one unneeded printf from non-verbose output.
Submitted by: Artem Naluzhnyy
|
182999 |
13-Sep-2008 |
mav |
My massive snd_hda driver update.
Because of using more clear and same time more functional codec parser new driver is able to handle more codecs, use them better then before and without most of previous quirks. All of tested codecs itself manage playback, record, input mixing and monitoring quite fine. In all of investigated trouble cases problem was found or in nonstandard codec usage or incorrect codec configuration made by BIOS. Most of that cases could be fixed using device hints, some of which are already included to the driver.
New driver supports multiple codecs per HDA bus, multiple audio function groups per codec and multiple logical sound devices per audio function group. So don't worry when you get several PCM devices instead of one, it is normal. It is usual situation with powerful codecs to provide, for example, 3 PCM devices: one for 7.1 playback and main recording, one for headset and one for digital SPDIF I/O.
New driver implements Universal Audio Architecture (UAA) much better then previous one. Most information about recommended codec usage now taken from the codec configuration registers initialized by BIOS. User may alter that configuration using device hints to reconfigure logical audio devices to his needs in a very broad range up to the limits of the codec functionality.
New driver supports digital PCM playback and AC3 pass-through. I am not sure about completeness of this implementation, but I have several success stories including my own. Vchans subsystem does not support AC3 pass-through so it had to be disabled for that devices at this moment.
New driver is ready for multichannel playback, but until our OSS is unable to use this it will just duplicate same stereo stream into all channel pairs.
New driver supports suspend/resume. I am unable to really test this part myself, but I have got several success stories.
Driver has very informative verbose boot messages. So if you have any questions or problems - enable and read them first.
Discussed on: freebsd-multimedia@ Tested by: many
|
182854 |
07-Sep-2008 |
joel |
Fix deactivation of speakers while plugging in headphones on Fujitsu U1010, Lenovo 3k N200 and Acer Aspire 4715Z.
Reviewed by: attilio PR: 126216, 126244, 127034 Submitted by: Anton E. Kartashev <amokk@mirahost.ru>, Ganael Laplanche <ganael.laplanche@martymac.com>, Dennis Generaloff <giantlock@gmail.com>
|
182077 |
23-Aug-2008 |
imp |
Make sure that we handle errors in device_get_children correctly.
|
182076 |
23-Aug-2008 |
imp |
Handle the error case properly for device_get_children.
|
181874 |
19-Aug-2008 |
ed |
Don't include <sys/tty.h> in our sound layer. It is not needed.
The PCM's sound.h file only seems to include <sys/tty.h>, because channel_if seems to require selinfo. Just replace it with <sys/selinfo.h>.
There's no real problem with including <sys/tty.h> here, even with MPSAFE TTY, but <sys/tty.h> is something that should be used by the TTY layer, its driver and code that integrated it with the process tree.
|
180532 |
15-Jul-2008 |
delphij |
Add quirk for Dell D630 laptops.
Tested by: Quake Lee <quakelee geekcn org>, Robert Noland <rnoland 2hip net> MFC after: 1 week Approved by: ariff
|
180110 |
30-Jun-2008 |
delphij |
Correct SB600 AC97 Audio PCI ID, otherwise we will attach to the SBx00 PCI to PCI Bridge which causes problems.
|
179345 |
27-May-2008 |
ariff |
Release pcm mutex before calling snd_clone_unref(), which in turns might calling destroy_dev() with sleepable malloc(9). The entire opetation is being serialized through pcm cv from top down, so dropping mutex is rather safe.
Reported by: delphij
|
179205 |
22-May-2008 |
kevlo |
Add codec id for Sigmatel STAC9872AK
Reviewed by: ariff
|
179183 |
21-May-2008 |
thompsa |
Giant is no longer required and can not be held over kproc_exit().
|
178324 |
19-Apr-2008 |
ariff |
Fix no sound issues for ASUS W6F (ALC861) laptops (buggy BIOS config that deserves its own internet memes). The trick is to force all available, unused pins (that being advertised as "speaker") to behave as microphone pins instead.
Reported / Tested by: Dmitry Kutsenko <kutsenko.truebsd.org> MFC after: 3 days
|
178250 |
16-Apr-2008 |
kris |
Replace callout_init(..., 1) with callout_init(..., CALLOUT_MPSAFE) for better grep-compliance and to standardize with the rest of the kernel.
Reviewed by: jhb MFC after: 1 week
|
178155 |
12-Apr-2008 |
ariff |
- Add codec id for Sigmatel STAC9205 - Fix speaker issues with Dell Vostro 1500 (GPIO0)
Tested by: John Wright <jwright.gmail.com>
- Apply ridiculous quirk on Asus A8X series (A8JC, A8M, A8xx, etc). These different laptop series share simmilar pci id, hardware codecs, etc. but works differently. A slight difference in connection type for widget #26 is used to differentiate it.
Tested by: eric baumbach <embaumbach.gmail.com>
- Apply GPIO0 quirk for ASUS G2K laptop - Sort ASUS ids accordingly.
Submitted by: jkim
MFC after: 3 days
|
178121 |
11-Apr-2008 |
ariff |
Don't mess up with CHN_F_TRIGGERED, since it should exclusively be handled by chn_abort() and chn_start() alone. This should fix few issues with single duplex hardware (mostly) or pre virtual record (RELENG 6) under WINE emulation and possibly others that using SNDCTL_DSP_SETTRIGGER.
MFC after: 3 days
|
174582 |
14-Dec-2007 |
ariff |
Limit total hardware playback channels to just 1. The reliability of it's multi DAC / playback channels is not that good. Enabling vchans make the bug more visible since playback allocation will look for possible free hardware channels first (i.e: the next DAC, the very first has been consumed by vchan mixer) which in this case has been proven faulty.
Tested by: Dominic Fandrey <LoN_Kamikaze at gmx dot de> URL: http://lists.freebsd.org/pipermail/freebsd-stable/2007-December/039022.html
|
174579 |
13-Dec-2007 |
ariff |
Add speaker/headphone controls for HP Compaq DC7700 Small Form Factor PC @ ALC262.
Submitted by: Carlos A. M. dos Santos <unixmania at gmail dot com>
|
174578 |
13-Dec-2007 |
ariff |
nid 28 for Acer @ ALC268 should be identified as analog CD input pin, though it doesn't provides proper (sane, valid, usable, etc) analog CD playback due to its stripped down nature.
|
174552 |
12-Dec-2007 |
ariff |
Disable AC97 microphone channel. Due to the channel allocation priority that favours true hardware channel, the first instance of recording request will grab this channel (the first channel is being used as vchan master). In many cases, it is not really work as intended and give false impression of broken recording.
PR: kern/118546 MFC after: 3 days
|
174220 |
03-Dec-2007 |
ariff |
Fix audio playback aborted with SNDCTL_DSP_SETTRIGGER, affecting PortAudio version 19.
PR: kern/118395 Submitted by: Henrik Gulbrandsen <henrik at gulbra dot net> MFC after: 3 days
|
174182 |
02-Dec-2007 |
ariff |
Headphone / speakers automute fixup for Acer Aspire 4710 @ ALC268 laptop.
Tested by: Liyu, She
|
174025 |
28-Nov-2007 |
ariff |
- Add Analog Devices AD1984 codec id. - Enable pcbeep control for Acer + ALC268 (nid 29). Give enough (fake) hints so the parser will grab it and allocate "speaker" control. - Fix regression while preparing DAC and ADC for multichannel format. Since playback policy is to output to every possible path, ensure that each DAC is started.
Reported / Tested by: Guy Brand
|
174004 |
28-Nov-2007 |
ariff |
Add missing MCP65 id which was accidentally removed in previous commit.
|
173817 |
21-Nov-2007 |
ariff |
* Fix support for followings: o Acer Aspire 4520 laptop - jack sensing / automute o Toshiba Satellite A135-S4527 laptop - jack sensing / automute Tested by: lioux o Apple Macbook 3 (is it?) - require gpio0 (for speakers) and ovref50 (for headphone) to make it works - jack sensing / automute Tested by: Ed Schouten * Add Nvidia MCP67 controller ids. * Be sensible about simmilar controller with multiple pci ids. * Connect unused DAC/ADC to stream#0 rather than forcing each of them managing their own stream.
MFC after: 3 days
|
173511 |
10-Nov-2007 |
ariff |
Limit total playback channels to just 1, for ALi M5451. The reliability of it's multi DAC / playback channels is not that good. Enabling vchans make the bug more visible since playback allocation will look for possible free hardware channels first (i.e: the next DAC, the very first has been consumed by vchan mixer) which in this case has been proven faulty.
Reported / Tested by: Sascha Klauder MFC after: 3 days
|
173329 |
04-Nov-2007 |
ariff |
Add support for trimmed down version of ATI SB600 AC97 audio controller.
URL: http://www.ipc2u.de/catalog/P/PE/36486.html PR: kern/117813 Submitted by: Klaus Mayr MFC after: 1 day
|
173039 |
26-Oct-2007 |
ariff |
Remap and virtualize mixer controls for HP nx6110 with AD1981B AC97 codec, unifying master volume control.
* Remap "phout" --> SOUND_MIXER_VOLUME (internal speakers) * Virtual "vol" --> { "phout", "ogain" (headphone) }
Tested by: Frederic Chardon MFC after: 3 days
|
173038 |
26-Oct-2007 |
ariff |
Enable headphone jack-sense for HP nx6100 with AD1981B AC'97 codec, automuting internal speakers.
Tested by: Frederic Chardon MFC after: 3 days
|
172836 |
20-Oct-2007 |
julian |
Rename the kthread_xxx (e.g. kthread_create()) calls to kproc_xxx as they actually make whole processes. Thos makes way for us to add REAL kthread_create() and friends that actually make theads. it turns out that most of these calls actually end up being moved back to the thread version when it's added. but we need to make this cosmetic change first.
I'd LOVE to do this rename in 7.0 so that we can eventually MFC the new kthread_xxx() calls.
|
172811 |
19-Oct-2007 |
ariff |
- Gigabyte G33-S2H fixup, due to the present of multiple competing codecs. Codec at address 0 seems purely digital, or perhaps an HDMI interface. Let the driver skip it and continue scanning the codecs starting with address 2 (Realtek ALC885). * Due to possibilities of future similar cases, put enough logic in hdac_scan_codecs() to force codec scanning starting from XX address via tunable "hint.pcm.%d.codec_index".
Reported / Tested by: Toomas Pelberg <toomasp@gmx.net>
- Trivial headphone / speaker automute fixup for Fujitsu-Siemens AMILO Si 1848 laptop.
Reported / Tested by: Ed <ed@bsd.it>
- Trivial headphone / speaker automute fixup for Fujitsu-Siemens Lifebook S7020D laptop.
Reported / Tested by: Jaromir Dvoracek <jarek@ataxo.com>
- Some smart vendor trying to create interplanetary wormhole by screwing pci config space during their BIOS update. The side effects of their failure attempt includes mutilated hardware id, broken speaker automuting and loosing the entire analog CD connectivity, thus causing enough collateral damages to collapse the entire universe. Move along with it.
Please exercise extra cautious when applying BIOS updates.
Reported / Tested by: Pietro Cerutti <gahr@gahr.ch> - assembled laptop, based on the MSI-1034 (662) which is now becoming MSI-034A.
- Fix no sound issues (on headphones) for Lenovo ThinkCentre A55 due to global automute table entry which is not applicable for non-laptops.
Reported / Tested by: Piotr Smyrak <piotr.smyrak@heron.pl>
- Speaker mute control for HP DC7700 since the front headphone jack does not generate any interesting unsolicited signal/response.
Reported / Tested by: tyop @ irc.freenode.net
Approved by: re (kensmith) MFC after: 3 days
|
172568 |
12-Oct-2007 |
kevlo |
Spelling fix for interupt -> interrupt
|
172150 |
12-Sep-2007 |
ariff |
Update snd_emu10kx driver with recent perforce changes (and few other changes too).
(without any real order)
1. Use device_get_nameunit for mutex naming 2. Add timer for low-latency playback 3. Move most mixer controls from sysctls to mixer(8) controls. This is a largest part of this patch. 4. Add analog/digital switch (as a temporary sysctl) 5. Get back support for low-bitrate playback (with help of (2)) 6. Change locking for exclusive I/O. Writing to non-PTR register is almost safe and does not need to be ordered with PTR operations. 7. Disable MIDI until we get it to detach properly and fix memory managment problems. 8. Enable multichannel playback by default. It is as stable as single-channel mode. Multichannel recording is still an experimental feature. 9. Multichannel options can be changed by loader tunables. 10. Add a way to disable card from a loader tunable. 11. Add new PCI IDs. 12. Debugger settings are loader tunables now. 14. Remove some unused variables. 15. Mark pcm sub-devices MPSAFE. 16. Partially revert (bus_setup_intr -> snd_setup_intr) since it need to be done independently
Submitted by: Yuriy Tsibizov (driver maintainer) Approved by: re (bmah)
|
171363 |
11-Jul-2007 |
ariff |
Protect against divide by zero while calculating bus speed due to possible broken kernel timecounter.
Reported/Tested by: silby Approved by: re (hrs) MFC after: 1 day
|
171330 |
09-Jul-2007 |
ariff |
- Add codec id for Realtek ALC268.
- Add controller id for Intel 82801I (ICH9). PR: kern/114399 Submitted by: Michael Fuckner <michael@fuckner.net>
- MSI support. Disable by default due to various issues with too many broken hardwares. MSI can be enabled through device.hints(5) or kenv(8) by setting "hint.pcm.%d.msi=1". Partially submitted by: kevlo YAMAMOTO Taku <taku@tackymt.homeip.net> Tested by: joel, kevlo, YAMAMOTO Taku
Approved by: re (hrs) MFC after: 3 days
|
171329 |
09-Jul-2007 |
ariff |
Fix stream suspend/resume activity due to its states being clobbered by pcm channel start/stop trigger operation.
Approved by: re (hrs)
|
171250 |
05-Jul-2007 |
ariff |
Properly unlock mutex before returning. There was a slight mishap during last major locking cleanup.
Reported by: Thierry Herbelot <thierry@herbelot.com> Approved by: re (mux)
|
171204 |
04-Jul-2007 |
ariff |
Be much more forgiving towards applications that requesting ioctls that should be a no-op (for example, requesting SYNC on record path). The standards does not indicate that such requests are illegal, so just return it as success instead of EINVAL.
Approved by: re (mux)
|
171141 |
01-Jul-2007 |
ariff |
- Fix input/microphone support for ASUS A8N-VMCSM series.
Submitted by: Simon Schubert <corecode@fs.ei.tum.de>
- Defer flushing unsolicited response into taskqueue thread rather than handle it directly in interrupt handler, since few of its operations (like measuring/calibrating jack impedance) are quite expensive. - Misc. debugging cleanups.
Tested by: joel Approved by: re (hrs) MFC after: 3 days
|
171140 |
01-Jul-2007 |
ariff |
Fix no-sound issues with ASUS A9T notebook.
Note: The offending quirk should have been made model/codec specific, but since there were no records / log which model requires it, the quirk logic had to be inverted (blacklist instead of whitelist).
Tested by: Arkadiy Dudevitch <dudevitch@englerllc.com> Approved by: re (hrs) MFC after: 3 days
|
170960 |
20-Jun-2007 |
imp |
s/logprintf/printf/g
Approved by: re@
|
170944 |
18-Jun-2007 |
ariff |
Fix headphone jack sensing support for Olivetti Olibook 610-430 XPSE.
Tested by: Gonzalo Lionel Rodriguez
|
170936 |
18-Jun-2007 |
imp |
Explicitly use usb_port.h to get compat macros.
|
170893 |
17-Jun-2007 |
ariff |
Spelling nit due to my lamenglishness.
Noticed by: brueffer
|
170885 |
17-Jun-2007 |
ariff |
Add sysctl/tunable "hw.snd.default_auto", which is useful (especially for non-root users) to automatically assign default unit to a newly attach device like USB audio.
|
170884 |
17-Jun-2007 |
ariff |
Reassign default unit to a valid unit, be it during attach or detach. If nothing is available, set to something that is purely ridiculous so the next valid attach will notice it.
Tested by: chibis
|
170873 |
17-Jun-2007 |
ariff |
Flush remaining malloc() cleanups (M_NOWAIT -> M_WAITOK).
|
170834 |
16-Jun-2007 |
ariff |
Use signed int, since all the samples are in that form. This will help future implementation of soft amplifier with variable/relative 0db.
|
170815 |
16-Jun-2007 |
ariff |
Last (again ?!?) major commit for RELENG_7, featuring total Giant eradication in/from userland path, countless locking fixes, etc.
- General sleep call through msleep(9) has been converted to condvar(9) with better consistencies. - Heavily guard every possible "slow path" entries (open(), close(), few ioctl()s, sysctls), but once it entering "fast path" (io, interrupt started), they are free to fly on their own. - Rearrange locking sequences, resulting better concurrency and serialization. Large part doesn't even need locking at all, and will be removed in future. Less clutter, except in few places due to lock ordering. - Anonymous mixer object creation/deletion to simplify mixer handling beyond typical mixer ioctls. Submitted by: chibis (with modifications) - Add few mix_[get|set|..] functions to avoid calling mixer_ioctl() directly using cryptic arguments. - Locking fixes to avoid possible deadlock with (still under Giant) USB. - Better simplex/duplex device handling. - Recover mmap() functionality for recording, which has been lost since 2.2.x - 3.x (the introduction of newpcm). Full-duplex mmap still doesn't work (due to VM/page design), but people still can mmap both by opening each direction separately. mmaped playback is guarantee to work either way. - New sysctl: "hw.snd.compat_linux_mmap" to allow PROT_EXEC page mapping, due to recent changes in linux compatibility layer which require it. All linux applications that using sound + mmap() (mostly games) require this to be enabled. Disabled by default. - Other goodies.. too many, that will increase releng7 shareholder value and make users of releng6 (and below) cry ;)
* This commit should be atomic. If anything goes wrong (not counting problem originated from elsewhere), I will not hesitate to revert everything back within 12 hours. This substantial changes itself not a rocket science and the process has begun for almost 2 years, and lots of incremental changes are already in place during that period of time. * Some issues does occur in snd_emu10kx (note the 'x') due to various internal locking issues and it is currently being worked on by chibis.
Tested by: chibis (Yuriy Tsibizov), joel, Alexandre Vieira, many innocent souls...
|
170722 |
14-Jun-2007 |
ariff |
Buffer optimization and locking cleanup. Don't resize/malloc unless it is really necessary to ease down unlock/lock sequence.
|
170721 |
14-Jun-2007 |
ariff |
Drain all callout handlers during driver detach appropriately.
|
170720 |
14-Jun-2007 |
ariff |
Don't push too hard waiting/looping for codec detection interrupt. Let the interrupt do the job waking us up.
|
170719 |
14-Jun-2007 |
ariff |
- Add option to allow sleeping malloc(9). - Cleanup locking assertions that aren't needed anymore.
|
170612 |
12-Jun-2007 |
imp |
Expand USB_ATTACH_{ERROR,SUCCESS}_RETURN inline and eliminate from usb_port.h. They aren't needed, and are a legacy of this code's past.
|
170521 |
11-Jun-2007 |
ariff |
Filter/compress the amount of channel trigger. This should reduce much of lock/unlock contentions within the interrupt handler. Most of these drivers only need PCMTRIG_START or STOP (ABORT).
Discussed with: scottl
|
170518 |
10-Jun-2007 |
ariff |
- Add codec id for ALC660 [1] - Add codec id for AD1988B, along with fixing its line-in and other issues (with proper quirks). [2]
Submitted by: [1] barbara.xxx1975@libero.it [2] Oliver Brandmueller ob@e-Gitt.NET MFC after: 3 days
|
170505 |
10-Jun-2007 |
mjacob |
Cast len to be a uintmax_t and make format in KASSERT match so as to avoid different sizes on different platforms types of complaints.
Reviewed by: Ariff
|
170504 |
10-Jun-2007 |
mjacob |
Remove const type qualifier from a function- gcc4.2 doesn't accept it.
Reviewed by: Ariff
|
170460 |
09-Jun-2007 |
ru |
Make this compile.
|
170455 |
09-Jun-2007 |
imp |
Expand USB_ATTACH_SETUP inline + devinfo tweaks
# looks like there's a chance that uaudio might compile on otherBSD, so leave # those #defines alone as well as make this change in a compatible way.
|
170342 |
05-Jun-2007 |
ariff |
- Do triple reads on reset register to detect read register bug. 2 reads seems not enough to verify its consistencies. - Define AC97_MIXER_SIZE as SOUND_MIXER_NRDEVICES (25), since we don't need more than that. Stop doing wild and random guess about its size since we're stricly bound to it.
|
170341 |
05-Jun-2007 |
ariff |
Fix (enable) phone out for laptops with ALC655, specifically for Amilo Pro V2055.
PR: kern/113101 Submitted by: konrad@egipt-medytacje.pl MFC after: 3 days
|
170289 |
04-Jun-2007 |
dwmalone |
Despite several examples in the kernel, the third argument of sysctl_handle_int is not sizeof the int type you want to export. The type must always be an int or an unsigned int.
Remove the instances where a sizeof(variable) is passed to stop people accidently cut and pasting these examples.
In a few places this was sysctl_handle_int was being used on 64 bit types, which would truncate the value to be exported. In these cases use sysctl_handle_quad to export them and change the format to Q so that sysctl(1) can still print them.
|
170235 |
03-Jun-2007 |
ariff |
Insert NULL pointer checking around devclass_get_maxunit(pcm_devclass, ..) . Things can get ugly without it due to uninitialized class. RELENG_6 need a simmilar, but different treatment as well.
err.. perhaps we should teach devclass_get_maxunit() to return -1 ?
MFC after: 1 day
|
170208 |
02-Jun-2007 |
ariff |
Remove (accidentally) included types.h .
|
170207 |
02-Jun-2007 |
ariff |
Use standard pcm_get/setflags() rather than dereferencing softc while enabling SD_F_SOFTPCMVOL or any flags.
|
170206 |
02-Jun-2007 |
joel |
Separate license from comments.
Approved by: ariff
|
170161 |
31-May-2007 |
ariff |
Last major commit and updates for RELENG_7:
- Rework the entire pcm_channel structure: * Remove rarely used link placeholder, instead, make each pcm_channel as head/link of each own/each other. Unlock - Lock sequence due to sleep malloc has been reduced. * Implement "busy" queue which will contain list of busy/active channels. This greatly reduce locking contention for example while servicing interrupt for hardware with many channels or when virtual channels reach its 256 peak channels.
- So I heard you like v chan ... O RLY? Welcome to Virtual **Record** Channels (vrec, rec vchans, vchans for recording, Rec-Chan, you decide), the ultimate solutions for your nagging O_RDWR full-duplex wannabe (note: flash plugins) monopolizing single record channel causing EBUSY. Vrec works exactly like Vchans (or, should I rename it to "Vplay" :) , except that it operates on the opposite direction (recording). Up to 256 vrecs (like vchans) are possible.
Notes: * Relocate dev.pcm.%d.{vchans,vchanformat,vchanrate} to each of its respective node/direction: dev.pcm.%d.play.* for "play" (cdev = dsp%d.vp%d) dev.pcm.%d.rec.* for "record" (cdev = dsp%d.vr%d) * Don't expect that it will magically give you ability to split "recording source" (eg: 1 channel for cdrom, 1 channel for mic, etc). Just admit that you only have a *single* recording source / channel. Please bug your hardware vendor instead :)
- Bump maxautovchans from 4 to 16. For a full-fledged multimedia desktop/workstation with too many soundservers installed (esound, artsd, jackd, pulse/polypaudio, ding-dong pling plong mudkip fuh fuh, etc), 4 seems inadequate. There will be no memory penalty here, since virtual channels are allocate only by demand.
- Nuke/Rework the entire statically created cdev entries. Everything is clonable through snd own clone manager which designed to withstand many kind of abusive devfs droids such as: * while : ; do /bin/test -e /dev/dsp ; done * jot 16777216 0 | while read x ; do ls /dev/dsp0.$x ; done * hundreds (could be thousands) concurrent threads/process opening "/dev/dsp" (previously, this might result EBUSY even with just 3 contesting threads/procs). o Reusable clone objects (instead of creating new one like there's no tomorrow) after certain expiration deadline. The clone allocator will decide whether to reuse, share, or creating new clone. o Automatic garbage collector.
- Dynamic unit magic allocator. Maximum attached soundcards can be tuned using tunable "hw.snd.maxunit" (Default to 512). Minimum is 16, and maximum is 2048.
- ..other fixes, mostly related to concurrency issues.
joel@ will do the manpage updates on sound(4).
Have fun.
|
170159 |
31-May-2007 |
ariff |
Last major commit and updates for RELENG_7:
Add few new files. The _real_ commit will follow shortly, so fasten up your seatbelts, sit back and enjoy the ride..
|
170137 |
30-May-2007 |
ariff |
Don't rely on pcm_channel index numbering while doing sequential channel allocation.
|
170065 |
28-May-2007 |
ariff |
- Enable soft pcm volume flag early to ensure it not being clobbered by the subsequent mix_setdevs() and friends. - Minor style(9) declaration arrangement nit.
Requested by: joeld Submitted by: pluknet <pluknet@gmail.com>
|
170060 |
28-May-2007 |
ariff |
Fix broken "rec" and "igain" introduced by previous commit. Convert reg to a full blown int since there's not much gain compacting it, and we do need its signess.
|
170032 |
27-May-2007 |
ariff |
Fix broken binary issues with latest gcc 4.x due to bitfield signess mishaps for emu10k1 [1] and few other places.
Reported/Submitted/Tested by: Ed Schouten <ed@fxq.nl> [1]
|
170031 |
27-May-2007 |
joel |
Bring in a bunch of bug fixes and some code to support more chipsets. Neither me nor Ariff have access to any of this hardware, so all tests have been made by Konstantin and Artem. Commit message mostly written by Konstantin.
envy24: - Add test code to support rear line-in input on 'Terratec DMX 6fire' audio card. This code is also intended to be used in the future for support of cards, that have I2C-to-GPIO expanders wired between the control line of the audio codec and the Envy24, however such cards are too complex and i can't add that support without hardware sample of such board, i've already tried and failed.
envy24ht: - Add support for 'AudioTrak Prodigy HD2'. - Add support for 'AudioTrak Prodigy 7.1 XT'. - Add support for 'ESI Juli@' (Works ok, DAC volume is hard-coded for the time being, so 'mixer vol ...' doesn't work, only 'mixer pcm ...' works). [1] - Fix bug in the init data for M-Audio Revolution 5.1, that results in distorted sound. - Add software volume control (now 'mixer pcm' works, thanks to Ariff). - Add support for more samples rates - 176.4kHz and 192kHz. - Fix problem with the 192kHz samples rate playback when 24.576MHz crystal is used on the board instead of 49.152MHz crystal.
spicds: - Add support for Asahi Kasei flagship DAC - AK4396 (used in AudioTrak Prodigy HD2).
Submitted by: Konstantin Dimitrov <kosio.dimitrov@gmail.com> Tested by: Artem Antonov [1] Reviewed by: ariff
|
169762 |
19-May-2007 |
joel |
Fix randomly broken playback with Fortemedia FM801 XWave PCI soundcard.
PR: kern/98898 Submitted by: Johannes Weiner <hnazfoo@googlemail.com> Approved by: ariff
|
169745 |
19-May-2007 |
joel |
Turn off the AK452X De-emphasis filter for 44.1KHz. This should fix some sound quality problems.
PR: kern/112688 Submitted by: Stefan Ehmann <shoesoft@gmx.net> Reviewed by: Konstantin Dimitrov <kosio.dimitrov@gmail.com> Approved by: ariff
|
169744 |
19-May-2007 |
joel |
Fix detection of PC-9821 V166 internal sound card.
PR: kern/105600 Submitted by: rotus <rotus@takamanohara.dyndns.org> Approved by: ariff
|
169435 |
10-May-2007 |
ariff |
Don't hold mutex while releasing bus resources.
|
169332 |
07-May-2007 |
ariff |
buf_addr should be bus_addr_t rather than u_int32_t.
|
169319 |
06-May-2007 |
ariff |
PCMMKMINOR() bit twiddling, so we can have: - 2048 unique sound cards (dsp0 -> dsp2047) (used to be 15) - 32 unique device types (dspW, audio, mixer, sndstat, .. 32th) (used to be 15) - 256 unique cloneable devices (dsp%d.0 -> dsp%d.255) (unchanged)
|
169278 |
05-May-2007 |
ariff |
Fix (or rather workaround) Intel 440MX Errata #36 - http://www.intel.com/design/chipsets/specupdt/245051.htm
AC97 Soft Audio and Soft Modem Master Abort Errata
Issue: Use of either soft audio or soft modem on an Intel® 82443MX PCISet based platform running a 100 MHz Processor System Bus and an AC97 codec may result in failures. The system continues to function normally while the AC97 hardware may not resume and may require a cold-boot to recover. As a result of the failure, the Master Abort Status bit will be set in the audio or modem function PCI header space.
Workaround: Force uncacheable DMA on both BDL and pcm buffers.
Tested by: Emil Holmstr|m <emil@linux.se>
|
169277 |
05-May-2007 |
ariff |
Miscellaneous changes and fix:
- Remove explicit call to pmap_change_attr(), since we now have proper and functional definition of BUS_DMA_NOCACHE. - Enable PCI(e) bus snooping for non i386/amd64 as an alternative for uncacheable DMA. - Codecs changes: * Analag Device -> Analog Devices, AD1988. * New codec: VIA VT1708 and VT1709, Realtek ALC262, ALC861-VD and ALC885. * Various fixups for Conexant Waikiki, fix recording (read: microphone) on various Analog Devices codecs due to vendor BIOS mess, various quirks for several ASUS laptops/boards. - Fix connection list handling, closely following the specification to handle range of nids. - Basic Jack sense polling infrastructure for possible hardwares with broken unsolicited response interrupt.
Ideas/Submitted/Tested by: Andriy Gapon <avg@icyb.net.ua>, #freebsd-azalia, many.
|
169246 |
04-May-2007 |
ariff |
Fix use-after-free for DMA tag. Destroy DMA tag later.
Submitted by: Yuriy Tsibizov
|
168883 |
20-Apr-2007 |
ariff |
Unbreak module / driver attach breakage. Both snd_envy24 and snd_envy24ht mistakenly rely on wrong snd_spicds version.
|
168861 |
19-Apr-2007 |
ariff |
- AC97 quirk / patch cleanups. Most quirks doesn't work in general sense and should only be applied on certain specific card / vendor, hence the addition of ac97_getsubvendor(). - Fix low volume issue on several MSI laptops through ALC655 quirk.
Reported/Tested by: Christian Mueller <raptor-freebsd-multimedia@xpls.de> MFC after: 1 week
|
168847 |
18-Apr-2007 |
ariff |
sndbuf_alloc() now accept dmaflags argument which will be forwarded to internal bus_dmammem_alloc() for greater flexibility on setting up DMA / page attributes.
|
168846 |
18-Apr-2007 |
ariff |
Break ABI / module compatibility for the upcoming sndbuf_alloc() changes.
|
168486 |
08-Apr-2007 |
ariff |
Disable cmi_midiattach(). The implementation is incomplete, and causing various interesting memory leak issues.
|
168264 |
02-Apr-2007 |
ariff |
Revert busy refcount back to int. As a side note, multiple open is still (and always) possible and does not change previous behaviour.
Requested by: netchild
|
168253 |
02-Apr-2007 |
ariff |
Disable seq_modevent(). The implementation is incomplete, and causing memory leak during unload.
|
168247 |
02-Apr-2007 |
ariff |
No need to track every closing instance, and put busy counter to rest in its single bit coffin.
|
168244 |
02-Apr-2007 |
ariff |
Provide hint / tunable for possible asynchronous USB execution. Async execution should help us avoiding potential deadlock and illegal locking while sleeping in various mixer -> usb calls. To enable it, use hint.uaudio.%d.async="1" or sysctl dev.uaudio.%d.async=1. Default is disable, to remain compatible with old behaviour (with slight risk of potential deadlock).
|
168243 |
02-Apr-2007 |
ariff |
- Don't wakeup() unnecessarily, so the behavior of dead interrupt or stalled DMA engine can be observed and predicted. - Minor sysctl/tunable cleanup.
|
168128 |
31-Mar-2007 |
netchild |
Tell interested readers of the source that the return value is not checked by intend.
Found by: Coverity Prevent (tm) CID: 55 Reviewed by: ariff
|
167773 |
21-Mar-2007 |
ariff |
Memory leak killing spree, mostly bus_dma(9) related.
|
167738 |
20-Mar-2007 |
ariff |
Put a temporary bandaid to set/reset uncacheable DMA region (affected on amd64 and i386) until we gain proper BUS_DMA_NOCACHE support. (in progress).
Tested by: rafan, infofarmer, Nguyen Tam Chinh <unixvn@gmail.com> Tested on: amd64, i386
|
167702 |
19-Mar-2007 |
ariff |
Destroy channel DMA tag during resource cleanup.
|
167678 |
18-Mar-2007 |
ariff |
Enforce sample size alignment on first direct-copy channel.
|
167667 |
17-Mar-2007 |
ariff |
Fix (another, more to come) ivar memory leak during driver detach.
|
167663 |
17-Mar-2007 |
ariff |
Fix long delay closing/syncing issues on mmaped buffer.
|
167649 |
16-Mar-2007 |
ariff |
[stage: 9/9]
- SWAPLR quirk for (unknown, luckily it is mine) broken uaudio stick. Fixing by rewiring is impossible without damaging it. Luckily, we can fix it using "other" methods :) . - Add uaudio_get_vendor(), _product() and _release() in uaudio.c (currently used by uaudio_pcm quirk). - Implement CHANNEL_SETFRAGMENTS(). - Drop channel locking in few places where it is about to sleep somewhere. This should help eliminating illegal locking acquisition where the current thread is about to sleep, and also few deadlock cases. Dropping it right here is quite safe since it is already protected by CHN_F_BUSY flag and other threads won't bother to touch it. Solving other illegal locking issues are quite tricky without converting most usbd_do_request() calls to its equivalent _async() calls, which I intend to do it later after getting full test report from other people with different uaudio hardwares. - Fix memory leak issues during detach. This seems common to any drivers (notably emu10kx, csapcm?) with bridge functions.
|
167648 |
16-Mar-2007 |
ariff |
[stage: 8/9]
Implement CHANNEL_SETFRAGMENTS() for snd_atiixp, snd_es137x, snd_hda and snd_via8233. CHANNEL_SETBLOCKSIZE() will basically call CHANNEL_SETFRAGMENTS() internally using conservative blocksize / blockcount hints. Other drivers will be converted later.
|
167647 |
16-Mar-2007 |
ariff |
[stage: 7/9]
EWOULDBLOCK -> EAGAIN.
|
167646 |
16-Mar-2007 |
ariff |
[stage: 6/9]
- Disable stray buffer management, since sample size aligned buffering are pretty much guaranteed through out the entire feeder_* chain processes. - Few style(9) cleanups.
|
167645 |
16-Mar-2007 |
ariff |
[stage: 5/9]
channel.c/channel_if.m: - Macros cleanups, prefer inlined min() over MIN(). - Rework chn_read()/chn_write() for better dead interrupt detection policy. Reduce scheduling overhead by doing pure 5 seconds sleep before giving up, instead of several cycle of brute micro sleeping. - Avoid calling wakeup_one() for non-sleeping channel (for example, vchan parent channel). - EWOULDBLOCK -> EAGAIN. - Fix possible divide-by-zero panic on chn_sync(). - Re-enforce ^2 blocksize policy, since there are too many broken userland apps that blindly assume it without even trying to do serious calculations. - New channel method - CHANNEL_SETFRAGMENTS(), a refined version of CHANNEL_SETBLOCKSIZE(). It accept _both_ blocksize and blockcount arguments, so the driver internals will have better hints for buffering and timing calculations. - Hook FEEDER_SWAPLR into feederchain building process.
feeder_fmt.c: - Unified version of various filters, avoiding duplications. - malloc()less feeder_fmt. Informations can be retrieved dynamically by doing table lookup on static data. For cases such as converting from stereo to mono or reducing bit depth where input data is larger than output, cycle remaining available free space until it has been exhausted and start kicking 8 bytes reservoir space from there to complete the remaining requested count. - Introduce FEEDER_SWAPLR. Few super broken hardwares (found on several extremely cheap uaudio stick, possibly others) mistakenly wired left and right channels wrongly, screwing output or input.
|
167644 |
16-Mar-2007 |
ariff |
[stage: 4/9]
- Rearrange FEEDER_* constants starting from 0 to 31, so the future additions will be much easier and consistent. - Introduce FEEDER_SWAPLR. Few super broken hardwares (found on several extremely cheap uaudio stick, possibly others) mistakenly wired left and right channels wrongly, screwing output or input.
|
167643 |
16-Mar-2007 |
ariff |
[stage: 3.2/9]
malloc()less feeder_vchan. Informations can be retrieved dynamically by doing table lookup on static data. Reduce mixing overhead by doing direct copy on first channel. Mixing process will begin starting from second channel onwards.
|
167642 |
16-Mar-2007 |
ariff |
[stage: 3.1/9]
malloc()less feeder_volume. Informations can be retrieved dynamically by doing table lookup on static data. Increase resolution from 6bit to PCM_FXSHIFT (8bit) for better resolution and finer volume changes.
|
167641 |
16-Mar-2007 |
ariff |
[stage: 2/9]
Use inlined min() rather than MIN() macross.
|
167640 |
16-Mar-2007 |
ariff |
[stage: 1/9]
- Convert sx lock to plain mutex. Since the access of /dev/sndstat is pretty much exclusive and protected by toggling sndstat_isopen, plain mutex is more than enough. - Enable SBUF_AUTOEXTEND to avoid buffer truncation.
|
167623 |
16-Mar-2007 |
ariff |
Fix support for ASUS A7T ALC882 laptop (gpio0 quirk).
Reported/Tested by: cognet
|
167611 |
15-Mar-2007 |
ariff |
Spring cleanup on irrelevant NULL checking over M_WAITOK allocations.
|
167610 |
15-Mar-2007 |
ariff |
- Put some sanity break statement in few missing places. - Remove NULL checking on snd_mtxcreate() (M_WAITOK) .
|
167609 |
15-Mar-2007 |
ariff |
NOOP (for now) for hdac_dma_nocache(). It is a wrong way to enforce cache coherency, besides of causing train wreck in other places (especially on amd64, possibly on i386).
Discussed with: kib@, rafan@ Tested by: rafan@
|
167608 |
15-Mar-2007 |
ariff |
Fix severe out-of-bound mtx "type" pointer, causing WITNESS refcount confusions and panic provided that the following conditions are met:
1) WITNESS is enabled (watch/trace). 2) Using modules, instead of statically linked (Not a strict requirement, but easier to reproduce this way). 3) 2 or more modules share the same mtx type ("sound softc"). - They might share the same name (strcmp() == 0), but it always point to different address. 4) Repetitive kldunload/load on any module that shares the same mtx type (Not a strict requirement, but easier to reproduce this way).
Consider module A and module B: - From enroll() - subr_witness.c: * Load module A. Everything seems fine right now. wA-w_refcount == 1 ; wA-w_name = "sound softc" * Load module B. * w->w_name == description will always fail. ("sound softc" from A and B point to different address). * wA->w_refcount > 0 && strcmp(description, wA->w_name) == 0 * enroll() will return wA instead of returning (possibly unique) wB. wA->w_refcount++ , == 2. * Unload module A, mtx_destroy(), wA->w_name become invalid, but wA->w_refcount-- become 1 instead of 0. wA will not be removed from witness list. * Some other places call mtx_init(), iterating witness list, found wA, failed on wA->w_name == description * wA->w_refcount > 0 && strcmp(description, wA->w_name) * Panic on strcmp() since wA->w_name no longer point to valid address.
Note that this could happened in other places as well, not just sound (eg. consider lots of drivers that share simmilar MTX_NETWORK_LOCK).
Solutions (for sound case): 1) Provide unique mtx type string for each mutex creation (chosen) or 2) Put "sound softc" global variable somewhere and use it.
|
167605 |
15-Mar-2007 |
ariff |
Remove NULL allocation checking since malloc() is allow to wait. (I'll fix other places later..)
|
167604 |
15-Mar-2007 |
ariff |
NULL instead of 0 in mtx_init() .
|
167502 |
13-Mar-2007 |
ariff |
Add AC97 inverted external amplifier quirk for ASUS A6R laptop.
PR: kern/110244 MFC after: 3 days
|
167454 |
11-Mar-2007 |
ariff |
Fix analog CD connectivity. HP decided to screw pinconfig settings in their latest Compaq V3000 BIOS (revision F.22). As a result, analog CD connectivity is gone to the oblivion. Even if they decide to fix it in future revisions, the damage has been done.
|
167355 |
09-Mar-2007 |
ariff |
Fix long standing multi playback/recording issues, caused by excessive interrupt clock timer reset, screwing interrupt generation for already active channels. Track moving DMA pointer and call buffer interrupt on each blocksize boundary.
PR: kern/109791 MFC after: 3 days
|
167285 |
07-Mar-2007 |
kevlo |
Use M_NOWAIT instead of M_WAITOK to cause malloc() to return NULL.
|
167256 |
06-Mar-2007 |
ariff |
Enable tone / 3D controls for YAMAHA YMF743, 753 and 752 (partially).
PR: kern/109599 Submitted by: Watanabe Kazuhiro <CQG00620@nifty.ne.jp>
|
167220 |
05-Mar-2007 |
ariff |
Quick bandaid for possible broken multiple playback channels implementation.
Reported/Tested by: Oliver Iberien <odilist@sonic.net>
|
166971 |
25-Feb-2007 |
netchild |
semi-automatic style(9)
|
166965 |
25-Feb-2007 |
ariff |
Fix ALC883 microphone / recording issues. Setting high(er) VRef on (external) microphone pin tend to screw it. Internal microphone (found on several laptops) still need high VRef.
Tested by: Pietro Cerutti <pietro.cerutti@gmail.com> lenix <irc.freenode.net>
|
166919 |
23-Feb-2007 |
ariff |
- Revert arguments for several functions to pre bus_get_dma_tag() changes. Each softc contains information about their own device_t, use that instead. - bus_setup_intr() -> snd_setup_intr().
|
166918 |
23-Feb-2007 |
ariff |
- Compile time compatibility for pre/post newbus API (intr filter) changes. This should ease the job of maintaining codebase since much of the regression tests are done across os versions. - bus_setup_intr() -> snd_setup_intr().
|
166917 |
23-Feb-2007 |
ariff |
Use snd_setup_intr() instead of bus_setup_intr() , like other drivers.
|
166904 |
23-Feb-2007 |
netchild |
MFp4 (114068): Use bus_get_dma_tag() to obtain the parent DMA tag to make the drivers a little bit more non-ia32/amd64 friendly.
There is no man page for bus_get_dma_tag, so this is modelled after rev. 1.62 of src/sys/dev/sound/pci/es137x.c by marius.
Inspired by: commit by marius
|
166901 |
23-Feb-2007 |
piso |
o break newbus api: add a new argument of type driver_filter_t to bus_setup_intr()
o add an int return code to all fast handlers
o retire INTR_FAST/IH_FAST
For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current
Reviewed by: many Approved by: re@
|
166796 |
16-Feb-2007 |
ariff |
Add codec id for Sigmatel STAC9271D.
Submitted by: Michael Fuckner <michael@fuckner.net>
|
166713 |
14-Feb-2007 |
ariff |
Fix compilation for statically linked snd_envy24{ht}/spicds. Use explicit struct mtx rather than void pointer.
PR: kern/109147
|
166488 |
04-Feb-2007 |
joel |
Orion originally wrote and added these files in 2002/2003, so with his approval, change the copyright statement to point at him instead of "FreeBSD, Inc".
Encouraged by: rwatson Reviewed by: imp Discussed with and approved by: orion
|
166427 |
02-Feb-2007 |
joel |
Remove dead email address.
Requested by: luigi
|
166426 |
02-Feb-2007 |
joel |
Clean up the BSD license to match the preferred license in /usr/share/examples/etc/bsd-style-copyright. I've fixed a few minor wording and formatting differences.
Approved by: luigi, Hannu Savolainen <hannu@opensound.com>
|
166425 |
02-Feb-2007 |
joel |
Add a standard BSD license to these files.
Discussed with: rwatson Approved by: luigi
|
166393 |
01-Feb-2007 |
ariff |
Fix huge memory leak within sound buffer (during channel destruction, buffer resizing, etc.) that was here since eon. Free all (unmanaged) allocated buffer through sndbuf_destroy() in case we forgot to call sndbuf_free(). For a managed buffer (mostly hw specific managed buffer), either provide CHANNEL_FREE() method with appropriate return value to invoke semi-automatic sndbuf_free() or simply do it on their own. If everything is failed, sndbuf_destroy() will come to the rescue as a final measure.
MFC after: 3 days
|
166392 |
01-Feb-2007 |
ariff |
Fix apparent memory leak (during vchan destruction) that was here since eon.
|
166367 |
31-Jan-2007 |
joel |
Put #ifndef... after the license.
Approved by: ariff
|
166364 |
31-Jan-2007 |
joel |
s/WHETHERIN/WHETHER IN/ & s/THEPOSSIBILITY/THE POSSIBILITY/ in the license text.
Approved by: imp
|
166322 |
28-Jan-2007 |
joel |
Clean up the BSD license to match the preferred license in /usr/share/examples/etc/bsd-style-copyright. I've fixed a few minor wording and formatting differences.
Approved by: matk, Hannu Savolainen <hannu@opensound.com> Reviewed by: imp
|
166294 |
28-Jan-2007 |
ariff |
Add speaker control for HP xw4300. This hardware doesn't respond to unsolicited pin sense event and need manual control to turn off speaker volume while attaching headphone.
Tested by: Ingeborg Hellemo <Ingeborg.Hellemo@cc.uit.no>
Disable global Acer + ALC883 headphone automute settings since there are few models that does not respect this and causing broken behaviour.
Reported/Tested by: Pavel Argentov <argentoff@rtelekom.ru>
|
166280 |
27-Jan-2007 |
ariff |
Rearrange locking order to avoid LOR (cat /dev/midistat).
Reported by: rodrigc
|
166279 |
27-Jan-2007 |
ariff |
Massive inlining cleanups/removal to make it survive on WARNS=2.
|
166278 |
27-Jan-2007 |
ariff |
Reduce maximum DMA segments from 128 to 64. We don't need more than that.
|
166267 |
26-Jan-2007 |
ariff |
Total DMA segments should include total number of record channel(s).
|
166265 |
26-Jan-2007 |
ariff |
Fix forever broken ua_chan_setblocksize() uninitialized return value which causing divide by zero panic in other places (notably chn_sync()).
|
166264 |
26-Jan-2007 |
ariff |
Sync uaudio_sndstat_prepare_pcm() output with sndstat_prepare_pcm() to get simmilar (debugging) output.
|
166165 |
21-Jan-2007 |
marius |
Change the remainder of the drivers for DMA'ing devices enabled in the sparc64 GENERIC and the sound device drivers known working on sparc64 to use bus_get_dma_tag() to obtain the parent DMA tag so we can get rid of the sparc64_root_dma_tag kludge eventually. Except for ath(4), sk(4), stge(4) and ti(4) these changes are runtime tested (unless I booted up the wrong kernels again...).
|
166098 |
18-Jan-2007 |
marius |
- Probe the CS4231 in USIII machines. - Remove unused variables. [1]
Reported by: Coverity Prevent (CID 700, 701) [1]
|
166043 |
16-Jan-2007 |
joel |
Fix typo in a comment.
|
165992 |
13-Jan-2007 |
ariff |
Fix headphone/speaker automute for [1] Acer Aspire 5050 and [2] MSI MS-1034 laptops.
Tested by: [1] Lion G. <liontanker@hotmail.com> [2] Pietro Cerutti <pietro.cerutti@gmail.com>
Specialized mixer initialization for STAC9221, much like STAC9220.
Tested by: Devon H. O'Dell
|
165835 |
06-Jan-2007 |
netchild |
Fixes module build with DEB(x) defined to x.
Submitted by: Yuriy Tsibizov <Yuriy.Tsibizov@gfk.ru>
|
165834 |
06-Jan-2007 |
netchild |
Sync with NetBSD: revision 1.98 is NOT merged, because FreeBSD does not support this syntax. revision 1.99 is NOT merged, "const poisoning" part is not applicable to FreeBSD. There is no variable shadowing, GCC can't find this one (but there are others) revision 1.100 is NOT merged, because it was null patch (no changes) revision 1.101 is NOT merged, there is no BIT() macro in FreeBSD revision 1.102 is merged revision 1.103 is partially merged. There is no ai.ifaceh in FreeBSD revision 1.104 is NOT merged revision 1.105 is merged revision 1.106 is not merged, because of rev. 1.107 revision 1.107 is a backuout of 1.106
Submitted by: Yuriy Tsibizov <Yuriy.Tsibizov@gfk.ru>
|
165833 |
06-Jan-2007 |
netchild |
Extend the emu10kx driver. With the words of the author: ---snip--- New features: 1. Optional multichannel recording (32 channels on Live!, 64 channels on Audigy).
All channels are 16bit/48000Hz/mono, format is fixed. Half of them are copied from sound output, another half can be used to record any data from DSP. What should be recorded is hardcoded in DSP code. In this version it records dummy data, but can be used to record all DSP inputs, for example..
Because there are no support of more-than-stereo sound streams multichannell stream is presented as one 32(64)*48000 Hz 16bit mono stream.
Channel map:
SB Live! (4.0/5.1) offset (words) substream 0x00 Front L 0x01 Front R 0x02 Digital Front L 0x03 Digital Front R 0x04 Digital Center 0x05 Digital Sub 0x06 Headphones L 0x07 Headphones R 0x08 Rear L 0x09 Rear R 0x0A ADC (multi-rate recording) L 0x0B ADC (multi-rate recording) R 0x0C unused 0x0D unused 0x0E unused 0x0F unused 0x10 Analog Center (Live! 5.1) / dummy (Live! 4.0) 0x11 Analog Sub (Live! 5.1) / dummy (Live! 4.0) 0x12..-0x1F dummy
Audigy / Audigy 2 / Audigy 2 Value / Audigy 4 offset (words) substream 0x00 Digital Front L 0x01 Digital Front R 0x02 Digital Center 0x03 Digital Sub 0x04 Digital Side L (7.1 cards) / Headphones L (5.1 cards) 0x05 Digital Side R (7.1 cards) / Headphones R (5.1 cards) 0x06 Digital Rear L 0x07 Digital Rear R 0x08 Front L 0x09 Front R 0x0A Center 0x0B Sub 0x0C Side L 0x0D Side R 0x0E Rear L 0x0F Rear R 0x10 output to AC97 input L (muted) 0x11 output to AC97 input R (muted) 0x12 unused 0x13 unused 0x14 unused 0x15 unused 0x16 ADC (multi-rate recording) L 0x17 ADC (multi-rate recording) R 0x18 unused 0x19 unused 0x1A unused 0x1B unused 0x1C unused 0x1D unused 0x1E unused 0x1F unused 0x20..0x3F dummy
Fixes: 1. Do not assign negative values to variables used to index emu_cards array. This array was never accessed when index is negative, but Alexander (netchild@) told me that Coverity does not like it. After this change emu_cards[0] should never be used to identify valid sound card. 2. Fix off-by-one errors in interrupt manager. Add more checks there. 3. Fixes to sound buffering code now allows driver to use large playback buffers. 4. Fix memory allocation bug when multichannel recording is not enabled. 5. Fix interrupt timeout when recording with low bitrate (8kHz).
Hardware: 1. Add one more known Audigy ZS card to list. Add two cards with PCI IDs betwen old known cards and new one.
Other changes: 1. Do not use ALL CAPS in messages.
Incomplete code: 1. Automute S/PDIF when S/PDIF signal is lost.
Tested on i386 only, gcc 3.4.6 & gcc41/gcc42 (syntax only). ---snip---
This commits enables a little bit of debugging output when the driver is loaded as a module. I did a cross-build test for amd64.
The code has some style issues, this will be addressed later.
The multichannel recording part is some work in progress to allow playing around with it until the generic sound code is better able to handle multichannel streams.
This is supposed to fix CID: 171187 Found by: Coverity Prevent
Submitted by: Yuriy Tsibizov <Yuriy.Tsibizov@gfk.ru>
|
165770 |
04-Jan-2007 |
ariff |
Fix headphone/speaker automute for Toshiba Satellite Pro U200.
Reported/Tested by: keramida
|
165466 |
22-Dec-2006 |
ariff |
Fix distorted sound on Intel Desktop Board D101GGC (ATI SB450/ALC861).
Turn on ALC861 quirk as default since it seems affecting all hardwares with the same codec.
Reported/Tested by: Darryl Yeoh <drl@MyBSD.org.my>
|
165351 |
19-Dec-2006 |
ariff |
Fix distorted sound on Fujitsu Siemens AMILO Pa 1510.
Reported/Tested by: infofarmer
|
165306 |
17-Dec-2006 |
ariff |
Latest updates for Envy24/24HT. Fix various issues with LOR and panic during verbose booting.
Submitted by: Konstantin Dimitrov <kosio.dimitrov@gmail.com>
|
165305 |
17-Dec-2006 |
ariff |
Add codec id for [1] Realtek ALC888 and [2] Sigmatel STAC9227
Found/Tested by: [1] luigi [2] Jean-Baptiste Quenot <jbq@caraldi.com>
|
165304 |
17-Dec-2006 |
ariff |
Add support for Nvidia Nforce MCP04 AC97 controller.
PR: kern/106829 Submitted by: Frédéric Petit <fredantispam@free.fr>
|
165281 |
16-Dec-2006 |
ariff |
Miscellaneous fixups and quirks for ASUS A7M, LG LW20 and HP NX6325 laptops.
|
165239 |
15-Dec-2006 |
ariff |
Fix compilation using gcc 4.1.
Submitted by: dougb
|
165103 |
11-Dec-2006 |
ariff |
Fix distorted sound on ASUS P1-AH2 caused by accumulated input / output.
Reported/Tested by: Hiroharu Tamaru <tamaru@myn.rcast.u-tokyo.ac.jp>
|
165069 |
10-Dec-2006 |
ariff |
Fix AD1986A (and possibily other codecs too) microphone issues.
Tested by: xride (using skype, xanalyser, etc. ; play/record)
|
165039 |
09-Dec-2006 |
ariff |
- Fix headphone/speakers automute on Lenovo 3000 N100.
Tested by: xride
- GPIO commit cleanups and fixes for possible breakage during previous commit.
|
164980 |
07-Dec-2006 |
ariff |
Don't try to workaround broken apps (if any). If this still the case, lets fix the broken apps instead.
|
164979 |
07-Dec-2006 |
ariff |
Remove comment that is no longer relevant since previous buffering fix.
|
164828 |
02-Dec-2006 |
ariff |
Add support for Apple Intel/Mac.
- Playback and headphone/speaker automute works. - Recording untested due to me being deaf doing back-and-forth remote debugging.
Free Macbook donation is highly appreciated :)
Tested by: Dennis Pielken <mips128@gmx.net>
|
164783 |
01-Dec-2006 |
ariff |
Add inverted amplifier sense quirk for HP Compaq nx4300.
PR: kern/106104 Submitted by: Shun-ichi Kobayashi <koba@mbox.kudpc.kyoto-u.ac.jp> MFC after: 3 days
|
164750 |
29-Nov-2006 |
ariff |
Fix support for Medion MD MD95257 (GPIO2 quirk).
Reported by: Chris Tophe <cohika@gmail.com>
|
164657 |
27-Nov-2006 |
ariff |
- LNV -> LENOVO - Fix support for Samsung Q1 UltraMobile PC (inverted EAPD).
Reported by: benno
|
164614 |
26-Nov-2006 |
ariff |
Welcome to Once-a-year Sound Mega-Commit. Enjoy numerous updates and fixes in every sense.
General -------
- Multichannel safe, endian safe, format safe * Large part of critical pcm filters such as vchan.c, feeder_rate.c, feeder_volume.c, feeder_fmt.c and feeder.c has been rewritten so that using them does not cause the pcm data to be converted to 16bit little endian. * Macrosses for accessing pcm data safely are defined within sound.h in the form of PCM_READ_* / PCM_WRITE_* * Currently, most of them are probably limited for mono/stereo handling, but the future addition of true multichannel will be much easier.
- Low latency operation * Well, this require lot more works to do not just within sound driver, but we're heading towards right direction. Buffer/block sizing within channel.c is rewritten to calculate precise allocation for various combination of sample/data/rate size. As a result, applying correct SNDCTL_DSP_POLICY value will achive expected latency behaviour simmilar to what commercial 4front driver do. * Signal handling fix. ctrl+c of "cat /dev/zero > /dev/dsp" does not result long delay. * Eliminate sound truncation if the sound data is too small. DIY: 1) Download / extract http://people.freebsd.org/~ariff/lowlatency/shortfiles.tar.gz 2) Do a comparison between "cat state*.au > /dev/dsp" and "for x in state*.au ; do cat $x > /dev/dsp ; done" - there should be no "perceivable" differences. Double close for PR kern/31445.
CAVEAT: Low latency come with (unbearable) price especially for poorly written applications. Applications that trying to act smarter by requesting (wrong) blocksize/blockcount will suffer the most. Fixup samples/patches can be found at: http://people.freebsd.org/~ariff/ports/
- Switch minimum/maximum sampling rate limit to "1" and "2016000" (48k * 42) due to closer compatibility with 4front driver. Discussed with: marcus@ (long time ago?)
- All driver specific sysctls in the form of "hw.snd.pcm%d.*" have been moved to their own dev sysctl nodes, notably: hw.snd.pcm%d.vchans -> dev.pcm.%d.vchans Bump __FreeBSD_version.
Driver specific ---------------
- Ditto for sysctls.
- snd_atiixp, snd_es137x, snd_via8233, snd_hda * Numerous cleanups and fixes. * _EXPERIMENTAL_ polling mode support using simple callout_* mechanisme. This was intended for pure debugging and latency measurement, but proven good enough in few unexpected and rare cases (such as problematic shared IRQ with GIANT devices - USB). Polling can be enabled/disabled through dev.pcm.0.polling. Disabled by default.
- snd_ich * Fix possible overflow during speed calibration. Delay final initialization (pcm_setstatus) after calibration finished. PR: kern/100169 Tested by: Kevin Overman <oberman@es.net> * Inverted EAPD for few Nec VersaPro. PR: kern/104715 Submitted by: KAWATA Masahiko <kawata@mta.biglobe.ne.jp>
Thanks to various people, notably Joel Dahl, Yuriy Tsibizov, Kevin Oberman, those at #freebsd-azalia @ freenode and others for testing.
Joel Dahl will do the manpage update.
|
164613 |
26-Nov-2006 |
netchild |
MFP4 (109713): Add OSS_GETVERSION ioctl for compatibility.
Some ports expect this and fail to compile on -current ATM.
Submitted by: ryanb
|
163731 |
28-Oct-2006 |
netchild |
MFP4: Rename MAX_SAMPLE_RATES macro to OSS_MAX_SAMPLE_RATES. The old macro clashed with those used in other applications and libaries (ex: RtAudio). 4Front responded by updating their spec, so we will follow suit.
Submitted by: ryanb Noticed by: pointyhat/kris
|
163432 |
16-Oct-2006 |
ariff |
- Inverted EAPD quirk for ASUS A8Jc. - Take the literal meaning of eapdbtl, but do the inversion during write.
Tested by: Chung-liang Wei <idreamer@gmail.com>
|
163364 |
15-Oct-2006 |
ariff |
Wrap debug printfs into SEQ_DEBUG() to avoid kernel messages clutter during module unload.
|
163276 |
12-Oct-2006 |
ariff |
- Fix support for ASUS U5F laptop. This laptop (and possibly others) need a special inverted EAPD quirk. - Add "eapdinv" config for future testing purposes.
Tested by: Yuriy Tsibizov <Yuriy.Tsibizov@gfk.ru> #freebsd-azalia @ irc.freenode.net
|
163257 |
12-Oct-2006 |
ariff |
Fix support for IBM/Lenovo Thinkcentre M52 series. Its vendorid / 0x1014 accidentally match with HP vendorid / 0x103c.
Reported by: Robert Noland <rnoland@2hip.net>
|
163136 |
08-Oct-2006 |
ariff |
Added few more pci ids for Intel, ATI, NVidia, VIA and SiS.
|
163133 |
08-Oct-2006 |
netchild |
Remove unnecessary test case. (As written, that branch will never be followed.)
Submitted by: ryanb Found with: Coverity Prevent CID: 239860
|
163057 |
06-Oct-2006 |
ariff |
- Fix wrong id for ALC882, add ALC883 id.
- Add support for the Conexant Waikiki/CX20551-22, found in most Toshiba P100 series laptops. Despite of growing urban legend of "unsupported Conexant", this codec is fully supported in this driver. Note: Toshiba P100 has broken (acpi) BIOS, thus rendering its soundchip useless. Please disable ACPI, or get BIOS updates (if any).
Found/tested by: Vulpes Velox <v.velox@vvelox.net> URL: http://lists.freebsd.org/pipermail/freebsd-multimedia/2006-September/004896.html
- Parser cleanups to handle possible oss/mixer collision. Found after parsing Conexant Waikiki nodes.
- Increase resilient against resource failure during attach/detach.
- Implement simple config through hint.pcm.<unit>.config. Supported options: gpio0 (default on Acer), gpio1, gpio2, softpcmvol, fixedrate (default), forcestereo (default) * Option prefixed with "no" (such as "nofixedrate") will do the opposite. * Options can be separated using space " " or comma ",". * The "no" option will take precedence over anything else. Example: hint.pcm.0.config="gpio2,nofixedrate,noforcestereo,nogpio0,softpcmvol" hint.pcm.0.config="softpcmvol noforcestereo"
|
162974 |
02-Oct-2006 |
ariff |
Backout remaining changes that make most AD1981B users unhappy. The exact situation is understood, and proper solution will follow sooner.
|
162965 |
02-Oct-2006 |
ariff |
- Streamline quirks management for a better future. - Fix support for ASUS M5200ae (buggy BIOS) - Fix few problems, reported by Coverity Prevent (TM).
CID: 246991, 246676, 246675, 246674, 246477 Found by: Coverity Prevent (TM)
|
162957 |
02-Oct-2006 |
ariff |
Disable ad1981_patch for now until the real solution can be found and makes everybody happy.
|
162956 |
02-Oct-2006 |
ariff |
Make this buildable on IA64.
Reported by: phk
|
162933 |
01-Oct-2006 |
netchild |
snd_ak452x is replaced by snd_spicds and snd_envy24ht is new.
|
162931 |
01-Oct-2006 |
ariff |
Various cleanups. Revert DMA alignmnet back to 2 since the original cause of DMA pointer train wreck has been solved.
Reminded by: silby MFC after: 1 month
|
162925 |
01-Oct-2006 |
ariff |
Connect snd_hda(4) to build process...
Add support for Intel High Definition Audio Controller.
This driver make a special guarantee that "playback" works on majority hardwares with minimal or without specific vendor quirk.
This driver is a product of collaborative effort made by:
Stephane E. Potvin <sepotvin@videotron.ca> Andrea Bittau <a.bittau@cs.ucl.ac.uk> Wesley Morgan <morganw@chemikals.org> Daniel Eischen <deischen@FreeBSD.org> Maxime Guillaud <bsd-ports@mguillaud.net> Ariff Abdullah <ariff@FreeBSD.org>
....and various people from freebsd-multimedia@FreeBSD.org
Refer to snd_hda(4) for features and issues.
Welcome To HDA.
Sponsored by: Defenxis Sdn. Bhd.
|
162922 |
01-Oct-2006 |
ariff |
Add support for Intel High Definition Audio Controller.
This driver make a special guarantee that "playback" works on majority hardwares with minimal or without specific vendor quirk.
This driver is a product of collaborative effort made by:
Stephane E. Potvin <sepotvin@videotron.ca> Andrea Bittau <a.bittau@cs.ucl.ac.uk> Wesley Morgan <morganw@chemikals.org> Daniel Eischen <deischen@FreeBSD.org> Maxime Guillaud <bsd-ports@mguillaud.net> Ariff Abdullah <ariff@FreeBSD.org>
....and various people from freebsd-multimedia@FreeBSD.org
Refer to snd_hda(4) for features and issues.
Welcome To HDA.
Sponsored by: Defenxis Sdn. Bhd.
|
162886 |
30-Sep-2006 |
netchild |
Driver for Envy24HT (ICE1724 or VT1724)-based cards like Terratec Aureon 7.1 Space: tested Terratec Aureon 5.1 Sky: tested Terratec PHASE 28: tested Terratec Aureon 7.1 Universe: tested Audiotrak Prodigy 7.1: tested Audiotrak Prodigy 7.1 LT: not tested Terratec PHASE 22: not tested M-Audio Revolution 7.1: not tested M-Audio Revolution 5.1: not tested M-Audio Audiophile 192: tested
Submitted by: "Konstantin Dimitrov" <kosio.dimitrov@gmail.com>
|
162881 |
30-Sep-2006 |
netchild |
Remove the ak452x code, superseeded by spicds.
|
162876 |
30-Sep-2006 |
netchild |
- fix memory leak, when "number of adcs" != "number of dacs" - fix multiple initialization of the first codec (support for more than one codec should be added in the future) - use spicds instead of ak452x module
Submitted by: "Konstantin Dimitrov" <kosio.dimitrov@gmail.com>
|
162874 |
30-Sep-2006 |
netchild |
After repo copy from ak452x.[ch]: SPIcds is the I2S SPI audio codec code used by the Envy* drivers.
Submitted by: "Konstantin Dimitrov" <kosio.dimitrov@gmail.com>
|
162829 |
30-Sep-2006 |
ariff |
Nuke OSSV4_EXPERIMENT ifdefs from kludgy MIXER_SIZE definition since the exclusion of sizeof(oss_mixer_enuminfo) is the real cause of overflow (worth of +3000 bytes).
Noticed by: tegge
|
162828 |
30-Sep-2006 |
ariff |
The addition of few more 32bit integer into struct snd_mixer causing an accidental MIXER_SIZE overflow. Use 8bit integer instead of 32bit to reduce the kludge size.
Noticed by: tegge
|
162791 |
29-Sep-2006 |
ariff |
Fix pointer dereference before NULL pointer checking.
Noticed by: netchild CID: 243889 Found by: Coverity Prevent (TM)
|
162776 |
29-Sep-2006 |
ru |
SNDCTL_TMR_{START,STOP,CONTINUE} don't take an argument.
|
162775 |
29-Sep-2006 |
ru |
The SNDCTL_DSP_NONBLOCK ioctl doesn't take an argument, from what I can tell by browsing the Internet (Linux, OSS, etc.).
|
162738 |
28-Sep-2006 |
ariff |
Various fixups, especially for the upcomming High Definition Audio commit.
1) sys/dev/sound/pcm/sound.h sys/dev/sound/pcm/channel.c * Be more specific: SD_F_SOFTVOL -> SD_F_SOFTPCMVOL 2) sys/dev/sound/pcm/mixer.[ch] * Implement mix_setparentchild() mix_setrealdev() mix_getparent() mix_getchild() The purpose of these functions is implement relative volume adjustment, such as to tie two or more mixer device into a single logical device. Usefull for the upcoming HDA driver and few AC97 codec (such as AD1981B) where the master volume "vol" need to be implemented using this logical manner. 3) sys/dev/sound/pcm/ac97_patch.[ch] * Patch for AD1981B codec to enable (automuting) headphone jack sense. 4) sys/dev/sound/pcm/ac97.c * Implement proper logical master volume for AD9181B codec through various mix_set{parentchild,realdev}(). Tie both "ogain" (headphone volume) and "phone" (speaker/lineout) to a logical "vol". 5) sys/dev/sound/pcm/usb/uaudio_pcm.c * ditto, for "vol" -> { "pcm" }.
MFC after: 1 month
|
162606 |
24-Sep-2006 |
netchild |
Fix uninitialized variable warning.
Submitted by: dhw Reviewed by: ryanb
|
162588 |
23-Sep-2006 |
netchild |
MFp4 the sound Google Summer of Code project:
The goal was to sync with the OSSv4 API 4Front Technologies uses in their proprietary OSS driver. This was successful as far as possible. The part of the API which is stable is implemented, for the rest there are some stubs already.
New system ioctls: - SNDCTL_SYSINFO - obtain audio system info (version, # of audio/midi/ mixer devices, etc.) - SNDCTL_AUDIOINFO - fetch details about a specific audio device - SNDCTL_MIXERINFO - fetch details about a specific mixer device
New audio ioctls: - Sync groups (SNDCTL_DSP_SYNCGROUP/SNDCTL_DSP_SYNCSTART) which allow triggered playback/recording on multiple devices (even across processes simultaneously). - Peak meters (SNDCTL_DSP_GETIPEAKS/SNDCTL_DSP_GETOPEAKS) - can query audio drivers for peak levels (needs driver support, disabled for now). - Per channel playback/recording levels - SNDCTL_DSP_{GET,SET}{PLAY,REC}VOL. Note that these are still in name only, just wrapping around the AC97-style mixer at the moment. The next step is to push them down to the drivers.
Audio ioctls still under development by 4Front (for which stubs may exist in this commit): - SNDCTL_GETNAME, SNDCTL_{GET,SET}{SONG,LABEL} - SNDCTL_DSP_{GET,SET}_CHNORDER - SNDCTL_MIX_ENUMINFO, SNDCTL_MIX_EXTINFO - (might be documented enough in the OSS releases to work on this. These ioctls cover the cool "twiddle any knob on your card" features.)
Missing: - SNDCTL_DSP_COOKEDMODE -- this ioctl is used to give applications direct access to a card's buffers, bypassing the feeder architecture. It's a toughy -- "someone" needs to decide : (a) if this is desireable, and (b) if it's reasonably feasible.
Updates for driver writers: So far, only two routines to the channel class (in channel_if.m) are added. One is for fetching a list of discrete supported playback/recording rates of a channel, and the other is for fetching peak level info (useful for drawing peak meters). Interested parties may want to help pushing down SNDCTL_DSP_{GET,SET}{PLAY,REC}VOL into the drivers.
To use the new stuff you need to rebuild the sound drivers or your kernel (depending on if you use modules or not) and to install soundcard.h (a buildworld/installworld handles this).
Sponsored by: Google SoC 2006 Submitted by: ryanb Many thanks to: 4Front Technologies for their cooperation, explanations and the nice license of their soundcard.h.
|
162180 |
09-Sep-2006 |
netchild |
Fix the check where we want to use the end of the supported range if the value is out of the supported range.
Noticed by: Ed Schouten <ed@fxq.nl> Reviewed by: Kazuhito HONDA <kazuhito@ph.noda.tus.ac.jp>
|
162100 |
07-Sep-2006 |
scottl |
Catch up to USB changes.
|
161300 |
15-Aug-2006 |
yongari |
Add inverted amplifier sense quirks for Compaq Presario B3800
Reported by: Nick Withers < nick AT nickwithers DOT com > Tested by: Nick Withers < nick AT nickwithers DOT com > No objection from: ariff MFC after: 1 week
|
161058 |
07-Aug-2006 |
netchild |
Use a low probe-priority to ensure that the emu10kx driver has a higher priority than this one when both are available.
|
161057 |
07-Aug-2006 |
netchild |
"Fix typos in volume control DSP code."
Submitted by: Yuriy Tsibizov <Yuriy.Tsibizov@gfk.ru>
|
161056 |
07-Aug-2006 |
netchild |
"Fixe playback of mono files on stereo outputs. In previous version mono files are played only on left channel."
Submitted by: Yuriy Tsibizov <Yuriy.Tsibizov@gfk.ru>
|
161055 |
07-Aug-2006 |
netchild |
"Change type for flags bitmap to let use 1 as flag value without overflow (to -1)."
Submitted by: Yuriy Tsibizov <Yuriy.Tsibizov@gfk.ru>
|
161054 |
07-Aug-2006 |
netchild |
"Workaround for sound lag in current snd_emu10kx driver. Real problem is interaction between in-kernel sound buffer handling and hardware. With small buffer, there are times when both harwdare reads and kernel writes to the same buffer (it is only visible on slow machines, i think). I'm digging in channel.c and buffer.c to find a solution that allow use of large hardware buffers without sound lags - hardware can handle buffers up to 32Mb."
Submitted by: Yuriy Tsibizov <Yuriy.Tsibizov@gfk.ru>
|
160796 |
28-Jul-2006 |
netchild |
- fix memory leak after "kldunload snd_ak452x.ko" - fix "No sound in KDE": The problem is related to the implementation of Envy24(1712) hardware mixer support in the driver. Envy24(1712) has very precise 36bit wide hardware mixer, which is superior that vchans (software sound mixer in the kernel). The driver supports Envy24(1712) hardware mixer, so up to 10 channels (5 stereo pairs) can be playback simultaneously. However, there are problems with the implementation of Envy24(1712) hardware mixer support in the driver, one of them is the problem with "no sound in KDE": When playing back several channels simultaneously and stoping one of the channels, sound starts to stutter and plays at very low speed. Another problem is: Playing back simultaneously more than one 24bit/32bit sound file or 16bit sound file and 24bit/32bit sound file doesn't work as expected.
Submitted by: "Konstantin Dimitrov" <kosio.dimitrov@gmail.com>
|
160439 |
17-Jul-2006 |
netchild |
Rename some variables. This fixes some (but not all) problems on the way for WARNS > 2 cleanlyness.
Submitted by: Yuriy Tsibizov <Yuriy.Tsibizov@gfk.ru>
|
160438 |
17-Jul-2006 |
netchild |
Prepend temporary sysctls with an underscore.
Submitted by: Yuriy Tsibizov <Yuriy.Tsibizov@gfk.ru>
|
160409 |
16-Jul-2006 |
netchild |
Fix a compile time problem on amd64. I'm not sure if the fix is correct from a semantic point of view, but I notified the author of the driver for confirmation. So far it at least fixes the build and should only lead to not identifying or wrongly identifying a soundcard in the worst case.
|
160386 |
15-Jul-2006 |
netchild |
- Connect the snd_emu10kx driver to the build. [1] - Bump __FreeBSD_version, no need to build the port now.
Submitted by: Yuriy Tsibizov <Yuriy.Tsibizov@gfk.ru> [1]
|
160385 |
15-Jul-2006 |
netchild |
Make the mixer kobj class static. This brings it inline with the channel or ac97 classes.
Tested with: es137x based sound hardware
|
160384 |
15-Jul-2006 |
netchild |
Make the MIDI kobj class static. This brings it inline with the channel or ac97 classes.
This allows to link emu10k1 and emu10kx into the same kernel (LINT).
|
160383 |
15-Jul-2006 |
netchild |
Add snd_emu10kx driver for Creative SoundBlaster Live! and Audigy series sound cards with optional pseudo-multichannel playback.
It's based on snd_emu10k1 sound driver. Single channel version is available from audio/emu10kx port since some time.
The two new ALSA header files (GPLed), which contain Audigy 2 ("p16v") and Audigy 2 Value ("p17v") specific interfaces, are latest versions from ALSA Mercurial repository.
This is not connected to the build yet.
Submitted by: Yuriy Tsibizov <Yuriy.Tsibizov@gfk.ru>
|
160382 |
15-Jul-2006 |
netchild |
- Update ALSA emu10k1.h (it was imported as emu10k1-alsa.h) header file to latest version from Mercurial repository. It brings definition of some additional Audigy 2 / Audigy 2 Value registers. - Use new #defines from ALSA emu10k1.h - Remove unused include files: + emu10k1-ac97.h was imported from ALSA and never used, + emu10k1.h was imported from Creative Linux emu10k1 driver, but only AUDIGY_CODEBASE was used from it.
Submitted by: Yuriy Tsibizov <Yuriy.Tsibizov@gfk.ru>
|
160288 |
12-Jul-2006 |
njl |
Move debug printfs under the proper macro.
|
160127 |
06-Jul-2006 |
yongari |
Fix a missing unlock operation in interrupt handler.
PR: kern/99205 Submitted by: Alexey Illarionov <littlesavage AT rambler DOT ru> MFC after: 1 week
|
159732 |
18-Jun-2006 |
netchild |
- Rename hw.snd.unit to hw.snd.default_unit to make the purpose more obvious. - Enable 4 automatic vchan's by default. - Add some comments which provide ides/questions for improvement. - Prefix some temporary sysctl's with an underscore to denote that it is not an official API but a workaround until the real solution is implemented.
|
159693 |
17-Jun-2006 |
netchild |
Load the envy24 driver in the meta-module too.
|
159689 |
17-Jun-2006 |
netchild |
- fix compatibility with newer versions of FreeBSD - fix all warnings during compilation - fix obvious bugs - add support for more cards
Now supported: - M-Audio Delta Dio 2496 - M-Audio Audiophile 2496 - Terratec DMX 6fire
Known bugs (detected by Nokolas and Stefan): - $ kldunload snd_ak452x.ko Warning: memory type ak452x leaked memory on destroy (1 allocations, 64 bytes leaked). - No sound in KDE: Everything works fine at the console but when I load KDE (3.5.3) the sound stutters and plays at less then 1/2 speed. - 'mixer: WRITE_MIXER: Device not configured' The message repeats x times at system startup, x = whatever hw.snd.maxautovchans is set to. (this is because only vol, pcm and line are supported, but the driver shows more than those mixer devices and setting those additional mixers results in this error message) - vchans don't work - 24 bit playback not supported (only 16/32 bit) - after kld(un)loading some times, the card fails to be probed until reboot
Datasheets are available from: http://www.nbritton.org/uploads/envy24/ http://www.asahi-kasei.co.jp/akm/en/product/ak4528/ak4528_f01e.pdf http://www.asahi-kasei.co.jp/akm/en/product/ak4528/ekd4528-01.pdf http://www.asahi-kasei.co.jp/akm/en/product/ak4524/ak4524_f03e.pdf http://www.asahi-kasei.co.jp/akm/en/product/ak4524/ekd4524.pdf http://www.wolfson.co.uk/uploads/documents/en/WM8728.pdf http://www.richtech.co.kr/down/richtek/RT9131.pdf http://xkodi.svobodno.com/xkodi/space71.html http://people.freebsd.org/~lofi/envy24.pdf http://people.freebsd.org/~lofi/4524.pdf
Submitted by: Konstantin Dimitrov <kosio.dimitrov@gmail.com> Tested by: Nikolas Britton <nikolas.britton@gmail.com> Stefan Ehmann <shoesoft@gmx.net>
|
159687 |
17-Jun-2006 |
netchild |
dd the envy24 driver as is to the tree. It's not connected to the build yet. More commits to follow.
I got no response from the author, but since the driver is BSD licensed I don't think he will complain. :-)
I got it from http://people.freebsd.org/~lofi/envy24.tar.gz
Written by: Katsurajima Naoto <raven@katsurajima.seya.yokohama.jp>
|
159682 |
17-Jun-2006 |
netchild |
Remove the snd_es1888 module now that it isn't build anymore.
Noticed by: Neil Short <neshort@yahoo.com>
|
159042 |
29-May-2006 |
ru |
Fix build with -Wundef.
|
159009 |
28-May-2006 |
netchild |
Use a more appropriate printf format for size_t.
This should unbreak the tinderbox build (64bit architectures).
|
158980 |
27-May-2006 |
netchild |
Commit the new (old) midi framework. It's based in parts on the NetBSD code, but large parts are rewritten by matk and tanimura.
This is old code, it's not maintained since 2003. We also don't have a maintainer for this! Yuriy Tsibizov took it and uses it in his emu10kx driver. Since the emu10kx driver will enter the tree "soon" (some bugs have to be fixed after Yuriy return from his holidays), I add it here already.
This also contains some changes to emu10k1 and cmi, so if you're lucky, you can now make some kind of use of midi with those soundcards.
To all those poor souls which don't have such a card: feel free to send patches, we don't have a maintainer for this.
To those which miss a specific feature in the midi code: feel free to submit patches, we don't have a maintainer for this.
Oh, did I already told that it would be nice if someone would take care of it? Maintainer with midi equipment wanted! :-)
If you get LOR's, submit a PR and notify multimedia@ please. If you get panics, submit a PR with a backtrace (compile the sound system into your kernel instead of using modules in this case) and notify multimedia@ please.
Written by: matk, tanimura Submitted by: "Yuriy Tsibizov" <Yuriy.Tsibizov@gfk.ru> Based upon: code from NetBSD
|
158979 |
27-May-2006 |
netchild |
Commit the new (old) midi framework. It's based in parts on the NetBSD code, but large parts are rewritten by matk and tanimura.
This is old code, it's not maintained since 2003. We also don't have a maintainer for this! Yuriy Tsibizov took it and uses it in his emu10kx driver. Since the emu10kx driver will enter the tree "soon" (some bugs have to be fixed after Yuriy return from his holidays), I add it here already.
This also contains some changes to emu10k1 and cmi, so if you're lucky, you can now make some kind of use of midi with those soundcards.
To all those poor souls which don't have such a card: feel free to send patches, we don't have a maintainer for this.
To those which miss a specific feature in the midi code: feel free to submit patches, we don't have a maintainer for this.
Oh, did I already told that it would be nice if someone would take care of it? Maintainer with midi equipment wanted! :-)
If you get LOR's, submit a PR and notify multimedia@ please. If you get panics, submit a PR with a backtrace (compile the sound system into your kernel instead of using modules in this case) and notify multimedia@ please.
Written by: matk, tanimura Submitted by: "Yuriy Tsibizov" <Yuriy.Tsibizov@gfk.ru> Based upon: code from NetBSD
|
158651 |
16-May-2006 |
phk |
Since DELAY() was moved, most <machine/clock.h> #includes have been unnecessary.
|
158471 |
12-May-2006 |
jhb |
Remove various bits of conditional Alpha code and fixup a few comments.
|
158469 |
12-May-2006 |
jhb |
Remove the snd_ess identify routine for the sound device in Alpha PWS machines.
|
158210 |
01-May-2006 |
ariff |
Add inverted amplifier sense quirks for Sony VAIO VGN B1VP/B1XP.
Reported by: Stan Behrens <s.behrens at kon.de>
|
157956 |
22-Apr-2006 |
ariff |
Add support for (latest) VIA VT8251 (rev. 0x07) audio controller.
A slight difference of this chip from its previous siblings is that it need a gentle "wake up" on every (full) DMA buffer completion to avoid stalled interrupt handler.
Thanks to George Hartzell for permission on doing remote debugging.
Prime MFC candidate for 6.1-RELEASE. Please reply to this commit if there are any objections (so I won't bug re@), since the changes are too small and only specific to VT8251.
PR: i386/95949 Tested by: [1] George Hartzel myself (remotely) MFC after: 3 days
[1] http://lists.freebsd.org/pipermail/freebsd-multimedia/2006-April/004003.html
|
157436 |
03-Apr-2006 |
ariff |
Add device ID for nForce 410 MCP audio controller.
PR: kern/95257 Submitted by: cenix <cenixxx at gmail dot com> MFC after: 3 days
|
157331 |
31-Mar-2006 |
ariff |
MEGA Fixes / Cleanup --------------------
- Seal the fate of long standing memory leak (4 years, 7 months) during pcm_unregister(). While destroying cdevs, scan / detect possible children and free its SLIST placeholder properly. - Optimize channel allocation / numbering even further. Do brute cyclic checking only if the channel numbering screwed. - Mega vchan create/destroy cleanup: o Implement pcm_setvchans() so everybody can use it freely instead of implementing their own, be it through sysctl or channel auto allocation. o Increase vchan creation/destruction resiliency: + it's possible to increase/decrease total vchans even during busy playback/recording. Busy channel will be left alone, untouched. Abusive test sample: # play whatever... # while : ; do sysctl hw.snd.pcm0.vchans=1 sysctl hw.snd.pcm0.vchans=10 sysctl hw.snd.pcm0.vchans=100 sysctl hw.snd.pcm0.vchans=200 done # Play something else, leave above loop running frantically. + Seal another 4 years old bug where it is possible to destroy (virtual) channel even when its cdevs being referenced by other process. The "First Come First Served" nature of dsp_clone() is the main culprit of this issue, and usually manifest itself as dangling channel <-> process association. Ensure that all of its cdevs are free from being referenced before destroying it (through ORPHAN_CDEVT() macross).
All these fixes (including previous fixes) will be MFCed, later.
|
157330 |
31-Mar-2006 |
ariff |
- Increase snddev refcount earlier while accessing through sysctl interface to avoid possible device unregister race (impossible to reproduce, yet possible). - Extra sanity check to ensure proper parent channel is being selected. - Reset parent channel once all of its children gone.
|
157284 |
30-Mar-2006 |
ariff |
Remove paranoid thread hijacking check. It cause wierd behaviour (dangling channel - process association) especially in threaded or fork()ed apps.
|
157028 |
22-Mar-2006 |
ariff |
Don't set primary resume interrupt flag during channel initialization since it can cause high interrupt rate (storm) and slowdown the entire system.
Note: Please report back to me if this commit cause any abnormal behaviour, especially during suspend / resume.
Reported/Submitted by: [1] Daan Vreeken [PA4DAN] <Danovitsch_at_vitsch dot net> Reported/Confirmed by: [2] Angka H. K. <harikurniawan at gmail dot com>
MFC after: 5 days
[1] http://lists.freebsd.org/mailman/htdig/freebsd-hackers/2004-December/009335.html [2] http://lists.freebsd.org/pipermail/freebsd-multimedia/2006-March/003830.html
|
157026 |
22-Mar-2006 |
ariff |
Misc. fixups:
- [1] Make the driver friendly towards kernel without PREEMPTION. Use msleep(9) instead of simple unlock-check_variable-lock mechanisme since the later not really effective in non-preemptible kernel (especially during codec detection routine). - Free most driver resources in a sane manner to avoid possible double free and panics especially during device detach and codec detection failure.
MFC after: 3 days
[1] http://lists.freebsd.org/pipermail/freebsd-questions/2006-March/116515.html
|
157022 |
22-Mar-2006 |
ariff |
We shouldn't really care about the return value of mixer_uninit(), except EBUSY.
|
156979 |
22-Mar-2006 |
ariff |
Pointer align should be generic enough to handle awkward byte size especially for true 24bit format.
|
156929 |
21-Mar-2006 |
ariff |
Apply more thorough fixes while dealing with device opening and closing:
- Determine open direction using 'flags', not 'mode'. This bug exist since past 4 years. - Don't allow opening the same device twice, be it in a same or different direction. - O_RDWR is allowed, provided that it is done by a single open (for example by mixer(8)) and the underlying hardware support true full-duplex operation. - Do various paranoid checking in case other process/thread trying to hijack the same device twice (or more).
MFC after: 5 days
|
156928 |
21-Mar-2006 |
ariff |
Recover (?) support for AD1815 based ISA soundcards.
PR: kern/94388 Submitted by: Krzysztof Kotlenga <piernik at gmail dot com> MFC after: 3 days
|
156765 |
16-Mar-2006 |
ariff |
Restore CHN_F_BUSY flag which was removed accidentally in previous commit.
|
156762 |
16-Mar-2006 |
ariff |
Fix severe 8bit integer overflow during channel creation and destruction, especially for vchans. It turns out that channel numbering always depend on d->devcount counter (which keep increasing), while PCMMKMINOR() truncate everything to 8bit length. At some point the truncation cause the newly created character device overlapped with the existence one, causing erratic overall system behaviour and panic. Easily reproduce with something like:
(Luckily, only root can reproduce this)
while : ; do sysctl hw.snd.pcm0.vchans=200 sysctl hw.snd.pcm0.vchans=100 done
- Enforce channel/chardev numbering within 8bit boundary. Return E2BIG if necessary. - Traverse d->channels SLIST and try to reclaim "free" counter during channel creation. Don't rely on d->devcount at all. - Destroy vchans in reverse order.
Anyway, this is not the fault of vchans. It is just that vchans are so cute and begging to be abused ;) . Don't blame her.
Old, hidden bugs.. sigh..
MFC after: 3 days
|
156376 |
07-Mar-2006 |
ariff |
Add another inverted amplifier sense quirk for Kvazar-Micro Senator 3592XT.
Submitted by: [1] Alexandr Krivulya <admin at marcom-group.com> MFC after: 3 days
[1] http://lists.freebsd.org/pipermail/freebsd-multimedia/2006-March/003773.html
|
156308 |
05-Mar-2006 |
ariff |
Add another inverted amplifier sense quirk for Sony VAIO Type T.
PR: kern/94056 Submitted by: Yoshihiko Sarumaru <mistral at imasy.or.jp> MFC after: 3 days
|
155976 |
24-Feb-2006 |
ariff |
Trim unnecessary pointer alignment.
|
155958 |
23-Feb-2006 |
jhb |
Remove some dead code.
Coverity ID: 822 Found by: Coverity Prevent Reviewed by: ariff MFC after: 1 week
|
155800 |
18-Feb-2006 |
ariff |
- Fix severe crackling after long running and abusive module load / unload by forcing DMA alignment to default buffer size. - Make sure DMA pointer properly aligned to avoid being truncated by caller which causing severe underruns and random popping (especially in 32bit playback / recording). - Add AC97 inverted external amplifier quirk for Maxselect x710s - http://maxselect.ru/
MFC after: 1 week
|
155799 |
18-Feb-2006 |
ariff |
Fix random popping while playing in 32bit by increasing default buffer size from 4096 to 8192.
MFC after: 1 week
|
155568 |
12-Feb-2006 |
ariff |
Fix possible DMA leak and locking violation especially during suspend <-> resume and module load <-> unload.
PR: kern/92764 MFC after: 3 days
|
155342 |
05-Feb-2006 |
netchild |
Convert NULL checks into KASSERT (and move them before the first dereferencing) since a NULL value would be a bug here.
Note: Both affected functions look very similar. A refactoring may be beneficial.
CID: 483, 485 Found with: Coverity Prevent(tm) Discussed with: ariff MFC after: 5 days
|
155338 |
05-Feb-2006 |
netchild |
A pointer was checked for NULL after dereferencing it. The check is not needed here, except there's a bug which results in detaching the device twice.
Move the NULL pointer check to the beginning of the function and convert it into a KASSERT.
CID: 420 Found with: Coverity Prevent(tm) Discussed with: ariff MFC after: 5 days
|
155336 |
05-Feb-2006 |
netchild |
Fix memory leak in some failure cases.
CID: 420 Found with: Coverity Prevent(tm)
|
155008 |
29-Jan-2006 |
netchild |
Fix some potential NULL pointer dereferences.
This is supposed to fix some Coverity Prevent errors (Ariff didn't looked at the CID's (ENOTIME), I just told him that there are some problems in function dsp_ioctl()).
CID: 215-218 Found with: Coverity Prevent(tm) Submitted by: ariff MFC after: 5 days
|
154969 |
29-Jan-2006 |
ariff |
Tune format scoring so (non)stereo format will get better chance to be selected.
|
154881 |
27-Jan-2006 |
ariff |
Enable full duplex operation since it works and to solve panic issue.
PR: kern/91992 MFC after: 2 days
|
154826 |
25-Jan-2006 |
joel |
Fix typos and clean up some comments.
Approved by: ariff
|
154741 |
24-Jan-2006 |
ariff |
channel.c: (1) Fix DMA alignment, based on bytes per sample.
feeder_rate.c: Handle strayed bytes (mostly caused by #1) better.
This DMA alignment issues are extremely hard to reproduce unless the user happen to have a 32bit capable soundcards (ATI IXP) and knowledgeable enough to force it to operate under pure 32bit operations on both record and play directions.
|
154709 |
23-Jan-2006 |
joel |
Sort list of modules.
Approved by: ariff
|
154684 |
22-Jan-2006 |
ariff |
Various fixups:
feeder.h: feeder.c: - Implement scoring mechanisme to select best format for conversion. This is actually part of newer format chaining procedures which will be commited someday. Confusion during chaining process solved by this scoring since it will try to reduce list of from/to formats to a single, best format. Related PR: kern/91683 channel.c: - Simplify feeder building process since we have smarter format chaining.
feeder_fmt.c: - Add few more sign conversion feeders for 24 and 32 bit format.
feeder_rate.c: - Force buffer / bytes allignment. Unaligned buffer may cause panics during recording on pure 32bit sample format if it involves feeder_rate as part of feeders chain. Tested on: ATI IXP, force 32bit recording.
MFC after: 5 days
|
154641 |
21-Jan-2006 |
netchild |
Backput the "Dell ID" part of the last commit, it was already tried in the past but didn't worked.
Noticed by: Gavin Atkinson <gavin.atkinson@ury.york.ac.uk>
|
154640 |
21-Jan-2006 |
netchild |
Merge rev. 1.5 and 1.6 from DFly: - Add PCI identifier to match against a Dell OEM version of the SB Live! - Fix spurious warning about ANSI trigraphs
Obtained from: DragonFlyBSD
|
154627 |
21-Jan-2006 |
netchild |
Prevent dereferencing a NULL pointer if the malloc() fails.
CID: 219 Found with: Coverity Prevent(tm)
|
154607 |
21-Jan-2006 |
joel |
Remove unused pointer.
Approved by: ariff
|
154595 |
20-Jan-2006 |
ariff |
Turn on native 32bit recording (at 48000hz).
It works perfectly on my Compaq Presario M2000Z, but my last attempt on Acer Ferrari 4000 only produce garbled sound.
MFC after: 3 days
|
154564 |
20-Jan-2006 |
ariff |
Ruthless vchan speed workaround against the dreaded sb16 / sb16x. It appear that nothing else using this weird 45k / 49k speed upper limit.
|
154494 |
18-Jan-2006 |
ariff |
Remove Giant / busdma_lock_mutex from busdma_tag_create().
|
154438 |
16-Jan-2006 |
ariff |
Fix broken capabilites. There are possible calculation errors within ess_calcspeed8() and ess_calcspeed9() that need to be fixed as well (TODO).
Reported by: [1] Claude Buisson <cbuisson at nerim.net> MFC after: 3 days
[1] http://lists.freebsd.org/pipermail/freebsd-multimedia/2006-January/003566.html
|
154428 |
16-Jan-2006 |
ariff |
Restore old compatibility of feeding directly into /dev/dsp at 8000 hz while preserving the New World Order.
Discussed with: [1] Michael W. Oliver <michael at gargantuan.com> MFC after: 1 week
[1] http://lists.freebsd.org/pipermail/freebsd-multimedia/2006-January/003562.html
|
154378 |
14-Jan-2006 |
ariff |
Add another inverted EAPD quirk for Gateway 7326GZ.
Tested by: Jeff Cross <jeff.cross at averageadmins.com> MFC after: 3 days
|
154305 |
13-Jan-2006 |
ariff |
Workaround for sb16 behave poorly when running at 45000 hz while vchan is enabled.
Reported by: many sb16, AWE64 users. MFC after: 1 week
|
154285 |
13-Jan-2006 |
ariff |
Joyport blacklist. Either we're facing with broken hardware or because this hardware need special (unknown) initialization procedures.
Reported by: [1] Rob Clark <vx2 at tds.net> MFC after: 3 days
[1] http://lists.freebsd.org/pipermail/freebsd-multimedia/2006-January/003535.html
|
154241 |
11-Jan-2006 |
ariff |
Fix broken playback capabilities to prevent impending disaster. The minimum / maximum speed was way too low / high!
minspeed = 2000 - is this for real ? maxspeed = 767999 - is this for real ?????
Wrap everything into 8000 - 48000 boundary, just to be safe.
MFC after: 3 days
|
154215 |
11-Jan-2006 |
ariff |
- Locking fixes. Release lock while chn_intr(). - Mark MPSAFE since most of the locking procedures already implemented. - Turn on inverted external amplifier sense flag for selected boards.
Tested by: bland MFC after: 1 week
|
154168 |
10-Jan-2006 |
ariff |
More thorough fixes to enable inverted external amplifier sense flag. Instead of dragging the entire ICH4/82801DB into this mess, select only few boards based on pci subdevice / subvendor.
Tested by: Daisuke Orikasa <luxury-acura-3.5rl at nifty.com> MFC after: 3 days
|
154132 |
09-Jan-2006 |
ariff |
Turn on inverted external amplifier sense flags for ICH4/82801DB.
PR: kern/66422, kern/75687, kern/84471 MFC after: 2 days
|
154127 |
09-Jan-2006 |
ariff |
Fix obvious capabilities (rate) violation. Should be 5500, not 4000.
MFC after: 1 day
|
154094 |
07-Jan-2006 |
ariff |
Add codec id support for Analog Device AD1986 AC'97 codec.
Submitted by: UMENO Takashi <umeno at rr.iij4u.or.jp> PR: kern/80234 MFC after: 2 days
|
154067 |
06-Jan-2006 |
ariff |
Fix locking violation, causing frantic diagnostic messages during boot.
Reported by: [1] julian MFC after: 3 days
[1] http://lists.freebsd.org/pipermail/freebsd-multimedia/2006-January/003408.html
|
154066 |
06-Jan-2006 |
ariff |
Another major fixes and enhancements: - MPSAFE - Fix / reorganize attach routine. Device specific initialization must be done after generic bus / DMA setup. At last, Virtual Channels (vchan) works as expected.
Note: Recent commit / fix against this driver proves that major enhancements on the generic sound layer does indeed help to expose flaw within device specific code. There are probably other drivers that need to be addressed as well.
Tested by: barner MFC after: 1 week
|
154024 |
04-Jan-2006 |
ariff |
Fix broken capabilities, causing failure during channel reset. Its min/max speed were off by -/+ 1000.
Reported by: [1] Ion-Mihai Tetcu <itetcu@people.tecnik93.com> [2] barner MFC after: 1 day
[1] http://lists.freebsd.org/mailman/htdig/freebsd-multimedia/2005-December/003189.html [2] http://lists.freebsd.org/mailman/htdig/freebsd-multimedia/2006-January/003422.html
|
153952 |
01-Jan-2006 |
ariff |
Fix another xruns counting logic, this time, for recording.
|
153921 |
31-Dec-2005 |
ariff |
Fix LOR #174.
Tested with: WITNESS, INVARIANTS and DIAGNOSTICS
|
153869 |
30-Dec-2005 |
ariff |
Disable frantic DMA update within few SNDCTL_DSP_* ioctl. This should reduce huge playback / recording latency for applications that try to act smarter and manage their own buffering (XMMS, Skype, etc.).
Note to Skype + via8xxx users: Remove previous hackish "hint.pcm.<unit>.via_dxs_disabled" from kernel hint and see whether this changes cure all those annoying sound issues.
|
153868 |
30-Dec-2005 |
ariff |
Underruns counting logic should be based on bufhard free space and must be done after sndbuf_feed(), or any attempt to fill up bufhard. This should fix false underruns counter.
|
153865 |
30-Dec-2005 |
ariff |
Few codec such as Conexant CX20468-21 does have this control register, although the only usable part is the mute bit.
Noticed by: Hans Petter Selasky <hselasky@c2i.net>
|
153845 |
29-Dec-2005 |
netchild |
Fix some kind of "off by one"-error: the min or max sample rate the device is able to reproduce should be usable too instead of failing in such a case.
PR: 89269 Submitted by: Don L. Belcher <don@siad.net>
|
153799 |
28-Dec-2005 |
netchild |
Fix the order of the stereo channels (left <-> right).
From the PR: ---snip--- I think I have found the change which reversed the channels. Revision 1.44 of emu10k1.c, which added Audigy support, has the line
emu_wrptr(sc, v->vnum, FXRT, 0xd01c0000);
replaced with the following lines:
if (sc->audigy) { emu_wrptr(sc, v->vnum, A_FXRT1, v->fxrt1); emu_wrptr(sc, v->vnum, A_FXRT2, v->fxrt2); emu_wrptr(sc, v->vnum, A_SENDAMOUNTS, 0); } else emu_wrptr(sc, v->vnum, FXRT, v->fxrt1 << 16);
where v->fxrt1 << 16 == 0xd10c0000
I don't have Audigy, so I'm not sure if the problem affects Audigy cards too. The order of the channels can't be tested by just altering mixer settings. Here's a small program to test if the channels are reversed on your sound card:
#include <sys/soundcard.h> #include <fcntl.h> #include <unistd.h>
int main(int argc, char **argv) { int fd = open("/dev/dsp", O_WRONLY), format = AFMT_S16_LE; int channels = 2, rate = 22050, i;
/* 450 Hz sine wave on left channel, right channel silent */ unsigned char samples[] = {0, 0, 0, 0, 94, 16, 0, 0, 120, 32, 0, 0, 9, 48, 0, 0, 208, 62, 0, 0, 143, 76, 0, 0, 12, 89, 0, 0, 19, 100, 0, 0, 117, 109, 0, 0, 11, 117, 0, 0, 182, 122, 0, 0, 92, 126, 0, 0, 239, 127, 0, 0, 105, 127, 0, 0, 202, 124, 0, 0, 32, 120, 0, 0, 124, 113, 0, 0, 251, 104, 0, 0, 193, 94, 0, 0, 249, 82, 0, 0, 212, 69, 0, 0, 138, 55, 0, 0, 85, 40, 0, 0, 120, 24, 0, 0, 51, 8, 0, 0, 205, 247, 0, 0, 136, 231, 0, 0, 171, 215, 0, 0, 118, 200, 0, 0, 44, 186, 0, 0, 7, 173, 0, 0, 63, 161, 0, 0, 5, 151, 0, 0, 132, 142, 0, 0, 224, 135, 0, 0, 54, 131, 0, 0, 151, 128, 0, 0, 17, 128, 0, 0, 164, 129, 0, 0, 74, 133, 0, 0, 245, 138, 0, 0, 139, 146, 0, 0, 237, 155, 0, 0, 244, 166, 0, 0, 113, 179, 0, 0, 48, 193, 0, 0, 247, 207, 0, 0, 136, 223, 0, 0, 162, 239, 0, 0};
ioctl(fd, SNDCTL_DSP_SETFMT,&format); ioctl(fd, SNDCTL_DSP_CHANNELS,&channels); ioctl(fd, SNDCTL_DSP_SPEED,&rate);
for(i=0;i<500;i++) write(fd, &samples, sizeof(samples)); write(fd, &samples, 2); /* swap channels */ for(i=0;i<500;i++) write(fd, &samples, sizeof(samples));
return 0; }
You should hear a sound on the left channel followed by a sound on the right channel. If you hear a sound on the right channel first, the channels are reversed. ---snip---
Owners of an audigy card should verify if it DTRT and report back.
Noticed by: Matthias Buelow <mkb@mukappabeta.de> Submitted by: Juha-Matti Tilli <juhis@nallukka.net> PR: 72221
|
153708 |
25-Dec-2005 |
ariff |
Add suspend and resume support.
|
153509 |
18-Dec-2005 |
ariff |
Precision for AFMT_x24_yE and AFMT_x32_yE should be 24 and 32, respectively.
Submitted by: Kazuhito HONDA <kazuhito@ph.noda.tus.ac.jp>
|
153084 |
04-Dec-2005 |
ru |
Fix -Wundef from compiling the amd64 LINT.
|
152939 |
30-Nov-2005 |
yongari |
Add codec ID for Avance Logic ALC203
|
152851 |
27-Nov-2005 |
ariff |
Support for ATI IXP 200 / 300 / 400 series audio controllers.
|
152816 |
26-Nov-2005 |
ariff |
Added mono to stereo and stereo to mono feeder functions for both 24 and 32 bit format.
|
152815 |
26-Nov-2005 |
ariff |
Added codec id for Avance Logic (ALC250)
|
152644 |
21-Nov-2005 |
yongari |
Add a hack to ignore PCR bit for 6300ESB, 82801[D-G]B chips. It seems that enabling busmastering would result in PCR bit ON after codec reset. While I'm here add DELAY(1) to codec access routine to give reasonable time to codec operation. Without the delay, it would cause problems on super-fast machines(> 2GHz). Also enable legacy audio for all 6300ESB, 82801[D-G]B chips. Previously, it enabled legacy audio for 82801DB(ICH4) chip only.
Reported by: Maxim Maximov mcsi AT mcsi DOT pp DOT ru Andrew Bliznak andriko.b AT gmail DOT com Tested by: brueffer, Maxim Maximov, Andrew Bliznak
|
152446 |
15-Nov-2005 |
kan |
Unbreak kernel builds.
Submitted by: arr
|
152427 |
14-Nov-2005 |
ariff |
Update my email address, so people know where the exact / proper / correct place to bug me.
Approved by: netchild (mentor)
|
152425 |
14-Nov-2005 |
ariff |
From luigi: This one simply tries to simplify the logic to select the buffer sizes. I am not sure it is necessary but the code seems a bit more readable to me. And at least i have tried to document how the buffer sizes are computed.
Thanks to luigi for deciphering one of the most cryptic part of sound driver.
Submitted by: luigi Approved by: netchild (mentor)
|
152424 |
14-Nov-2005 |
ariff |
From luigi: In SNDCTL_DSP_SETFRAGMENT, if you specify both read and write channels, the existing code first acts on the read channel, but as a side effect it updates the arguments (maxfrags, fragsz) passed by the caller according to acceptable values for the read channel, and then uses the modified values to act on the write channel. The problem with this approach is that, given a (maxfrags, fragsz) user-specified value, the actual values computed by the read and write channels may differ: e.g. the read channel might want to allocate more fragments than what the user specified because it has no side-effects on the delay and it helps in case of slow readers, whereas the write channel needs to use as few fragments as possible to keep the audio latency low (very important with telephony apps).
This patch stores the values computed by the read channel into temproary variables so the write channel will use the actual arguments of the ioctl.
This patch is very helpful with telephony apps such as asterisk.
Submitted by: luigi Approved by: netchild (mentor)
|
152422 |
14-Nov-2005 |
ariff |
ac97.c: - Added new codec id for CX20468-21 and VIA1617A. Submitted by: Chen Lihong <lihong.chen@gmail.com> - Re-enable SOUND_MIXER_IGAIN, but set the default level as 0 (mute) Suggested by: luigi
mixer.c: - Set default value for SOUND_MIXER_IGAIN as 0 (mute) to avoid feedback problems on some laptops (was disabled by jhb during ac97.c revision 1.42).
Approved by: netchild (mentor)
|
152421 |
14-Nov-2005 |
ariff |
Fix a long standing unhandled interrupt bug which can cause erratic system slowdown (beaten to a pulp) and possible panic. This issue has bugged me for as long as I could remember, until I realized that it is possible for register base offset to hold zero value which is definitely a "FALSE".
Approved by: netchild (mentor)
|
152420 |
14-Nov-2005 |
ariff |
- Added few more Intel HDA ids (ICH 6/7) which does have backward compatible AC97 codec. - As the driver supports so many variants, create a table ids for ease of probing and maintenance. Submitted by: yongari Reviewed/Tested by: multimedia@ - From luigi: The code to compute fragment sizes in the ich driver almost invariably ends up using the full buffer available, no matter how the user specifies fragment size and number. With audio telephony (8khz, 16bit-stereo) and the 16k buffer size this results in an unbearable 500ms delay. This patch makes sure that we never use more than 4 fragments, (i don't think we need more unless there are huge interrupt servicing latencies), and obey to the requested fragment size, so that latency is acceptable. Based on this (and after much regression tests), I can conclude that this driver works best with 2 fragments, thus solving various long standing issues of ICH driver not capable to flush or play short files perfectly. Suggested by: luigi (the idea of smaller fragments) - MPSAFE conversion.
Approved by: netchild (mentor)
|
152419 |
14-Nov-2005 |
ariff |
Use both (enabled by default) DAC1 and DAC2 to provide 2 distinct hardware playback channels. DAC configuration can be accessed through kernel hint - hint.pcm.<unit>.dac="val" with following possible values:
0 = Enable both DACs (default) 1 = Enable single DAC (DAC1) 2 = Enable single DAC (DAC2) 3 = Enable both DACs, swap position (DAC2 comes first instead of DAC1)
Special case for ES1370: Unlike ES1371,2,3/CT5880, volume for each DAC 1 and 2 can be controlled indepedently (synth for DAC1, pcm for DAC2). It is possible that user will confuse by this behaviour, since both DACs are enabled by default. Thus, provide a knob through sysctl hw.snd.pcm<unit>.single_pcm_mixer: 0 = each DACs will be controlled separately (synth/pcm). 1 = combine both DACs volume mixer controller into a single "pcm" (default) As a side note, fixed rate operation (provided by previous commit) is not a mandatory if the configuration space does not involve DAC2 (perhaps disabled by user through the above kernel hint). Unlike DAC2, DAC1 has its own register / control space, not affected by the speed settings of ADC.
Tested by: multimedia@ Approved by: netchild (mentor)
|
152418 |
14-Nov-2005 |
ariff |
Fix left/right channel mixed-up during recording by splitting recdev mask to recdev_l and recdev_r, since each have its own unique mask.
Submitted by: Watanabe Kazuhiro <CQG00620@nifty.ne.jp> Approved by: netchild (mentor)
|
152379 |
13-Nov-2005 |
netchild |
Add support for 24/32 bit audio formats/conversion.
It may be the case that you may hear some unwanted noise while playing back with 24/32 bit. This is a problem in the USB system. Explanation from Hans Petter Selasky: ---snip--- The current USB sound driver only uses one isochronous buffer, that is restarted when it is completed. This will lead to a short period of time, +1ms, where no sound data is sent to the external USB device. Depending on the load of your computer, this can be as much as 50ms. So the USB sound driver must use 2 isochronous transfers. At the beginning one will queue both. Then these are restarted on completion. This will result in a constant-rate data stream to the external sound device, a minimum sound buffer equal to the size of the isochronous buffer, and possibly the sound will reach your ears with less delay. Little delay is a result of constant data rate. Currently only my USB driver will support that. If one tries that with the USB driver in *BSD, then it will crash at the first moment one gets a buffer underrun. ---snip---
Submitted by: Kazuhito HONDA <kazuhito@ph.noda.tus.ac.jp> Mono-recording still not tested by: julian
|
152151 |
07-Nov-2005 |
ariff |
Fix recording device selection based on ALS4000 datasheet. - http://www.alsa-project.org/alsa/ftp/manuals/avance_logic/ALS4000a.PDF
Submitted by: Watanabe Kazuhiro <CQG00620@nifty.ne.jp>
|
152150 |
07-Nov-2005 |
ariff |
Fix kernel panic caused by double mss_unlock().
Noticed by: Watanabe Kazuhiro <CQG00620@nifty.ne.jp>
|
152005 |
03-Nov-2005 |
ariff |
Appropriate NULL pointer checking to avoid mysterious panic during device cloning.
Approved by: netchild (mentor)
|
151878 |
30-Oct-2005 |
des |
Add some safeguards to AIOSFMT:
- Return EINVAL if play_format or rec_format is set but the corresponding sample rate is 0.
- Don't try to set the playback or recording format to 0. Previously, issuing an AIOSFMT ioctl with an all-zeroes snd_chan_param would trigger a KASSERT in chn_fmtchain(); I'm unsure about the effects on a kernel without INVARIANTS. After this commit, issuing AIOSFMT with an all-zeroes snd_chan_param is equivalent to issuing AIOGFMT.
MFC after: 2 weeks
|
151456 |
18-Oct-2005 |
ariff |
Fix vchan speed for hardware with discrete (non-continuous) sampling rate: - Improve vchan chn_setspeed() strategy. Try to avoid FEEDER_RATE on parent channel if the requested value is not supported by the hardware. - Fix vchan default speed calculation. In any case, vchan should rely on parent bufsoft speed instead of bufhard since it is possible that the entire feeder chain might involve FEEDER_RATE. This is possible under extreme, rare condition if the above chn_setspeed() strategy failed.
Approved by: netchild (mentor)
|
151455 |
18-Oct-2005 |
ariff |
Added missing comma. This fixes compilation if we need to enable RATE_ASSERT debug macro.
Approved by: netchild (mentor)
|
150980 |
05-Oct-2005 |
netchild |
- Locking improvements. - Don't keep the SPDIF state in the driver private struct since it can be overriden by hand with pciconf(8), query it when needed instead.
Regarding the locking I let Ariff explain it himself: ---snip--- About the locking, that is what I'm intended to do since the beginning. The reason I'm not putting that along since my first patchset was because several people especially from amd46 camp reported that it cause lots of LORs, which is weird considering that I've never encounter such in a pretty much strict locking environment (i386). However, since our previous discussion with Pyun YongHyeon about strict locking, I've decided to bring it back for all the affected drivers, not just for es137x. It turns out that the root of the problem was within dsp.c during device open, which has been fixed since dsp.c revision 1.84. ---snip---
Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my>
|
150979 |
05-Oct-2005 |
netchild |
Add a comment regarding problems with NForce 2 mainboards and add disabled code which may help.
People with a ich compatible soundcard which want to help out should change the "#if 1" to a "#if 0" and try if the soundcard still works. Reports about working or not-working soundcards with this change to multimedia@ please.
PR: 73987
|
150832 |
02-Oct-2005 |
netchild |
* Fixed rate operation for es1370 chip to solve conflicting sampling rate between playback and recording. This can be disabled / enabled via kernel hints (hint.pcm.<unit>.fixed_rate=0/4000-48000) or sysctl hw.snd.pcm<unit>.fixed_rate=0/4000-48000). Default to 48khz fixed rate. [1] * Basic cleanup. *_es1371x_* -> *_es137x_*. * Some locking fixes. [2]
Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my> Discussed with: yongari [2] See also: http://lists.freebsd.org/pipermail/freebsd-multimedia/2005-September/002758.html [1] Reported by: Jos Backus <jos at catnook.com> [1]
|
150830 |
02-Oct-2005 |
netchild |
Emulate pcm mixer controller for any uaudio device without it.
Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my>
|
150829 |
02-Oct-2005 |
netchild |
The cmi9739_patch function which is referenced by ac97.c (rev. 1.56) now...
Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my> Pointy hat to: netchild (for not committing it with rev. 1.56 of ac97.c)
|
150827 |
02-Oct-2005 |
netchild |
sys/dev/sound/pcm/sndstat.c: * General spl* cleanup. It doesn't serve any purpose anymore. * Nuke sndstat_busy(). Addition of sndstat_acquire() / sndstat_release() for sndstat exclusive access. [1]
sys/dev/sound/pcm/sound.c: * Remove duplicate SLIST_INIT() * Use sndstat_acquire() / release() to lock / release the entire sndstat during pcm_unregister(). This should fix LOR #159 [1]
sys/dev/sound/pcm/sound.h: * Definition of SD_F_SOFTVOL (part of feeder volume) * Nuke sndstat_busy(). Addition of sndstat_acquire() / sndstat_release() for exclusive sndstat access. [1]
Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my> LOR: 159 [1] Discussed with: yongari [1]
|
150826 |
02-Oct-2005 |
netchild |
General spl* cleanup. It doesn't serve any purpose anymore.
Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my>
|
150825 |
02-Oct-2005 |
netchild |
sys/dev/sound/pcm/ac97.c: * Added codec id for CMI9761. * feeder_volume *whitelist* through ac97_fix_volume()
sys/dev/sound/pcm/ac97.h: * Added AC97_F_SOFTVOL definition.
sys/dev/sound/pcm/channel.c: * Slight changes for chn_setvolume() to conform with OSS. * FEEDER_VOLUME is now part of feeder building process.
sys/dev/sound/pcm/mixer.c: * General spl* cleanup. It doesn't serve any purpose anymore. * Main hook for feeder_volume.
Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my> Tested by: multimedia@
|
150824 |
02-Oct-2005 |
netchild |
Soft volume implementation for audio devices without pcm mixer controller.
Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my> Tested by: multimedia@
|
150289 |
18-Sep-2005 |
netchild |
Add the KLD to the sndstat info.
|
150288 |
18-Sep-2005 |
netchild |
Merge NetBSD fixes (except for 1.97 there should be no functional change): 1.94: ansify and KNF (NetBSD KNF). 1.95: Fix DPRINTF (bug from change in 1.94). 1.96: NetBSD specific. 1.97: Fix memory leak reported by Ted Unangst as bug #3 on tech-kern.
Obtained from: NetBSD
|
150115 |
14-Sep-2005 |
yongari |
Fix module unload panic which was caused by missing sx lock release. While I'm here add KASSERT(9) to notify failure of SYSUNINIT handler.
Reported by: Ben Kaduk < minimarmot AT gmail DOT com > Tested by: Ben Kaduk < minimarmot AT gmail DOT com >
|
150075 |
13-Sep-2005 |
yongari |
Unlock driver lock before calling resource_int_value(9). This should fix LOR(in fact it's not LOR) in device attach.
|
150061 |
12-Sep-2005 |
netchild |
- Fix the locking in dsp.c to prevent a LOR (AFAIK not on the LOR page).
- Remove an assertion in sound.c, it's not needed (and causes a panic now). From the conversation via mail between glebius and Ariff: ---snip--- > Well, but which mutex protects now? Do we own anything else > in pcm_chnalloc()? I see some queue(4) macros in pcm_chnalloc(), > they should be protected, shouldn't they? Queue insertion/removal occur during 1) driver loading (which is pretty much single thread / sequential) or unloading (mutex protected, bail out if there is any channel with refcount > 0 or busy). 2) vchan_create()/destroy(), (which is *sigh* quite complicated), but somehow protected by 'master'/parent channel mutex. Other thread cannot add/remove vchan (or even continue traversing that queue) unless it can acquire parent channel mutex. ---snip---
Fix the locking in dsp.c to prevent a LOR (AFAIK not on the LOR page).
Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my> Tested with: INVARIANTS[1] and DIAGNOSTICS[2] Tested by: netchild [1,2], David Reid <david@jetnet.co.uk> [1]
|
150038 |
12-Sep-2005 |
nyan |
more #ifndef PC98. This really fix the pc98 tinderbox.
|
150014 |
12-Sep-2005 |
imp |
Since opti_detect is now only called on !PC98 machines, only declare and define there as well. This should fix the pc98 tinderbox.
|
149997 |
11-Sep-2005 |
netchild |
Fix hang at init for MagicMedia 256A[VX] chips. [1]
In case this causes trouble for some other chipsets add a comment how to proceed. If we don't get bugreports, this should be removed after a while (some releases?).
PR: 56617 [1], 29465, 39260, 40574, 68225 Submitted by: Matthew E. Gove <mgove@comcast.net> [1]
|
149988 |
11-Sep-2005 |
netchild |
Power up the external amplifiers additionally to powering up the DAC and ADC.
PR: 47029 Submitted by: Anish Mistry <mistry.7@osu.edu> Tested by: David Murphy <dm@dmz.ie>
|
149987 |
11-Sep-2005 |
netchild |
Add some ad_wait_init() calls to fix some problems in some configs (e.g. PC98, CS4231A, "pcm0: play interrupt timeout").
PR: 45682 Submitted by: Watanabe Kazuhiro <CQG00620@nifty.ne.jp>
|
149986 |
11-Sep-2005 |
netchild |
Allow to record non 8bit-mono formats even in half-duplex configurations.
PR: 45679 Submitted by: Watanabe Kazuhiro <CQG00620@nifty.ne.jp>
|
149981 |
11-Sep-2005 |
netchild |
Fix misdetection of the sound chip on PC98 systems. The submitter doesn't believe that there are PC98 systems with an OPTi chip.
I don't know enough about this special PC architecture to be sure about this, so let's find out by letting people with such a system complain in case this commit breaks the sound system for them. It's easy to revert then.
PR: 45673 Submitted by: Watanabe Kazuhiro <CQG00620@nifty.ne.jp>
|
149980 |
11-Sep-2005 |
netchild |
Fix a bug in volume calculation, this sometimes gives a USB audio device an unexpected value (when the volume is high).
Submitted by: Kazuhito HONDA <kazuhito@ph.noda.tus.ac.jp>
|
149953 |
10-Sep-2005 |
netchild |
- channel.h * New definition CHN_F_HAS_VCHAN. - channel.c * Use CHN_F_HAS_VCHAN to mark channel with vchan capability instead of relying on SLIST_EMPTY(&channel->children) == true for better clarification and future possible usages of children (like 'slave' channel). * Various fixes, including blocksize / format bps allignment, better 24bit seeking (mplayer, others). * Improve format chain building, it's now possible to record something to a format non-native to the soundcard through various feeder format converters or to higher sampling rate. This also gains another feature, like doing vchan mixing on non s16le soundcard such as sb8. - sound.c * Increase robustness within various function that handle vchan creation / termination (these function need a total rewrite, but that would cause other major rewrite within various places too!). As far as its robustness can be guaranteed, leave it as is. * Optimize channel ordering, prefer *real* hardware playback channels over virtual channels. cat /dev/sndstat should look better. * Increase sndstat verbosity to include bufsoft/bufhard allocation. - vchan.c * Fix LOR 119. - http://sources.zabbadoz.net/freebsd/lor.html#119 * Reorder / increase robustness of vchan_create() / destroy(). Enforce destroy_dev() during destroy operation, fix possible panic / dangling character device. - http://lists.freebsd.org/pipermail/freebsd-current/2005-May/050308.html * Tolerate a little bit more during mixing process, this should help non s16le soundcards.
Note: Recoring in a non-native rate/format may result in overruns. A friendly application is wavrec from audio/wavplay. The problem is under investigation.
Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my>
|
149951 |
10-Sep-2005 |
netchild |
Release lock for a while during chn_reset() / pcm_chnalloc() operation while malloc()ing, this fixes LOR 129.
See - http://lists.freebsd.org/pipermail/freebsd-current/2005-June/051157.html - http://lists.freebsd.org/pipermail/freebsd-current/2005-August/054620.html - http://sources.zabbadoz.net/freebsd/lor.html#129
Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my>
|
149950 |
10-Sep-2005 |
netchild |
- fake.c * Add missing A_LAW / MU_LAW format. - feeder.c * Fix format chain building. Traverse backward instead of forward during format chainning. - feeder_fmt.c * Add missing alaw/mulaw converter. * Add 16 -> 24/32bit converter. * whitespace cleanup. - sound.h * alaw / mulaw are member of AFMT_8BIT.
Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my>
|
149949 |
10-Sep-2005 |
netchild |
- Few buggy codecs (STAC9704, probably others) return inconsistent ac97_rdcd() value. Enable aggresive workaround. - Fix mixer resolution detection for 5/6 bit register, carefully not to overflow others.
PR: 84728 Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my>
|
149948 |
10-Sep-2005 |
netchild |
Fix panic caused by full duplex operation.
From the PR: ---snip--- The vibra16X supports full duplex. I traced the Windows driver, and what is does is that it programs one DMA channel 8-bit, and the other 16-bit. There might be some kind of auto detection logic here, because it always uses 8-bit for playback, even if I play 16-bit sound ... ---snip---
PR: 80977 Submitted by: Hans Petter Selasky <hselasky@c2i.net>
|
148868 |
08-Aug-2005 |
rwatson |
Merge the dev_clone and dev_clone_cred event handlers into a single event handler, dev_clone, which accepts a credential argument. Implementors of the event can ignore it if they're not interested, and most do. This avoids having multiple event handler types and fall-back/precedence logic in devfs.
This changes the kernel API for /dev cloning, and may affect third party packages containg cloning kernel modules.
Requested by: phk MFC after: 3 days
|
148607 |
31-Jul-2005 |
netchild |
Style fix.
Noticed by: njl
|
148606 |
31-Jul-2005 |
netchild |
Whats New: 1. Support wide range sampling rate, as low as 1hz up to int32 max (which is, insane) through new feeder_rate, multiple precisions choice (32/64 bit converter). This is indeed, quite insane, but it does give us more room and flexibility. Plenty sysctl options to adjust resampling characteristics. 2. Support 24/32 bit pcm format conversion through new, much improved, simplified and optimized feeder_fmt.
Changes: 1. buffer.c / dsp.c / sound.h * Support for 24/32 AFMT. 2. feeder_rate.c * New implementation of sampling rate conversion with 32/64 bit precision, 1 - int32max hz (which is, ridiculous, yet very addictive). Much improved / smarter buffer management to not cause any missing samples at the end of conversion process * Tunable sysctls for various aspect: hw.snd.feeder_rate_ratemin - minimum allowable sampling rate (default to 4000) hw.snd.feeder_rate_ratemax - maximum allowable sampling rate (default to 1102500) hw.snd.feeder_rate_buffersize - conversion buffer size (default to 8192) hw.snd.feeder_rate_scaling - scaling / conversion method (please refer to the source for explaination). Default to previous implementation type. 3. feeder_fmt.c / sound.h * New implementation, support for 24/32bit conversion, optimized, and simplified. Few routines has been removed (8 to xlaw, 16 to 8). It just doesn't make sense. 4. channel.c * Support for 24/32 AFMT * Fix wrong xruns increment, causing incorrect underruns statistic while using vchans. 5. vchan.c * Support for 24/32 AFMT * Proper speed / rate detection especially for fixed rate ac97. User can override it using kernel hint: hint.pcm.<unit>.vchanrate="xxxx".
Notes / Issues: * Virtual Channels (vchans) Enabling vchans can really, really help to solve overrun issues. This is quite understandable, because it operates entirely within its own buffering system without relying on hardware interrupt / state. Even if you don't need vchan, just enable single channel can help much. Few soundcards (notably via8233x, sblive, possibly others) have their own hardware multi channel, and this is unfortunately beyond vchan reachability. * The arrival of 24/32 also come with a price. Applications that can do 24/32bit playback need to be recompiled (notably mplayer). Use (recompiled) mplayer to experiment / test / debug this various format using -af format=fmt. Note that 24bit seeking in mplayer is a little bit broken, sometimes can cause silence or loud static noise. Pausing / seeking few times can solve this problem. You don't have to rebuild world entirely for this. Simply copy /usr/src/sys/sys/soundcard.h to /usr/include/sys/soundcard.h would suffice. Few drivers also need recompilation, and this can be done via /usr/src/sys/modules/sound/. Support for 24bit hardware playback is beyond the scope of this changes. That would require spessific hardware driver changes. * Don't expect playing 9999999999hz is a wise decision. Be reasonable. The new feeder_rate implemention provide flexibility, not insanity. You can easily chew up your CPU with this kind of mind instability. Please use proper mosquito repellent device for this obvious cracked brain attempt. As for testing purposes, you can use (again) mplayer to generate / play with different sampling rate. Use something like "mplayer -af resample=192000:0:0 <files>".
Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my> Tested by: multimedia@
|
148602 |
31-Jul-2005 |
netchild |
* Slightly new method to detect mixer capabilities and resolution. This mostly to help CT4730, but apparently it does help other cards too (especially via8233x). This probably need further test and confirmation from other people with ac97 cards other than via / es137x. * Aggresive dac power wake up call, again, to help CT4730 (and probably others).
Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my> Tested by: multimedia@
|
148599 |
31-Jul-2005 |
netchild |
- Fixup the locking. - Don't mark MPSAFE (yet). - DSP_CMD_DMAEXIT_8 doesn't work on old cards, use sb_reset_dsp() instead.
Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my>
|
148598 |
31-Jul-2005 |
netchild |
- Fixup the locking. - Don't mark MPSAFE (yet).
Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my>
|
148597 |
31-Jul-2005 |
netchild |
Add another ID.
Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my>
|
148596 |
31-Jul-2005 |
netchild |
* Add locking / MPSAFE * Add kernel hint option to disable DXS channels entirely. Report from several skype users / Pav Lucistnik indicate that disabling DXS may fix lots of pop / crackling noise. To disable DXS add hint.pcm.<unit>.via_dxs_disabled="1" to /boot/device.hints. Further investigation of the issues regarding DXS showed, that the problem is in another (more generic) place, but until the right fix is tested/reviewed this may help a little bit.
Added sysctl's to aid testing/debugging: hint.pcm.<unit>.via_dxs_disabled=X - Disable / Enable DXS channels entirely hint.pcm.<unit>.via_dxs_channels=X - Limit DXS channels up to X hint.pcm.<unit>.via_sgd_channels=X - Limit SGD channels up to X hint.pcm.<unit>.via_dxs_src=X - Enable / Disable DXS sample rate converter.
Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my> Tested by: multimedia@
|
148593 |
31-Jul-2005 |
netchild |
Fix a LOR introduced with the last commit (some hours ago), I had the wrong version of the patch.
Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my> Pointy hat to: netchild
|
148592 |
31-Jul-2005 |
netchild |
Fix a LOR introduced in the last commit (some hours ago), I had the wrong version of the patch...
Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my> Pointy hat to: netchild
|
148591 |
31-Jul-2005 |
netchild |
* Register programming error during device initialization especially for CT4730 / EV1938 chip, causing misconfigured mixer (David Xu), crippled after power cycle (Kevin Oberman). Fixed. * Incorporate locking/spdif patches from Jon Noack / matk. Not all es137x can really do spdif, clean it up a bit to only let few capable chip. This adds a "hw.snd.pcm<unit>.spdif_enabled" sysctl until a more generic way of handling this from userland (by an ordinary user) is designed/implemented. * Convert all bus_space_(read|write) to use es_rd/es_wr, simmilar with other drivers. * Add tunable hw.snd.pcm<unit>.latency_timer sysctl to toggle pci latency timer value on the fly. Much noise / pop / crackling issues can be solved by increasing its value. Other people have pointed out to use pciconf instead, but this is just an added value specific for CT4730/EV1938. * Remove es137x specific debug sysctl/code.
Several PRs can now be closed.
Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my> Submitted by: Jon Noack <noackjr@alumni.rice.edu> (implicit) Submitted by: matk (implicit) PR: 59349, 68594, 73498 Tested by: multimedia@
|
148590 |
31-Jul-2005 |
netchild |
This driver is already MPSAFE, remove busdma_lock_mutex and Giant from bus_dma_tag_create.
Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my>
|
148589 |
31-Jul-2005 |
netchild |
* Add locking / MPSAFE.
Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my> Tested by: netchild
|
148588 |
31-Jul-2005 |
netchild |
* als4000 can't do 48k properly (perhaps it really can't at all!). Set maxspeed to 44.1k instead. * Add locking / MPSAFE * Fix recording
Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my>
|
148587 |
31-Jul-2005 |
netchild |
* Fix panic during driver unload on second attempt after failure on first (device busy). * Fix module unloading for sound.ko itself.
Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my> Tested by: multimedia@
|
147967 |
13-Jul-2005 |
jhb |
Don't attach the non-PnP mss pcm(4) driver to acpi busses as ACPI only enumerates PnP ISA-like devices.
Reported by: Harry Coin harrycoin at qconline dot com MFC after: 3 days
|
147626 |
27-Jun-2005 |
glebius |
Implement suspend/resume operation for snd_csa(4)
PR: kern/82243 Submitted by: Serge Semenenko Approved by: re (scottl) MFC after: 1 month
|
147274 |
10-Jun-2005 |
marius |
Wrap the calls to the ISA DMA specific sndbuf_dma*() functions of sys/dev/sound/isa/sndbuf_dma.c (compilation depending on device isa) in #ifdef DEV_ISA so sound(4) can be compiled without isa(4).
MFC after: 1 month
|
146793 |
29-May-2005 |
tanimura |
s/-1000/BUS_PROBE_LOW_PRIORITY/
Pointed out by: nyan
|
146705 |
28-May-2005 |
tanimura |
Add 6300ESB, which should be treated as ICH4.
PR: kern/81573 Submitted by: OOTOMO Hiroyuki <ootomo@za.wakwak.com> MFC after: 1 week
|
146514 |
23-May-2005 |
yongari |
Make snd_maestro3(4) mpsafe - Let m3_pchan_trigger()/m3_rchan_trigger() acquire lock and call m3_pchan_trigger_locked()/m3_rchan_trigger_locked() respectivly. - Mark interrupt handler INTR_MPSAFE. - Add locks in sound/channel interface.
Tested by: nork
|
146410 |
19-May-2005 |
marius |
Take advantage of ebus(4) having switched to SYS_RES_MEMORY for the memory resources in ebus.c rev. 1.22 and treat both the EBus and SBus variants alike in this regard.
Ok'ed by: yongari
|
145599 |
27-Apr-2005 |
julian |
Add code from Kazuhito HONDA that allows the user to see the available modes in /dev/sndstat. e.g. pcm1: <USB Audio> at addr ? (0p/1r/0v channels duplex) mode 1:(input) 1ch, 16/16bit, pcm, 44100Hz mode 2:(input) 1ch, 16/16bit, pcm, 22050Hz mode 3:(input) 1ch, 16/16bit, pcm, 11025Hz mode 4:(input) 1ch, 16/16bit, pcm, 8000Hz
|
145198 |
17-Apr-2005 |
matk |
Fix a bug where we call pcm_getbuffersize twice.
Pointed out by: Kazuhito HONDA <kazuhito at ph dot noda dot tus dot ac dot jp>
|
145195 |
17-Apr-2005 |
matk |
De-dma the uaudio <-> pcm bridge. We were not capable of doing DMA from this buffer anyway so the constraint that it had to be DMA capable only caused pain when devices failed to aquire the memory. Use a regular malloc instead with sndbuf_setup.
Approved by: tanimura (mentor)
|
145180 |
17-Apr-2005 |
julian |
On record only devices, don't fail if we don't have a play channel.
MFC after: 3 days
|
145021 |
13-Apr-2005 |
julian |
The maximum allowable alloc is 16K not (16K-1). This whole section is actually overly restrictive and another patch is in the works.
|
144996 |
13-Apr-2005 |
mdodd |
Make it clear that the statement following the conditional is a NOP.
|
144865 |
10-Apr-2005 |
scottl |
Fix the output ports on the AD1988 codec. From the submitter:
Affects to people WITH an AD1888 codec, the system will output to the port labeled "speaker" instead of microphone. System will work the same in multiple operating systems.
If people are currently using their systems with this codec they will need to swap their output ports.
I have _not_ checked audio input or line input (basically, I have checked nothing other than line-out).
I believe this is an appropriate change, it makes us consistent with documentation, and other operating systems. Furthermore, this feature (playing) is the vast majority of sound activities, so if this makes is right for playback and wrong for recording... playback is more important, and we can fix recoding in the future without worries of screwing people again in the future (since we'll be "right" on the playback).
Submitted by: David Cross
|
144389 |
31-Mar-2005 |
phk |
Explicitly hold a reference to the cdev we have just cloned. This closes the race where the cdev was reclaimed before it ever made it back to devfs lookup.
|
143888 |
20-Mar-2005 |
murray |
Return BUS_PROBE_DEFAULT in preference to 0.
Pointed out by: Nate Lawson <nate@root.org>
|
143829 |
19-Mar-2005 |
murray |
Add device id for nForce 4 audio controller.
PR: kern/78482 Submitted by: Markus Niemistö <markus.niemisto@iki.fi> MFC after: 1 week
|
142890 |
01-Mar-2005 |
imp |
Use BUS_PROBE_DEFAULT in preference to 0 and BUS_PROBE_LOW_PRIORITY in preference to some random negative number to allow other drivers a bite at the apple.
|
142730 |
27-Feb-2005 |
mdodd |
Use mss_{format,speed}() rather than chn_set{format,speed}() and hold mss lock across call.
This allows my Thinkpad 600E to resume with the sound driver loaded and vchans enabled.
|
142716 |
27-Feb-2005 |
phk |
Use dynamic major number allocation.
|
141095 |
01-Feb-2005 |
imp |
BUS_SPACE_UNRESTRICTED shouldn't be used with the bus_alloc_resource interface. Instead, move to the convenience _any interface.
|
139749 |
06-Jan-2005 |
imp |
Start each of the license/copyright comments with /*-, minor shuffle of lines
|
139289 |
25-Dec-2004 |
julian |
Allow selection of a recording source on USB audio devices.
PR: 75316 Submitted by: Kazuhito HONDA <kazuhito at ph dot noda dot tus dot ac dot jp> Obtained from: NetBSD plus changes MFC after: 2 weeks
|
139288 |
25-Dec-2004 |
julian |
Allow recording on at least some USB audio devices.
PR: 75311 Submitted by: Kazuhito HONDA <kazuhito at ph dot noda dot tus dot ac dot jp> Obtained from: NetBSD plus changes MFC after: 2 weeks
|
139287 |
25-Dec-2004 |
julian |
Allow volume control on more channels/inputs
PR: 75276 Submitted by: Kazuhito HONDA <kazuhito at ph dot noda dot tus dot ac dot jp> Obtained from: NetBSD with changes MFC after: 2 weeks
|
139285 |
25-Dec-2004 |
julian |
MFNetBSD: One of a set of patches submitted by Kazuhito HONDA to make the usb audio driver a lot more capable.
PR: 75274 Submitted by: Kazuhito HONDA (kazuhito at ph dot noda dot tus dot ac dot jp) Obtained from: NetBSD (indirectly) MFC after: 2 weeks
|
139196 |
22-Dec-2004 |
phk |
Don't include vnode.h
|
138506 |
07-Dec-2004 |
imp |
PNP BIOS devices are fundamentally different than ISA PNP devices. These devices should be probed first because they are at fixed locations and cannot be turned off. ISA PNP devices, on the other hand, can be turned off and often can be flexible in the resources they use. Probe them last, as always.
|
137573 |
11-Nov-2004 |
ru |
Fix build.
Submitted by: Taku YAMAMOTO
|
137500 |
10-Nov-2004 |
julian |
Add record capability.
Submitted by: Taku Yamamoto (original author)
|
136944 |
25-Oct-2004 |
yongari |
Device driver for onboard CS4231 audio controller which is found on UltraSPARC workstations. The driver is based on OpenBSD's SBus cs4231 driver and heavily modified to incorporate into sound(4) infrastructure. Due to the lack of APCDMA documentation, the DMA code of SBus cs4231 came from OpenBSD's driver. The driver runs without Giant lock and supports both SBus and EBus based CS4231 audio controller. Special thanks to marius for providing feedbacks during the driver writing. His feedback made it possible to write hiccup free playback code under high system loads.
Approved by: jake (mentor) Reviewed by: marius (initial version) Tested by: marius, kwm, Julian C. Dunn(jdunn AT opentrend DOT net)
|
136535 |
15-Oct-2004 |
njl |
Re-add an acpi attachment for the legacy probe that was inadvertently removed.
|
136531 |
15-Oct-2004 |
yongari |
Plug possible memory leak in sound DMA buffer handling. It also changes return code to ENOMEM in case of allocation failure.
Approved by: jake (mentor), scottl (co-mentor) Reviewed by: truckman, matk
|
136470 |
13-Oct-2004 |
yongari |
Limit DMA address space to 1GB since the trident audio cards can't handle DMA addresses located above 1GB. The LBA(loop begin address) register which holds DMA base address is 32bits register. But the MSB 2bits are used for other purposes. This effectivly limits the DMA address space up to 1GB.
Approved by: jake (mentor) Reviewed by: truckman, matk
|
136469 |
13-Oct-2004 |
yongari |
Audio drivers failed to detect failure condition and attempted to assign DMA address to the wrong address. It can cause system lockup or other mysterious errors. Since most sound cards requires low DMA address(BUS_SPACE_MAXADDR_24BIT) sndbuf_alloc() would fail when the audio driver is loaded after long running of operations.
Approved by: jake (mentor) Reviewed by: truckman, matk
|
136410 |
12-Oct-2004 |
njl |
* Remove the acpi attachment from the es1888. It has an identify method that conjures up the device node so it isn't true PNP. Noticed by jhb@.
* Add an attachment for esscontrol since it too uses ISA_PNP_PROBE.
* Move an attachment from snd_mss to snd_pnpmss. The latter is the real PNP user.
|
136392 |
11-Oct-2004 |
njl |
Add acpi attachments for ISA sound drivers. This is needed so they'll probe and attach when ACPI is enabled.
Submitted by: takawata (sbc fix) MFC after: 1 day
|
135867 |
28-Sep-2004 |
ps |
Add ICH6 support.
|
135543 |
21-Sep-2004 |
des |
Correct the capitalization of "nVidia".
|
135508 |
20-Sep-2004 |
sanpei |
Add support Nvidia nForce2(audio)
PR: kern/71317 Submitted by: Mezz <mezz@freebsd.org> MFC after: 1 week
|
135502 |
20-Sep-2004 |
sanpei |
Add support nForce3 250 audio
PR: kern/71726 Submitted by: FUJIMOTO Kou <fujimoto@j.dendai.ac.jp> MFC after: 1 week
|
135284 |
15-Sep-2004 |
sobomax |
Backout the code which tries to use undocumented way to determine if fm801 has sound capabilities or not. Unfortunately this code doesn't work as expected.
Submitted by: many MFC after: 3 days
|
135115 |
12-Sep-2004 |
truckman |
Change sb_lock() calls to sbc_lockassert() and remove the sb_unlock() calls in sb_cmd2() and sb_getmixer(). The lock has already be grabbed before these functions are called.
This is a RELENG_5 candidate.
PR: 71189 Submitted by: stephane MFC after: 3 days
|
135033 |
10-Sep-2004 |
truckman |
Convert sndstat_lock from a mutex to an sx lock. sndstat_read() holds sndstat_lock across a call to uiomove(), which is not legal to do with a mutex because of the possibility that the data transfer could sleep because of a page fault. It is not possible to just unlock the mutex for the uiomove() call without introducing another locking mechanism to prevent the body of sndstat_read() from being re-entered. Converting sndstat_lock to an sx lock is the least complicated change.
This is a candidate for RELENG_5.
LOR: 030 MFC after: 4 days
|
134177 |
22-Aug-2004 |
green |
The new contigmalloc code is exposing a lot of misuses of busdma memory allocation. Notably, in this case, the driver tries to allocate several pieces of memory and then fails if the pieces allocated after the first do not come after it physically, and within a specific range (8MB I believe). Of course, this could just as easily fail for any number of reasons, but it almost always fails now that contiguous allocations start at the end of possible specified memory locations rather than the beginning.
Allocate all the possibly-needed memory up front, even though it's a waste, to get around this. The least bogus solution would be to take the physical address from the first allocation and create a new tag that specified that further allocations must follow it within that 8MB window, then use that when allocating new channels, but that's left for anyone else that really feels like doing it.
Tested by: Erwin Lansing <erwin@lansing.dk>
|
132600 |
24-Jul-2004 |
obrien |
Remove rev 1.50.
|
132236 |
16-Jul-2004 |
tanimura |
Rename the sound device drivers:
- `sound' The generic sound driver, always required.
- `snd_*' Device-dependent drivers, named after the sound module names. Configure accordingly to your hardware.
In addition, rename the `snd_pcm' module to `sound' in order to sync with the driver names.
Suggested by: cg
|
132199 |
15-Jul-2004 |
phk |
Do a pass over all modules in the kernel and make them return EOPNOTSUPP for unknown events.
A number of modules return EINVAL in this instance, and I have left those alone for now and instead taught MOD_QUIESCE to accept this as "didn't do anything".
|
131919 |
10-Jul-2004 |
marcel |
Remove DDB. The one user of this macro has been changed to use BVDDB. Yes, DDB is unrelated to the debugger with the same acronym. Hence, the change.
|
131918 |
10-Jul-2004 |
marcel |
s/DDB/BVDDB/g
Note that DDB is unrelated to the debugger with the same acronym.
|
131587 |
04-Jul-2004 |
bms |
Check the return value of bus_dmamem_alloc() correctly.
Submitted by: Darron Broad (with cleanups)
|
131461 |
02-Jul-2004 |
netchild |
Implement SNDCTL_DSP_SETDUPLEX. This may fix sound apps which want to use full duplex mode.
Approved by: matk
|
131105 |
25-Jun-2004 |
josef |
Fix uninitialized variable, that breaks the build.
Approved by: hmp Reviewed by: chris Pointy hat to: josef (for ignoring warning)
|
131064 |
24-Jun-2004 |
josef |
Change the possibility to configure pcm(4) via boot/loader.conf to use boot/device.hints now
As discussed on cvs-src@
Reviewed by: Hiten Pandya <hmp@backplane.com>
|
130792 |
20-Jun-2004 |
josef |
Enable pcm to read kenv variables to set default values for mixer channels.
e.g.: pcm0.line=0
to muten input line per default.
Approved by: cg Reviewed by: le, stefanf Requested by: Eugene Grosbein <eugen@grosbein.pp.ru> (implicitly) PR: kern/63771
|
130640 |
17-Jun-2004 |
phk |
Second half of the dev_t cleanup.
The big lines are: NODEV -> NULL NOUDEV -> NODEV udev_t -> dev_t udev2dev() -> findcdev()
Various minor adjustments including handling of userland access to kernel space struct cdev etc.
|
130585 |
16-Jun-2004 |
phk |
Do the dreaded s/dev_t/struct cdev */ Bump __FreeBSD_version accordingly.
|
130472 |
14-Jun-2004 |
josef |
Improve mapping of relative to absolute volume.
I added bounds checking to the patch and cg improved the formular.
Submitted by: Andriy Gapon <avg@icyb.net.ua> PR: kern/65485 Approved by: cg Reviewed by: imp, rwatson, le
|
130436 |
13-Jun-2004 |
obrien |
Add PCI identifier for Dell modified SBLive! card
Submitted by: Joseph Dunn <joseph@magnesium.net>
|
130188 |
07-Jun-2004 |
truckman |
Nuke a cryptic and useless diagnostic printf().
|
130078 |
04-Jun-2004 |
mux |
Make the emu10k1 pcm driver INTR_MPSAFE. The locking is modeled exactly as done in the cmi driver. I am quite confident this is safe since I'm runing this for more than two weeks now, on an SMP box. A few people tested this patch for me successfully as well.
|
129925 |
01-Jun-2004 |
tanimura |
Axe the old midi drivers and framework. matk has developed a new module-friendly midi subsystem to be merged soon.
|
129890 |
31-May-2004 |
takawata |
Devclass have to be shared with same 'pcm' devclass, or unit management will corrupt.
|
129758 |
26-May-2004 |
matk |
Add PCI ID for via 8237.
Submitted by: Josh Elsasser <jre@vineyard.net> Approved by: tanimura (mentor) PR: kern/61730
|
129181 |
13-May-2004 |
truckman |
Remove extraneous spaces.
|
129180 |
13-May-2004 |
truckman |
Implement sbc_lockassert() and sb_lockassert() functions to allow proper locking to be checked at runtime.
Remove sb_lock() and sb_unlock() calls from sb_reset_dsp() because the latter is called from sb_setup() with the lock already held. Add a call to sb_lockassert().
Surround the call to sb_reset_dsp() in sb16_attach() with sb_lock() and sb_unlock() calls.
Tested by: Bartek Marcinkiewicz <junior AT p233.if.pwr.wroc.pl>
|
129044 |
08-May-2004 |
sanpei |
Add support CS4294
PR: kern/66280 Submitted by: Christian Brueffer <chris@unixpages.org>
|
128730 |
29-Apr-2004 |
green |
Don't do malloc(M_WAITOK) for sound buffers while locks are held.
|
128513 |
21-Apr-2004 |
green |
This driver certainly works fine turning INTR_MPSAFE back on. For those of you with other cards, please do review and test the drivers for MP-safety and disable Giant in the interrupt routines when you are sure of proper functionality.
|
128232 |
14-Apr-2004 |
green |
The newpcm headers currently #define away INTR_MPSAFE and INTR_TYPE_AV because they bogusly check for defined(INTR_MPSAFE) -- something which never was a #define. Correct the definitions.
This make INTR_TYPE_AV finally get used instead of the lower-priority INTR_TYPE_TTY, so it's quite possible some improvement will be had on sound driver performance. It would also make all the drivers marked INTR_MPSAFE actually run without Giant (which does seem to work for me), but: INTR_MPSAFE HAS BEEN REMOVED FROM EVERY SOUND DRIVER! It needs to be re-added on a case-by-case basis since there is no one who will vouch for which sound drivers, if any, willy actually operate correctly without Giant, since there hasn't been testing because of this bug disabling INTR_MPSAFE.
Found by: "Yuriy Tsibizov" <Yuriy.Tsibizov@gfk.ru>
|
127651 |
31-Mar-2004 |
matk |
By default, ich4 has NAMBAR and NABMBAR i/o spaces as read-only. Need to enable "legacy support", by poking into pci config space. (comment from the patch)
Submited by: Autrijus Tang <autrijus@autrijus.org> Approved by: tanimura (mentor)
|
127218 |
20-Mar-2004 |
marcel |
Actually program the list of recording devices in sv_mix_setrecsrc(). This change has not been tested.
This change was triggered by a gcc(1) warning on ia64 at -O2. The variable v was not used after being computed, which resulted in enough dead code elimination (DCE) to confuse the compiler and emit a bogus warning about the use of the variable i without prior definition. The variable i is the loop variable.
Submitted by: des Responsibility: marcel
|
127135 |
17-Mar-2004 |
njl |
Convert callers to the new bus_alloc_resource_any(9) API.
Submitted by: Mark Santcroos <marks@ripe.net> Reviewed by: imp, dfr, bde
|
126695 |
06-Mar-2004 |
matk |
Augment /dev/sndstat with the module names, if applicable.
Approved by: tanimura (mentor)
|
126367 |
28-Feb-2004 |
truckman |
Create a new mutex type for virtual channels. This allows us to get rid of the MTX_DUPOK flag on channel mutexes, which allows witness to do a better job of lock order checking. Nuke snd_chnmtxcreate() since it is no longer needed.
Tested by: matk
|
126366 |
28-Feb-2004 |
truckman |
Lock channels only as necessary in dsp_ioctl(), and only lock one channel at a time unless it is actually necessary to lock both. This avoids problems with lock order reversal and malloc() calls with a mutex held when lower level code unlocks a channel, calls malloc(), and relocks the channel. This also avoids the cost of some unnecessary locking and unlocking.
Tested by: matk
|
126081 |
21-Feb-2004 |
phk |
Device megapatch 5/6:
Remove the unused second argument from udev2dev().
Convert all remaining users of makedev() to use udev2dev(). The semantic difference is that udev2dev() will only locate a pre-existing dev_t, it will not line makedev() create a new one.
Apart from the tiny well controlled windown in D_PSEUDO drivers, there should no longer be any "anonymous" dev_t's in the system now, only dev_t's created with make_dev() and make_dev_alias()
|
126080 |
21-Feb-2004 |
phk |
Device megapatch 4/6:
Introduce d_version field in struct cdevsw, this must always be initialized to D_VERSION.
Flip sense of D_NOGIANT flag to D_NEEDGIANT, this involves removing four D_NOGIANT flags and adding 145 D_NEEDGIANT flags.
|
126030 |
20-Feb-2004 |
matk |
Fix a glitch in my last commit and revert to using selwakeuppri
Noticed by: tanimura Noticed by: truckman
|
125982 |
19-Feb-2004 |
matk |
Fix a long-standing bug where select on vchans doesn't work (never wake up) by iterating over them when they exist.
Approved by: tanimura (mentor)
|
125195 |
29-Jan-2004 |
mr |
Add dependency to snd_via8233
|
125136 |
28-Jan-2004 |
truckman |
Change KASSERT() in feed_vchan16() into an explicit test and call to panic() so that the buffer overflow just beyond this point is always caught, even when the code is not compiled with INVARIANTS.
Change chn_setblocksize() buffer reallocation code to attempt to avoid the feed_vchan16() buffer overflow by attempting to always keep the bufsoft buffer at least as large as the bufhard buffer.
Print a diagnositic message Danger! %s bufsoft size increasing from %d to %d after CHANNEL_SETBLOCKSIZE() if our best attempts fail. If feed_vchan16() were to be called by the interrupt handler while locks are dropped in chn_setblocksize() to increase the size bufsoft to match the size of bufhard, the panic() code in feed_vchan16() will be triggered. If the diagnostic message is printed, it is a warning that a panic is possible if the system were to see events in an "unlucky" order.
Change the locking code to avoid the need for MTX_RECURSIVE mutexes.
Add the MTX_DUPOK option to the channel mutexes and change the locking sequence to always lock the parent channel before its children to avoid the possibility of deadlock.
Actually implement locking assertions for the channel mutexes and fix the problems found by the resulting assertion violations.
Clean up the locking code in dsp_ioctl().
Allocate the channel buffers using the malloc() M_WAITOK option instead of M_NOWAIT so that buffer allocation won't fail. Drop locks across the malloc() calls.
Add/modify KASSERTS() in attempt to detect problems early.
Abuse layering by adding a pointer to the snd_dbuf structure that points back to the pcm_channel that owns it. This allows sndbuf_resize() to do proper locking without having to change the its API, which is used by the hardware drivers.
Don't dereference a NULL pointer when setting hw.snd.maxautovchans if a hardware driver is not loaded. Noticed by Ryan Sommers <ryans at gamersimpact.com>.
Tested by: Stefan Ehmann <shoesoft AT gmx.net> Tested by: matk (Mathew Kanner) Tested by: Gordon Bergling <gbergling AT 0xfce3.net>
|
124989 |
25-Jan-2004 |
matk |
Fix a panic in dsp_clone when trying to access a sound device that doesn't exists. I'm using my discretion and committing without mentor approval since Seigo is away.
Noticed by: Maxime Henrion <mux@freebsd.org>
|
124875 |
23-Jan-2004 |
matk |
Sync with DFBSD v.1.16. Add new codecs IDs, fix some spelling.
Approved by: des (interim mentor)
|
124743 |
20-Jan-2004 |
matk |
Reduce latency when using the SNDCTL_DSP_RESET ioctl by calling chn_resetbuf().
Submited by: Pyun YongHyeon <yongari@kt-is.co.kr> Approved by: tanimura (mentor)
|
124740 |
20-Jan-2004 |
matk |
Fix a panic when kldloading a sound driver. Do this by replacing the link-list of dev_t's with named variables. Remove used code.
Approved by: tanimura (mentor)
|
124617 |
17-Jan-2004 |
phk |
As previously announced: discontinue use of makedev() call in soundcode.
This takes us a lot closer to refcounting dev_t.
This patch originally by cg@ with a few minor changes by me.
It is largely untested, but has been HEADSUP'ed twice, so presumably people have not found any issues with it.
Submitted by: cg@
|
124405 |
12-Jan-2004 |
obrien |
Specify the right location of the generated header.
|
124373 |
11-Jan-2004 |
obrien |
Add Audigy support. I started with a year-old patch by Orlando Bassotto <orlando.bassotto@ieo-research.it>, and ported it to 5.2-CURRENT along with fixing the problems working with pre-Audigy cards.
|
124358 |
11-Jan-2004 |
obrien |
Remove EMUDEBUG [un]def. This should be done in the Makefile.
|
124277 |
09-Jan-2004 |
obrien |
Sync with Creative's 8010.h rev 1.51.
|
123277 |
08-Dec-2003 |
truckman |
The last argument to mtx_init() should be MTX_DEF, not 0. This is not a functional change since MTX_DEF happens to be defined as 0.
|
123156 |
05-Dec-2003 |
matk |
Fix some locking violations by creating seperate mutex classes for play and record channels.
Approved by: seigo (mentor) Approved by: scottl (re)
|
123013 |
27-Nov-2003 |
matk |
Fix a panic due to holding a lock over calls to uiomove.
Pointed out by: Artur Poplawski Explained by: Don Lewis (truckman) Approved by: tanimura (mentor) Approved by: scottl (re)
|
122515 |
11-Nov-2003 |
kuriyama |
Add ID for ALC658 CODEC.
Tested on: GIGABYTE GA-8S655FX-L Reviewed by: orion
|
122461 |
11-Nov-2003 |
scottl |
Fix sound LOR problems:
dsp_open: rearrange to only hold one lock at a time
dsp_close: ditto
mixer_hwvol_init: delete locking, the only consumer seems to be the ess driver and it only call it a creation time, I think the device will be stable across the sleepable malloc.
cmi interrupt routine: Release locks while caller chn_intr, either this or do what emu10k1 does which is have no locks at in the interrupt handler.
Submitted by: mat@cnd.mcgill.ca
|
122352 |
09-Nov-2003 |
tanimura |
- Implement selwakeuppri() which allows raising the priority of a thread being waken up. The thread waken up can run at a priority as high as after tsleep().
- Replace selwakeup()s with selwakeuppri()s and pass appropriate priorities.
- Add cv_broadcastpri() which raises the priority of the broadcast threads. Used by selwakeuppri() if collision occurs.
Not objected in: -arch, -current
|
121711 |
29-Oct-2003 |
deischen |
Don't attempt to destroy the driver mutex when it hasn't yet been created. This has been sitting in my local tree for far too long; I can't believe noone else has come across this yet.
|
121032 |
12-Oct-2003 |
des |
Recognize the Avance Logic ALC655 codec found on some ICH4/5-based motherboards, such as the Gigabyte I848P.
PR: kern/54176 Submitted by: Chris Keladis <chris@cmc.optus.net.au> Forgotten by: orion
|
121028 |
12-Oct-2003 |
des |
A couple of months' worth of back-burner hacking: restructure to better handle the minor (but significant) differences between the various Vortex chips; add (incomplete) support for playback.
|
120142 |
17-Sep-2003 |
bde |
Fixed world breakage in previous commit. Somehow the wrong include was removed in the world although the correct one was removed in the universe.
|
120117 |
16-Sep-2003 |
bde |
Don't include another driver's private reg.h file (sioreg.h). Including ns16550.h is now sufficient.
|
120101 |
15-Sep-2003 |
njl |
Correctly reset ich[3-5] sound cards on resume. This fixes audio playback after suspend/resume for me.
PR: Submitted by: iwasaki Reviewed by: orion Approved by: cg Obtained from: MFC after:
|
119853 |
07-Sep-2003 |
cg |
update my email address.
|
119711 |
03-Sep-2003 |
obrien |
Recognize the sound chip on the Opteron-based nForce3 motherboards (such as the Asus SK8N).
|
119690 |
02-Sep-2003 |
jhb |
Use PCIR_BAR(x) instead of PCIR_MAPS.
Glanced over by: imp, gibbs Tested by: i386 LINT
|
119548 |
29-Aug-2003 |
orion |
Add Creative SB AudioPCI CT4730 rev A.
Submitted by: David Xu <davidxu@FreeBSD.org> PR: kern/54810
|
119547 |
29-Aug-2003 |
orion |
Add Creative EV1938.
Submitted by: David Xu <davidxu@FreeBSD.org> PR: kern/54810
|
119533 |
28-Aug-2003 |
obrien |
Add sound support for the AMD64 8111 chip.
PR: kern/55932 Submitted by: Mark Kettenis <kettenis@chello.nl>
|
119375 |
23-Aug-2003 |
orion |
When present use ogain instead of master for surround sound channels. The latter has lead to reports of broken audio.
Do not swap ogain and master when headphones detected.
|
119362 |
23-Aug-2003 |
iedowse |
When calculating the block size to use for a particular sample rate, round the result up to a multiple of 4 bytes so that it will always be a multiple of the sample size. Also use the actual buffer size from sc->bufsz instead of the default DS1_BUFFSIZE.
This fixes panics and bad distortion I have seen on Yamaha DS-1 hardware, mainly when playing certain Real Audio media.
Reviewed by: orion (an earlier version of the patch)
|
119361 |
23-Aug-2003 |
iedowse |
Fix an off-by-one error in feed_monotostereo16() that caused the first sample in the buffer to be ignored. The bug caused a repetitive glitch in one of the stereo channels when playing mono sound on configurations that use the monotostereo16 feeder.
Reviewed by: orion
|
119287 |
22-Aug-2003 |
imp |
Prefer new location of pci include files (which have only been in the tree for two or more years now), except in a few places where there's code to be compatible with older versions of FreeBSD.
|
119250 |
21-Aug-2003 |
orion |
Additional VT1616 id.
Submitted by: Greg Lewis
|
119209 |
21-Aug-2003 |
orion |
Apply Rudolf Cejka's patch for:
o AD1980 hook. o ac97_fix_auxout.
and:
o Associate AC97_MIX_AUXOUT with SOUND_MIXER_OGAIN rather than SOUND_MIXER_MONITOR.
o Add ac97_fix_tone to remove tone controls from mixer if invalid.
|
119208 |
21-Aug-2003 |
orion |
Add patch for AD198x.
Submitted by: Oleg Sharoiko, Rudolf Cejka.
|
119096 |
18-Aug-2003 |
cg |
handle locking when creating or destroying vchans better
|
119095 |
18-Aug-2003 |
cg |
try to make really sshort sounds actually play
|
118927 |
15-Aug-2003 |
cg |
modify comments
|
118922 |
14-Aug-2003 |
cg |
disable resume code implementing panic().
this needs to be reimplemented properly.
|
118729 |
10-Aug-2003 |
orion |
Switch from legacy to native mode for ICH4 and ICH5.
Submitted by: Shin-ichi YOSHIMOTO <yosimoto@waishi.jp> Test by: Markko Merzin <markko@short.cut.ee> PR: kern/53242 MFC after: 5 days
|
118473 |
05-Aug-2003 |
dds |
Change gcc-specific aggregate initialization member specifiers into C9X initializer designators.
Reviewed by: schweikh (mentor) MFC after: 4 weeks
|
117307 |
07-Jul-2003 |
cg |
* add a function to display a complete feeder chain on the console, for debugging.
* set the parent of non-format feeders, so that sndstat doesn't miss out things like feeder_rate.
MFC: 1 week
|
117296 |
06-Jul-2003 |
cg |
* support ich5
PR: kern/53242 Submitted by: Shin-ichi Yoshimoto <yosimoto@waishi.jp> (partly) Tested by: Dominic Marks <dom@cus.org.uk> (version in PR) MFC after: 1 week
|
117272 |
06-Jul-2003 |
cg |
* add support for amd-768 audio, as used on many dual athlon boards. only tested for playback.
* modify device name strings for ich chips to better conform with their common names.
* remove superflous 'AC97 controller' from nforce device names.
MFC after: 1 week
|
117126 |
01-Jul-2003 |
scottl |
Mega busdma API commit.
Add two new arguments to bus_dma_tag_create(): lockfunc and lockfuncarg. Lockfunc allows a driver to provide a function for managing its locking semantics while using busdma. At the moment, this is used for the asynchronous busdma_swi and callback mechanism. Two lockfunc implementations are provided: busdma_lock_mutex() performs standard mutex operations on the mutex that is specified from lockfuncarg. dftl_lock() is a panic implementation and is defaulted to when NULL, NULL are passed to bus_dma_tag_create(). The only time that NULL, NULL should ever be used is when the driver ensures that bus_dmamap_load() will not be deferred. Drivers that do not provide their own locking can pass busdma_lock_mutex,&Giant args in order to preserve the former behaviour.
sparc64 and powerpc do not provide real busdma_swi functions, so this is largely a noop on those platforms. The busdma_swi on is64 is not properly locked yet, so warnings will be emitted on this platform when busdma callback deferrals happen.
If anyone gets panics or warnings from dflt_lock() being called, please let me know right away.
Reviewed by: tmm, gibbs
|
116881 |
26-Jun-2003 |
mdodd |
Set a lower bound on fragment size rather than returning a failure when the user specifies a maximum fragment size < 2.
This is the behavior that Linux provides and fixes the problem I've observed in Tribes2 where sounds effects are delayed by 1/2 a second.
|
115618 |
01-Jun-2003 |
des |
Add (but do not connect) a half-finished driver for Aureal Vortex cards. The mixer works, pcm support is half done.
|
114432 |
01-May-2003 |
orion |
Fix lock order reversal when opening device and chn_reset fails.
Submitted by: Jan-Espen Pettersen <sigsegv@leakingmemory.org> Tested by: Georg Funk <georgfunk@web.de>
|
114216 |
29-Apr-2003 |
kan |
Deprecate machine/limits.h in favor of new sys/limits.h. Change all in-tree consumers to include <sys/limits.h>
Discussed on: standards@ Partially submitted by: Craig Rodrigues <rodrigc@attbi.com>
|
113907 |
23-Apr-2003 |
jhb |
Comment out the mixer entry for igain for the mic 20dB boost for now since it can cause feedback problems on some laptops.
Reviewed by: orion
|
113788 |
21-Apr-2003 |
orion |
Add eMicro codec ids.
|
113783 |
21-Apr-2003 |
orion |
Use SOUND_MIXER_IGAIN to toggle 20dB mic boost for want of a better place for it.
Assorted comments.
Submitted by: luigi
|
113752 |
20-Apr-2003 |
orion |
Additional malloc failure checks.
|
113748 |
20-Apr-2003 |
obrien |
more style(9) changes.
|
113747 |
20-Apr-2003 |
obrien |
more style(9) changes.
|
113746 |
20-Apr-2003 |
obrien |
A few style(9) fixes.
|
113653 |
18-Apr-2003 |
obrien |
Sync with Creative's 8010.h rev 1.39.
|
113598 |
17-Apr-2003 |
orion |
Perform warm or cold reset AC97 per the spec depending on state of the codec during initialization. This code mirrors the reset code used on the VIA82c686 and fixes a codec initialization failure (SoundMAX AD1885) reported by Matthias Schuendehuette.
|
113546 |
16-Apr-2003 |
simokawa |
Fix bogus maxsegsz parameter for bus_dma_tag_create().
MFC: 1 week
|
113545 |
16-Apr-2003 |
mdodd |
- Don't call pci_enable_io() in drivers (unless needed for resume). - Don't test memory/port status and emit an error message; the PCI bus code will do this now.
|
113057 |
04-Apr-2003 |
orion |
Additional codec ids.
|
113056 |
04-Apr-2003 |
orion |
Fix mismatch between bus address stored for buffer descriptors and actual address of buffer descriptor. This should fix the reported calibration failures and subsequent speed problems with ich chipsets.
Minor calibration comment updates.
|
112748 |
28-Mar-2003 |
orion |
Perform warm reset if codec reports ready on attach.
Move AC97 link control power up poke so it is always performed on attach.
|
112672 |
26-Mar-2003 |
orion |
Re-work ac97 initialization to match cold reset described in AC97r.23 and be prepared to wait much longer for codec to become ready.
Credit to Hugo D. Valentim <hvalentim@gmx.net> for reporting the problem, providing useful pointers, and repeated diff testing.
|
112671 |
26-Mar-2003 |
orion |
For the VIA8233A use multi-sgd register set for primary playback channel and disable DXS3. Several users have reported DXS3 as playing at half speed on the 8233A revision of the chipset. This implicitly means no SPDIF for VIA8233A users.
|
112669 |
26-Mar-2003 |
orion |
Add defines for low power and second codec ready.
|
112569 |
25-Mar-2003 |
jake |
- Add vm_paddr_t, a physical address type. This is required for systems where physical addresses larger than virtual addresses, such as i386s with PAE. - Use this to represent physical addresses in the MI vm system and in the i386 pmap code. This also changes the paddr parameter to d_mmap_t. - Fix printf formats to handle physical addresses >4G in the i386 memory detection code, and due to kvtop returning vm_paddr_t instead of u_long.
Note that this is a name change only; vm_paddr_t is still the same as vm_offset_t on all currently supported platforms.
Sponsored by: DARPA, Network Associates Laboratories Discussed with: re, phk (cdevsw change)
|
112438 |
20-Mar-2003 |
orion |
Distinguish between register sets that depend on ac97 caps (wr0, wr1, msgd) and those that don't (dxs0-3) when reporting format caps.
|
112434 |
20-Mar-2003 |
orion |
Correct vendor id for ALC101.
|
112150 |
12-Mar-2003 |
orion |
Correct CS4205 base vendor id.
Reported by: Christophe Juniet and Mark Santcroos.
|
111909 |
05-Mar-2003 |
orion |
Back out last commit, which is fine in theory, but ignores the fact that a lock is held whilst the allocations are made (M_WAITOK -> M_NOWAIT).
|
111898 |
05-Mar-2003 |
orion |
Attempt a hard reset if AC97 codec is not ready on attach.
Halt attach if mixer_init fails.
Prompted by: points raised by Hugo Valentim <hvalentim@gmx.net>.
|
111815 |
03-Mar-2003 |
phk |
Gigacommit to improve device-driver source compatibility between branches:
Initialize struct cdevsw using C99 sparse initializtion and remove all initializations to default values.
This patch is automatically generated and has been tested by compiling LINT with all the fields in struct cdevsw in reverse order on alpha, sparc64 and i386.
Approved by: re(scottl)
|
111679 |
28-Feb-2003 |
orion |
o Move vendor ids into separate table. o Add assorted vendor and codec ids.
|
111590 |
27-Feb-2003 |
scottl |
Add the ID for the CS4205 codec found in Dell laptops. Obtained from the CS4205 spec.
|
111561 |
26-Feb-2003 |
cognet |
Add SigmaTel STAC9750 entry.
Submitted by: Paulius Bulotas <paulius.bulotas@microlink.lt>
|
111556 |
26-Feb-2003 |
cognet |
Unbreak emu10k1 by properly using the buffer address.
New contestant for the lamest commit of the year award: cognet
|
111550 |
26-Feb-2003 |
orion |
Replicate OSS behaviour when rate settings fails.
PR: kern/26563
|
111462 |
25-Feb-2003 |
mux |
Cleanup of the d_mmap_t interface.
- Get rid of the useless atop() / pmap_phys_address() detour. The device mmap handlers must now give back the physical address without atop()'ing it. - Don't borrow the physical address of the mapping in the returned int. Now we properly pass a vm_offset_t * and expect it to be filled by the mmap handler when the mapping was successful. The mmap handler must now return 0 when successful, any other value is considered as an error. Previously, returning -1 was the only way to fail. This change thus accidentally fixes some devices which were bogusly returning errno constants which would have been considered as addresses by the device pager. - Garbage collect the poorly named pmap_phys_address() now that it's no longer used. - Convert all the d_mmap_t consumers to the new API.
I'm still not sure wheter we need a __FreeBSD_version bump for this, since and we didn't guarantee API/ABI stability until 5.1-RELEASE.
Discussed with: alc, phk, jake Reviewed by: peter Compile-tested on: LINT (i386), GENERIC (alpha and sparc64) Runtime-tested on: i386
|
111354 |
23-Feb-2003 |
green |
It seems that sound(4)'s feeder routines don't need to allocate memory without waiting, since they are called from a system-call context only. This appears to fix all sorts of problems with open("/dev/dsp", O_WRONLY) randomly returning ENXIO.
Found by: cognet
|
111276 |
23-Feb-2003 |
orion |
Fix compilation on alpha. Pointy hat to Marcel.
|
111269 |
22-Feb-2003 |
orion |
o Add back support for DXS channels.
o Make DXS3 the primary playback channel. It may be the only universally supported channel with the assorted revisions of this chipset.
o Add sysctl and handler for enabling s/pdif output from DXS3.
|
111198 |
21-Feb-2003 |
orion |
Clean up viachan_init.
|
111197 |
21-Feb-2003 |
orion |
Fix assignment of record sgd_addr and clean up via8233chan_init.
|
111183 |
20-Feb-2003 |
cognet |
Implement a "sndbuf_getbufaddr" function and use it instead of vtophys().
Reviewed by: orion
|
111119 |
19-Feb-2003 |
imp |
Back out M_* changes, per decision of the TRB.
Approved by: trb
|
110717 |
11-Feb-2003 |
green |
Sound devices were being leaked by dsp_open() not actually releasing the channels it allocates if chn_reset() on them resulted in failure. ARROW'D!
|
110536 |
08-Feb-2003 |
nyan |
Include <isa/isavar.h> to fix building on alpha.
|
110499 |
07-Feb-2003 |
nyan |
- Clean up ISA DMA supports. - Rename all sndbuf_isadma* functions to sndbuf_dma* and move them into sys/dev/sound/isa/sndbuf_dma.c.
No response from: sound
|
110466 |
06-Feb-2003 |
orion |
Fix comment typo.
Sync with userland test framework which now deals better with pcm feeder kobj emulation.
Reduce max rate from 96kHz to 48kHz as userland tests found a few bad points about 90kHz and we don't care about operating up there for now.
|
110287 |
03-Feb-2003 |
orion |
Avoid zero padding when feeding read channels. chn_rdfeed has no way of knowing data size transformations of feeder chain and in some cases this means too much data is pulled through chain, eg converting input stream from 16bits to 8bits on 16bit only h/w.
PR: kern/37831 Submitted by: Harti Brandt <brandt@fokus.fraunhofer.de>
|
110265 |
03-Feb-2003 |
orion |
Remove mono encodings from vchan format and mixer description. Fixes mono formats at 44.1kHz playing at double speed when vchans are enabled.
|
110258 |
03-Feb-2003 |
orion |
Print ac97 name/id on normal boot.
Fix typo reported in pr misc/47794.
|
110233 |
02-Feb-2003 |
alfred |
remove MIN now that it's a standard kernel define
|
110232 |
02-Feb-2003 |
alfred |
Consolidate MIN/MAX macros into one place (param.h).
Submitted by: Hiten Pandya <hiten@unixdaemons.com>
|
110108 |
30-Jan-2003 |
orion |
o Constrain inputs to 25Hz granularity so interpolator can operate between any pair of values in range 4-96kHz. Thanks to Ken Marks for discovering there were problems with the previous version.
o Use a non-recursive gcd routine.
|
109863 |
26-Jan-2003 |
orion |
Disable DRA to fix problems with recording.
|
109818 |
25-Jan-2003 |
orion |
Add ac97_patch.[ch] that provide space for ac97 codec specific patches.
|
109623 |
21-Jan-2003 |
alfred |
Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. Merge M_NOWAIT/M_DONTWAIT into a single flag M_NOWAIT.
|
109547 |
20-Jan-2003 |
orion |
Re-implemention of the interpolation code used for sample rate conversion. The new version has improved interpolation accuracy and maintains the timing relationship between the input and output signals exactly.
Approved by: cg
|
109269 |
15-Jan-2003 |
mdodd |
- GC a few more hand-rolled 'abs' macros. - GC a few hand-rolled min()/max() macros while I'm here.
|
109236 |
14-Jan-2003 |
cognet |
Don't call destroy_dev it a channel has children. vchan creation doesn't lead to /dev entry creation if the new vchan is the first child of a channel, This fix a panic that happens when loading a sound driver module, creating vchans and unloading the driver.
Approved by: cg MFC after: 3 days
|
109183 |
13-Jan-2003 |
orion |
Add Realtek ALC650 id.
Submitted by: "Mikko S. Hyvarinen" <morphy@morphy.iki.fi> MFC after: 5 days
|
109182 |
13-Jan-2003 |
orion |
Add nForce2 device id.
Submitted by: "Mikko S. Hyvarinen" <morphy@morphy.iki.fi> MFC after: 5 days
|
108925 |
08-Jan-2003 |
mdodd |
- Add acpi module binding. - Restore speed and format settings on resume for CS423x and CS423x-PCI devices.
|
108702 |
05-Jan-2003 |
green |
Fix the duplicate unlock of the pcm read channel in certain cases.
Reviewed by: cg
|
108533 |
01-Jan-2003 |
schweikh |
Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup, especially in troff files.
|
108064 |
18-Dec-2002 |
semenu |
Do not return(foo()) in void function.
Submitted by: marius@alchemy.franken.de MFC after: 3 days
|
107285 |
26-Nov-2002 |
cg |
(hopefully) fix build breakage some people are seeing
Approved by: re
|
107237 |
25-Nov-2002 |
cg |
various fixes to eliminate locking warnings
Approved by: re Reviewed by: orion
|
107236 |
25-Nov-2002 |
cg |
various fixes to eliminate locking warnings
Approved by: re Reviewed by: orion
|
107235 |
25-Nov-2002 |
cg |
if the list of supported formats is empty, fail the attach instead of panicing later. this is a band-aid pending further investigation.
MFC After: 7 days Approved by: re
|
106529 |
06-Nov-2002 |
joe |
Packed structures are defined differently in older gcc's, like the one currently in -stable. Put the exception into usb.h instead of having it hard coded in the sound code.
|
106420 |
04-Nov-2002 |
cognet |
Call pcm_chn_destroy() in pcm_killchan() so that channel mutexes are destroyed and struct pcm_channel freed.
Reviewed by: cg MFC after: 3 days
|
105308 |
17-Oct-2002 |
marcel |
Suppress the uninitialized variable warning on ia64 introduced by the previous commit by initializing i and j. These initializations will normally be eliminated by the compiler.
|
105100 |
14-Oct-2002 |
cognet |
Fix support for the ALi M5451 (rev 0.2) chip.
Reviewed by: orion, mux Approved by: mux (mentor) MFC after: 1 week
|
103338 |
15-Sep-2002 |
bde |
Fixed breakage from removing the used include of <sys/buf.h> in the previous commit: Include <sys/mutex.h> and its prerequisite <sys/lock.h> instead of depending on namespace pollution in <sys/buf.h>. Only do this in the __FreeBSD_version > 500000 case although the __FreeBSD_version < 500000 case has already rotted.
|
103327 |
14-Sep-2002 |
phk |
FreeBSD -current doesn't need <sys/buf.h> or <sys/bio.h>.
|
102924 |
04-Sep-2002 |
scottl |
Sigh. The fix to the suspend code wasn't complete, since the resume code was broken in the same way.
Submitted by: co9@xs4all.nl MFC after: 3 days
|
102889 |
03-Sep-2002 |
sobomax |
- Improve AC97 presence check and move it from fm801_attach() to fm801_probe(); - add bus capabilities into the driver, so that it is possible for a radio driver to attach to it to use shared resources of fm801 chip. The radio driver itself will be committed later.
MFC after: 1 week
|
102620 |
30-Aug-2002 |
sobomax |
Whitespace-only: don't mix tabs and spaces for doing identation.
|
102578 |
29-Aug-2002 |
scottl |
Fix a silly off my one error that caused crashes on resume in certain circumstances. The problem was only reported with -stable, but it's obviously wrong in -current also. MFC is forthcoming.
Submitted by: doconnor@dsoft.com.au
|
102525 |
28-Aug-2002 |
orion |
Marginally simplify dsp_open error handling by adding an early test to determine liklihood of opening device in requested directions. Makes for simpler error handling and change should close kern/35004.
PR: kern/35004.
|
102390 |
25-Aug-2002 |
orion |
Add suspend and resume support.
Contributed by: Takanori Watanabe <takawata@FreeBSD.org> PR: kern/41809
|
102386 |
25-Aug-2002 |
bde |
Fixed editing errors in rev.1.4 which manifested as printf format errors at compile time and probably as panics at runtime.
|
102374 |
24-Aug-2002 |
nsayer |
Be sure to unregister from sndstat on unregister. Gets rid of phantom sndstat output after removing uaudio.
|
102328 |
23-Aug-2002 |
orion |
Make sure channel buffer start is associated with channel, otherwise getptr is broken. Noise reported by Thomas Draney <tmdraney@yahoo.com> who also tested the patch.
|
102302 |
23-Aug-2002 |
orion |
s/AC97_MIX_PHONES/AC97_MIX_AUXOUT/ to match ac97r2.{2,3}.
Attempt to determine what function of AUX_OUT is: "True line level out", "Headphone out", or "4-Channel out" and frig OSS mixer label accordingly.
Addresses problem raised by Randy Bush on -multimedia of not being able to hear audio on ich2 m/b which was eventually found to be because the mixer monitor value was 0. On this h/w the label "monitor" should now be presented as the marginally more intuitive "ogain".
|
102291 |
22-Aug-2002 |
archie |
Replace (ab)uses of "NULL" where "0" is really meant.
|
102172 |
20-Aug-2002 |
orion |
Back out last commit. Needs slightly more subtle handling.
|
102106 |
19-Aug-2002 |
orion |
Cater for ich4 quirks.
Reported by: Jacob Rhoden Tested by: Jacob Rhoden, mp
|
102064 |
18-Aug-2002 |
orion |
Apply reference counting patch. Fixes problem of two applications opening the device, eg one read only and one write only, and the reference count being non-zero when both exit rendering device permanently busy.
PR: kern/35004 Submitted by: Bill Wells MFC after: 3 days
|
102039 |
18-Aug-2002 |
orion |
Fix VRA configuration.
Reported and fixed by: Grzybowski Rafal <grzybek@inferno.mikrus.pw.edu.pl>
|
102011 |
17-Aug-2002 |
orion |
Support for VIA VT8233 audio controller.
|
102010 |
17-Aug-2002 |
orion |
Remove support for the vt8233. Specs for chipset changed mid-revision so this code was not working for the newer VIA chipsets.
|
101738 |
12-Aug-2002 |
mp |
Add PCI ID for the ICH4 AC97 controller.
|
101521 |
08-Aug-2002 |
joe |
Use the hw.usb sysctl tree instead of debug.usb.
Requested by: imp
|
101060 |
31-Jul-2002 |
joe |
Replace the FOO_DEBUG definitions with USB_DEBUG, and switch the debugging levels to off by default. Now that debug levels can be tweaked by sysctl we don't need to go through hoops to get the different usb parts to produce debug data.
|
101059 |
31-Jul-2002 |
joe |
Make this compile with the debugging options switched on.
|
101053 |
31-Jul-2002 |
joe |
Get bored with hard coded debug level variables and introduce a debug.usb sysctl tree for tweaking them real-time.
Reviewed by: iedowse
|
100953 |
30-Jul-2002 |
sobomax |
Add support for controlling line1 mixer device, which on some cards represents onboard FM tuner.
MFC after: 2 weeks
|
100922 |
30-Jul-2002 |
sobomax |
Add a quick check that device actually has sound capabilities. The problem is that some cards built around fm801 chip have the same device ID, only have radio tuner onboard, but no sound capabilities. Therefore, with such card inserted and `device pcm' in kernel the user has a big problem, as the fm801 driver effectively hangs the machine when trying to initialise nonexistent ac97 codecs (it does 500 retries with 1 second interval!). It would be better if MediaForte's engeneers were smart enough to put different device ID into such cards, but it isn't an option.
MFC after: 2 weeks
|
100654 |
25-Jul-2002 |
green |
Fix some of the places where sound(4) can sleep with a lock held. (Help courtesy of fenner).
|
100634 |
24-Jul-2002 |
ambrisko |
Fake a resume method for this chip via calling detach/attach. This lets ThinkPads using this chip to have sound after a suspend/resume sequence without resorting to kldunload/kldload.
MFC after: 1 week
|
100576 |
23-Jul-2002 |
kan |
Fix the sound driver vchan support to work when hw.snd.maxautovchans has been specified through /boot/loader.conf as opposed to setting it in /etc/sysctl.conf. Only PCMDIR_PLAY channel can be used as a parent of virtual channel. Do not initialize a new vchan for a given physical channel if other physical channel already has one created.
PR: 31597 Approved by: obrien (mentor)
|
100478 |
22-Jul-2002 |
orion |
Move lock in pcm_chn_add() to after malloc.
PR: kern/40157 Submitted by: Dan Lukes <dan@obluda.cz>
|
100474 |
22-Jul-2002 |
peter |
Make this compile. uaudio.c:1822: warning: `uaudio_ctl_get' defined but not used
|
100447 |
21-Jul-2002 |
nsayer |
Add uaudio -- a USB audio device driver.
This driver actually works slightly better on -stable than on -current (the system locks on detach on -current), so it should be MFC'd somewhat sooner.
This driver currently points out a difficulty in the sound device framework. The PCM unregister routine is allowed to refuse the detach if the device is in use. In the case of a USB device, however, this unregistration is much more mandatory in nature, since the device is *actually* gone when this call is made. The sound subsystem really should not refuse an unregistration and should take its own steps to reject further I/O. As a result, if you detach a USB sound device while it is in use, you can expect a panic shortly thereafter.
This device cannot currently record audio. Some routines are unwritten as of yet in uaudio.c to support recording.
This device hangs my -current box on detach. I don't know why. This does not happen on my -stable machine.
Obtained from: Hiroyuki Aizu MFC after: 2 weeks
|
100071 |
15-Jul-2002 |
markm |
Use semicolons at the end of function-like macros for the sake of consistency, style and future cleanliness.
|
99586 |
08-Jul-2002 |
robert |
Reenable the m3 interrupts in m3_pci_resume() and do not enable them in m3_pci_attach().
|
98961 |
28-Jun-2002 |
scottl |
Fix a botched flag clear operation. Rumor has it that this also fixes the funky-volume-settings-on-startup problem.
Reviewed by: the channel that shall not be named MFC after: 7 days
|
98940 |
27-Jun-2002 |
scottl |
Delay the AC97 calibration until after the system clock has been calibrated. This fixes the problem where playback and recording do not run at the correct speed. It probably also eliminates the need for the hacks/workarounds/sysctl's that were previously devised to deal with this, but I will leave that for a different time.
Reviewed by: orion
|
98764 |
24-Jun-2002 |
robert |
Enable mixer interrupts after the mixer is initialized, otherwise we might get interrupts and are unable to handle them properly, which results in a page fault.
PR: kern/39549 Submitted by: Gil Kloepfer <gil@arlut.utexas.edu>
|
98068 |
09-Jun-2002 |
hm |
Fix driver to re-enable sound output on AD1816 based cards caused by an obviously bogous return value of ad1816chan_setformat(). PR: 37932 Submitted by: Martin Kaeske <Martin.Kaeske@Stud.TU-Ilmenau.DE> Reviewed by: hm MFC after: 10 days
|
97274 |
25-May-2002 |
bde |
Fixed printf format errors which apparently crept in while -Wformat was disabled for gcc-3.
|
96928 |
19-May-2002 |
peter |
Try and solve some cases of labels at end of compound statements that gcc now objects to (as it should, it is not legal C).
|
96069 |
05-May-2002 |
orion |
No longer attempt to power off the ACLINK during suspend - luigi reports this causes his ich machine to hang.
|
95845 |
01-May-2002 |
obrien |
makeobjops.awk is stricter on syntax than the perl version.
|
95840 |
01-May-2002 |
obrien |
Remove the trailing ^M's. makeobjops.awk does not like them.
|
95684 |
28-Apr-2002 |
cg |
add a missing \n to an unregister failure message
|
95678 |
28-Apr-2002 |
cg |
recognise ct5880-e
Submitted by: SONODA Yoshihide <yshd@na.rim.or.jp>
|
95499 |
26-Apr-2002 |
orion |
Add ac97_reset function that polls ready bits in power register. One component in tweaks required for the ICH3 controller in the thinkpad x22 reported by Colin Perkins on -multimedia.
|
94814 |
16-Apr-2002 |
jhb |
Cast another bus_addr_t to long long for a printf to quiet a warning on alpha.
|
94798 |
15-Apr-2002 |
jhb |
Recognize the AC97 interface to the onboard sound controller on the Nvidia nForce chipset. Playback at least seems to work fine with the ich driver out of the box.
Sponsored by: The Weather Channel Help from: cg
|
94791 |
15-Apr-2002 |
jhb |
Use bus_addr_t instead of u_int for local variables that are derived from the per-channel bus_addr_t offset. Also, cast the offset to (long long) and use %#llx instead of %#x to fix printf warnings on architectures where sizeof(bus_addr_t) != sizeof(int).
|
94767 |
15-Apr-2002 |
roberto |
Remove a spurious warning as x is always initialised before use.
es137x.c: In function `es1371_rdcd': es137x.c:598: warning: `x' might be used uninitialized in this function
PR: kern/35408 Submitted by: Thomas Quinot <thomas@cuivre.fr.eu.org>
|
94647 |
14-Apr-2002 |
jhay |
Fix the play / record rate setting so that it actually works.
The extra microphone channel capability is part of the "normal" ac97 capabilities and not an extended ac97 capability. Now recording on codecs without a seperate mic channel works.
MFC after: 1 week
|
94433 |
11-Apr-2002 |
jhb |
Fix a warning due to the code assuming sizeof(int) == sizeof(void *) which is not true on the alpha. I think that other parts of this code also make this implicit assumption as well.
|
93818 |
04-Apr-2002 |
jhb |
Change callers of mtx_init() to pass in an appropriate lock type name. In most cases NULL is passed, but in some cases such as network driver locks (which use the MTX_NETWORK_LOCK macro) and UMA zone locks, a name is used.
Tested on: i386, alpha, sparc64
|
93816 |
04-Apr-2002 |
jhb |
Add lock type arguments to callers of snd_mtxcreate().
|
93814 |
04-Apr-2002 |
jhb |
Change snd_mtxcreate() to accept a lock type as an extra argument that is passed to mtx_init().
|
93127 |
25-Mar-2002 |
mike |
Include <machine/limits.h> for definition of ULONG_MAX. Remove a duplicate include.
|
92252 |
14-Mar-2002 |
alfred |
Fixes to make select/poll mpsafe.
Problem: selwakeup required calling pfind which would cause lock order reversals with the allproc_lock and the per-process filedesc lock. Solution: Instead of recording the pid of the select()'ing process into the selinfo structure, actually record a pointer to the thread. To avoid dereferencing a bad address all the selinfo structures that are in use by a thread are kept in a list hung off the thread (protected by sellock). When a selwakeup occurs the selinfo is removed from that threads list, it is also removed on the way out of select or poll where the thread will traverse its list removing all the selinfos from its own list.
Problem: Previously the PROC_LOCK was used to provide the mutual exclusion needed to ensure proper locking, this couldn't work because there was a single condvar used for select and poll and condvars can only be used with a single mutex. Solution: Introduce a global mutex 'sellock' which is used to provide mutual exclusion when recording events to wait on as well as performing notification when an event occurs.
Interesting note: schedlock is required to manipulate the per-thread TDF_SELECT flag, however if given its own field it would not need schedlock, also because TDF_SELECT is only manipulated under sellock one doesn't actually use schedlock for syncronization, only to protect against corruption.
Proc locks are no longer used in select/poll.
Portions contributed by: davidc
|
92009 |
10-Mar-2002 |
tanimura |
Do not call a synthesizer with a sequencer lock held.
|
91607 |
04-Mar-2002 |
orion |
Suspend and resume related patches from Toshikazu Ichinoseki <t.ichinoseki@nifty.com>.
PR's: kern/35484, kern/35230.
|
91539 |
01-Mar-2002 |
orion |
Add support for VT8233.
|
91186 |
24-Feb-2002 |
des |
Add a sysctl, sysctl hw.snd.report_soft_formats, that controls whether the AIOGCAP ioctl reports software-emulated formats. It defaults to on. People who use performance-sensitive audio software and do not want it to pick a software-emulated audio format instead of one supported by their hardware should turn it off.
This unbreaks isdnphone(1) on systems with PCM-only sound cards.
Approved by: cg
|
90880 |
19-Feb-2002 |
alfred |
Add play (but not record) support for the Sis 7012.
Submitted by: Mike Meyer <mwm@mired.org>
|
90241 |
05-Feb-2002 |
tg |
Add support for the Aztech 2320 chip.
Reviewed by: cg Obtained from: NetBSD (partly)
|
90234 |
05-Feb-2002 |
tanimura |
- Do not hang if the resource allocation fails. - Add another quirk entry of SB AWE64.
PR: kern/32530 Submitted by: Magnus Backstrom <b@etek.chalmers.se>
|
89887 |
27-Jan-2002 |
scottl |
Recent changes to newpcm require that the CHANNEL_SETFORMAT op return 0 for success, non-zero otherwise. The maestro and maestro3 drivers were returning the format code, which was being interpreted as a failure code. Fixed. No one seems to have noticed that the maestro driver was broken, but I'll fix it anyways.
MFC after: 2 weeks
|
89834 |
26-Jan-2002 |
cg |
* improve error handling * be more specific in verbose boot messages * allow the feeder subsystem to veto pcm* attaching if there is an error initialising the root feeder * don't free/malloc a new tmpbuf when resizing a snd_dbuf to the same size as it currently is * store the feeder description in the feeder structure instead of mallocing space for it
|
89774 |
25-Jan-2002 |
scottl |
Fix code that had rotted behind debugging macros.
Approved by: cg (in principle) MFC after: 2 weeks
|
89771 |
25-Jan-2002 |
cg |
a buffer offset equal to the buffer size is illegal too, fix assertion in sndbuf_getbufofs()
|
89770 |
25-Jan-2002 |
cg |
cosmetic change, free b instead of c->bufhard for consistency within chn_kill()
|
89691 |
23-Jan-2002 |
cg |
improve sndstat output of feederchains so it can be understood without reading the feeder sourcecode
|
89690 |
23-Jan-2002 |
cg |
print warnings if a pcm*.buffersize hint is out of range or a non-power-of-2
|
89689 |
23-Jan-2002 |
cg |
fix some comments accidentally hit by search/replace several revisions ago
|
89688 |
23-Jan-2002 |
cg |
set the speeds the right way round for recording using the rate feeder
|
89687 |
23-Jan-2002 |
cg |
add more error checking in chn_init() and chn_reset()
|
89686 |
23-Jan-2002 |
cg |
make the feederchain builder work for recording. this has not been tested extensively as none of my testboxes have speakers or an audio source at present, but the chains built look correct and reading /dev/audio (ulaw, translated from signed 16 bit little-endian) gives values within the expected range for silence.
|
89685 |
23-Jan-2002 |
cg |
don't bother checking if an unsigned parameter is less than 0 in a KASSERT
|
89684 |
23-Jan-2002 |
cg |
add more error checking to open of /dev/dsp* and /dev/audio* - if the default format for the chosen subdevice cannot be obtained return an error instead of returning success with an indeteterminate format selected.
note that this should never happen once the feederchain builder works for recording.
|
89683 |
23-Jan-2002 |
cg |
don't allow mmap beyond the end of the buffer
Submitted by: Philippe Anel <philippe.anel@noos.fr> (partially)
|
89516 |
18-Jan-2002 |
orion |
Change ich_calibrate to busy wait on buffer fill level and use a more likely looking rate calculation.
Install interrupt handler before calling ich_init as the initialization occasionally generates spurious interrupts.
These changes are derived from cg's work in progress version of this driver.
|
88870 |
04-Jan-2002 |
tanimura |
Add the system default timer engine.
|
88869 |
04-Jan-2002 |
tanimura |
- Provide toggles to show debug messages. Set new sysctl variables hw.midi.debug and hw.midi.seq.debug to 1 to enable debug log.
- Make debug messages human-frendly.
- Implement /dev/music.
- Add a timer engine required by /dev/music.
- Fix nonblocking I/O.
- Fix the numbering of midi and synth devices.
|
88773 |
01-Jan-2002 |
tanimura |
- Do not uiomove with a mutex locked.
- Move from msleep/wakeup to condvar.
- Return either zero or a positive errno value from a function. Return additional result via references.
- Unify the typedef of callback functions.
|
88440 |
23-Dec-2001 |
cg |
make mmapped vchans work
|
88384 |
21-Dec-2001 |
pb |
Fixes apparent hang at probe time due to an extremely long timeout (experienced with an Opti931/ISA PnP card).
Approved by: cg
|
88382 |
21-Dec-2001 |
cg |
fix mmapped playback remove dead debugging code
|
88361 |
21-Dec-2001 |
orion |
Save and restore state for suspend/resume.
PR: kern/28692 Obtained from: SAKIYAMA Nobuo <sakichan@sakichan.org>
|
88215 |
19-Dec-2001 |
orion |
Correct unexpected interrupt detection.
|
88209 |
19-Dec-2001 |
orion |
Nitlets.
|
88206 |
19-Dec-2001 |
orion |
Clear resume interrupts - these can occur during initialization and must be cleared to prevent machine hanging (presently aflicts -current and -stable).
Problem reported by Bruce Montague <brucem@cse.iitkgp.ernet.in>
PR: kern/29769 (probably)
|
88108 |
18-Dec-2001 |
orion |
Add calibration test to determine extent of AC97 overclocking (if any).
|
88088 |
18-Dec-2001 |
jhb |
Modify the critical section API as follows: - The MD functions critical_enter/exit are renamed to start with a cpu_ prefix. - MI wrapper functions critical_enter/exit maintain a per-thread nesting count and a per-thread critical section saved state set when entering a critical section while at nesting level 0 and restored when exiting to nesting level 0. This moves the saved state out of spin mutexes so that interlocking spin mutexes works properly. - Most low-level MD code that used critical_enter/exit now use cpu_critical_enter/exit. MI code such as device drivers and spin mutexes use the MI wrappers. Note that since the MI wrappers store the state in the current thread, they do not have any return values or arguments. - mtx_intr_enable() is replaced with a constant CRITICAL_FORK which is assigned to curthread->td_savecrit during fork_exit().
Tested on: i386, alpha
|
88033 |
17-Dec-2001 |
orion |
Added a sysctl control variable "ac97rate" to allow manual tuning of the link rate - some ich motherboards overclock ac97 out of the box.
Will hopefully replace this with a callibration loop in time for 4.5R freeze.
Problem reported by Luigi Rizzo and fix derived from his code (put diff in ich.c rather than ac97.c).
MFC after: 3 days
|
88032 |
17-Dec-2001 |
orion |
Addition of sysctl variable to enable spdif. By default spdif is disabled.
MFC after: 3 days
|
87623 |
10-Dec-2001 |
guido |
Get rid of irritating (bogus) message: pcm0: ac97 codec failed to reset extended mode (0, got 80) This was due to not masking off the correct extended function bits in the read value from the extended status reg.
MFC after: 2 days
|
87599 |
10-Dec-2001 |
obrien |
Update to C99, s/__FUNCTION__/__func__/, also don't use ANSI string concatenation.
|
87393 |
05-Dec-2001 |
guido |
Fix resume for HP Omnibook 500's.
MFC after: 1 week
|
86870 |
24-Nov-2001 |
iwasaki |
Add suspend/resume support.
MFC after: 1 week
|
86795 |
22-Nov-2001 |
orion |
Fix typo introduced with last commit.
|
86708 |
21-Nov-2001 |
orion |
Correct extmode initialization.
MFC after: 3
|
86707 |
21-Nov-2001 |
orion |
Emit a warning if invalid mode passed to ac97_setextmode.
MFC after: 3 days
|
86706 |
21-Nov-2001 |
orion |
Set extmode according to extcaps. Fixes codec sample rate failures that causes noisy playback with rates other than 48k (reported by Olexander Kunytsa).
MFC after: 3 days
|
86409 |
15-Nov-2001 |
asmodai |
Remove clkrun_hack for ThinkPad 570.
PR: 28031 Submitted by: Tan Koan-Sin <freedom@csie.nctu.edu.tw> MFC after: 2 weeks
|
85968 |
03-Nov-2001 |
tanimura |
Avoid crash of minor numbers between /dev/midistat and /dev/dspr*.
|
85946 |
03-Nov-2001 |
peter |
Add Id for 82801CA (ICH3?). The ich driver seems to work fine on the laptop that had it.
|
85443 |
24-Oct-2001 |
jhb |
Change the module name from 'snd_sonicvibes' to 'snd_vibes' as that is the filename (thus the "old" module name) and the name used by snd_driver.ko.
|
85442 |
24-Oct-2001 |
jhb |
Change module name from 'snd_als' to 'snd_als4000' to match name in snd_driver.ko.
|
85441 |
24-Oct-2001 |
jhb |
Change the module name from 'via' to 'snd_via82c686' to match the KLD filename and in snd_driver.ko.
|
85440 |
24-Oct-2001 |
jhb |
Change the module name from 'snd_cmipci' to 'snd_cmi' to match the filename, module name in the loader, the dependency in snd_driver.ko, and to be consistent with other sound drivers.
|
85407 |
24-Oct-2001 |
cg |
fix SNDCTL_DSP_GETISPACE behaviour
|
85406 |
24-Oct-2001 |
cg |
improve recording behaviour
|
85318 |
22-Oct-2001 |
imp |
These two used sioreg.h as well. This is mildly bogus, but it is harder to fix right in a hurry.
This (almost) fixes LINT.
Submitted by: bde
|
84926 |
14-Oct-2001 |
scottl |
Turn on the hardware volume buttons that are present on most laptops with these chips. There is a new hint, hint.pcm.N.hwvol_config, that can be set to 1 or 0 to select which pins the buttons are connected to. I'm open to suggestions on where to document this. Also bump the number of playback channels up to 4.
MFC after: 3 days
|
84771 |
10-Oct-2001 |
orion |
use pcm_getbuffersize()
|
84731 |
09-Oct-2001 |
scottl |
Update to using the pcm_getbuffersize() method. Fix an off-by-one error in the saving of the dsp memory. Up the play channels to 2.
MFC after: 3 days
|
84660 |
08-Oct-2001 |
cg |
use pcm_getbuffersize() only creat a mic recording channel if the codec supports it
|
84659 |
08-Oct-2001 |
cg |
use pcm_getbuffersize() use seperate dma tags for buffers and control info
|
84658 |
08-Oct-2001 |
cg |
use pcm_getbuffersize()
|
84641 |
07-Oct-2001 |
cg |
* register the correct number of channels * include hw buffer size in sndstat info
|
84640 |
07-Oct-2001 |
cg |
use mixer channel numbers, not channel masks- this should fix sb/sbpro mixer problems.
|
84134 |
29-Sep-2001 |
greid |
Add another pnpid for the AWE64
PR: 30909 Submitted by: Kinji Itoh <kinji-i@gray.plala.or.jp> MFC after: 7 days
|
84112 |
29-Sep-2001 |
cg |
release isa dma channels on unload.
|
84111 |
29-Sep-2001 |
cg |
allow the hardware buffer size to be controlled with hints release isa dma channels on unload (ad1816, ess, sb8)
|
83805 |
21-Sep-2001 |
jhb |
Use the passed in thread to selrecord() instead of curthread.
|
83621 |
18-Sep-2001 |
cg |
when setting blocksize, fix blockcount to 2 to reduce latency with smaller block sizes.
|
83619 |
18-Sep-2001 |
cg |
make buffer size adjustable.
|
83617 |
18-Sep-2001 |
cg |
don't enable the mic record channel unless the codec supports it.
allow hardware buffer size to be specified using hints.
|
83614 |
18-Sep-2001 |
cg |
change tracking of channel counts.
add method for retrieving "buffersize" hints for pcm devices, adjusted for specified minimum, maximum and default values.
|
83613 |
18-Sep-2001 |
cg |
add a tunable/sysctl, hw.snd.targetirqrate, to modify the default target irq rate for apps that do not set a blocksize.
|
83612 |
18-Sep-2001 |
cg |
add a method for retrieving codec capabilities
|
83497 |
15-Sep-2001 |
tanimura |
Catch up to the last commit of KSE.
|
83476 |
14-Sep-2001 |
greid |
- Correctly increment the channel refcount in dsp_open() such that it is no longer possible to unload the driver module while sound is playing (which resulted in a panic). - Fix a similar problem with the sndstat device that I found while looking at the above. - Append a newline character to error messages in pcm_unregister()
Reviewed by: cg MFC after: 10 days
|
83366 |
12-Sep-2001 |
julian |
KSE Milestone 2 Note ALL MODULES MUST BE RECOMPILED make the kernel aware that there are smaller units of scheduling than the process. (but only allow one thread per process at this time). This is functionally equivalent to teh previousl -current except that there is a thread associated with each process.
Sorry john! (your next MFC will be a doosie!)
Reviewed by: peter@freebsd.org, dillon@freebsd.org
X-MFC after: ha ha ha ha
|
83214 |
08-Sep-2001 |
green |
Convert the CMedia driver to using a device mutex and INTR_MPSAFE.
|
83089 |
05-Sep-2001 |
cg |
add a method for recording of specific channels for devices with more than one hardware record channel. new devices, /dev/dsprX.Y where X is unit number and Y is channel index.
|
83081 |
05-Sep-2001 |
cg |
don't try to dump nonexistent data when recording
|
82837 |
03-Sep-2001 |
orion |
Return updated blocksize from setblocksize function.
|
82836 |
03-Sep-2001 |
orion |
Fix return value of cs4281chan_setblocksize.
|
82835 |
03-Sep-2001 |
orion |
Fix return value of svchan_setblocksize.
Expand probing range.
|
82834 |
03-Sep-2001 |
orion |
Fix return value of setblocksize functions. Recording is interspersed with silent intervals otherwise.
|
82492 |
29-Aug-2001 |
cg |
tweaks to reduce latency/pauses in output
|
82490 |
29-Aug-2001 |
greid |
Add support for the Acer Labs M5451 chip.
Submitted by: Mitsuru IWASAKI <iwasaki@jp.FreeBSD.org>
|
82479 |
29-Aug-2001 |
cg |
add some extra diagnostic info to sndstat output.
|
82478 |
29-Aug-2001 |
cg |
* change buffering method a bit * swap record/mic channels * initialise all channels * align dma buffers to 8 bytes
Submitted by: Katsurajima Naoto <raven@katsurajima.seya.yokohama.jp> (mostly)
|
82381 |
27-Aug-2001 |
cg |
now we have the rate feeder, we don't need to constrain the default channel speed. however, continue to do so for record channels until the feederchain builder is fixed.
|
82379 |
27-Aug-2001 |
cg |
MFS rev 1.8.2.8: release resources on detach
Submitted by: "Christopher N . Harrell" <cnh@netvmg.com>
|
82363 |
26-Aug-2001 |
greid |
Add support for the SiS 7018
PR: 30100 Submitted by: Ada Lim <adal@cse.unsw.edu.au>
|
82186 |
23-Aug-2001 |
cg |
the feederchain builder is currently broken for recording channels. disable it until it is fixed. this limits recording to native formats and speeds only.
|
82185 |
23-Aug-2001 |
cg |
handle bogus values passed to SOUND_PCM_WRITE_CHANNELS/SNDCTL_DSP_CHANNELS ioctls better- if 0 is passed, return the current setting. if 1 or 2 are passed, behave accordingly. treat values >2 as 2.
PR: kern/29964
|
82183 |
23-Aug-2001 |
cg |
make the 4dwave nx chip work Submitted by: Philippe Anel <xigh@noos.fr>
|
82182 |
23-Aug-2001 |
cg |
MFS: make SNDCTL_DSP_SETTRIGGER work
|
82181 |
23-Aug-2001 |
cg |
MFS: allow multiple opens of mixer devices
|
82180 |
23-Aug-2001 |
cg |
many changes:
* add new channels to the end of the list so channels used in order of addition
* de-globalise definition of struct snddev_info and provide accessor functions where necessary.
* move the $FreeBSD$ tag in each .c file into a macro and allow the /dev/sndstat handler to display these when set to maximum verbosity to aid debugging.
* allow each device to register its own sndstat handler to reduce the amount of groping sndstat must do in foreign structs.
|
81071 |
02-Aug-2001 |
greid |
Set up the via_chinfo structures properly so we write to the correct registers later on; this fixes the VIA82C686 sound problems recently reported by a number of people.
|
80004 |
19-Jul-2001 |
scottl |
Limit the device to only one playback channel until I can figure out why a) newpcm insists on using only the highest number channel available, and b) the maestro3 driver no longer likes anything above channel 0.
|
80003 |
19-Jul-2001 |
scottl |
Fix an off-by-one error in the dma tag. This was causing the VM system to freak out occasionally.
MFC after: 1 week
|
79498 |
09-Jul-2001 |
peter |
Somehow I missed this. Use INTR_TYPE_AV (high priority) instead of INTR_TYPE_TTY (lowest priority).
|
79148 |
03-Jul-2001 |
cg |
* simplify
* add support for mic record channel
* add support for setblocksize
* make mpsafe
* make getptr accurate
* reduce buffer size from 64k to 16k for better synchronisation
|
79141 |
03-Jul-2001 |
cg |
remove obsolete typedefs.
only define INTR_TYPE_AV if it is not already defined.
|
79116 |
02-Jul-2001 |
green |
Correct obviously wrong mistakes.
|
79099 |
02-Jul-2001 |
mjacob |
make it compile again in -current
|
79091 |
02-Jul-2001 |
green |
Detect the device on e.g. Dell OptiPlex GX110s.
|
79090 |
02-Jul-2001 |
green |
Make all this compile on 4.3, modulus sbuf.
|
79047 |
01-Jul-2001 |
cg |
intel ich/ich2 driver - this needs some work but is functional enough for the impatient.
Hardware... Provided by: ps Lost by: <censored> Found by: <censored> Not delivered by: Ashley Penney <ashp@unloved.org> Retrieved by: greid, Andrew McKay <andy@openirc.co.uk> Delivered by: Andrew McKay <andy@openirc.co.uk>
PR: kern/25507 Submitted by: Katsurajima Naoto <raven@katsurajima.seya.yokohama.jp>
|
79046 |
01-Jul-2001 |
cg |
add module version/dependancies
|
79045 |
01-Jul-2001 |
cg |
don't set a flag that is already set
|
79044 |
01-Jul-2001 |
cg |
set default 'monitor' volume (ac97 headphones) to 75%
|
78895 |
27-Jun-2001 |
cg |
don't flag the playback hardchan as busy on devices with only one of them.
if a device has vchans already but they are all busy, allocate another one at open() time, up to a maximum of hw.snd.maxvchans.
when creating/destroying vchans, don't make/remove a devnode for the first/last one as it replaces a hardchan.
|
78893 |
27-Jun-2001 |
cg |
tidy up/simplify dsp_clone()
|
78853 |
26-Jun-2001 |
cg |
add a tunable/sysctl, hw.snd.autovchans. if this is set to a value n where n > 0, n vchans will be assigned to any devices that subsequently register with a single playback channel.
|
78673 |
23-Jun-2001 |
cg |
the turtle beach santacruz implements ac97 eapd in an inverted sense - inform the ac97 code of this.
|
78670 |
23-Jun-2001 |
cg |
add defines and ifdefs so this code will compile on 4.x
add spls so this code will work on 4.x
|
78668 |
23-Jun-2001 |
cg |
move a private struct definition from ac97.h to ac97.c
add proper handling of cards which take eapd=1 to mean 'produce sound' instead of 'external amplifier power down'
|
78564 |
21-Jun-2001 |
greid |
Use the M_ZERO flag to malloc(9)
Reviewed by: cg MFC after: 1 week
|
78429 |
18-Jun-2001 |
cg |
stop csa from panicing in clkrun_hack() - we were using free'd memory
don't leak memory in clkrun_hack()
Submitted by: grog (partially)
|
78421 |
18-Jun-2001 |
tmm |
Call bus_teardown_intr when csa_attach fails after the interrupt has been set up.
PR: kern/28178 Reviewed by: cg MFC after: 2 weeks
|
78396 |
18-Jun-2001 |
cg |
use devclass_get_maxunit() correctly
|
78395 |
17-Jun-2001 |
cg |
revise dsp_clone() to return the first nonbusy channel instead of simply cycling channel numbers.
remove unused fields from struct snddev_info.
|
78394 |
17-Jun-2001 |
cg |
fix a potential panic in dsp_clone() if no pcm devices were detected
|
78366 |
16-Jun-2001 |
peter |
Use INTR_TYPE_AV for the interrupt handlers because: 1: most drivers are sensitive to timing, and 2: the handlers are MPSAFE and need a chance to get into the kernel before some other non-mpsafe handler blocks the ithread on Giant in shared irq cases.
Reviewed by: cg (in principle)
|
78362 |
16-Jun-2001 |
cg |
use a global devclass for all drivers - i'm not entirely sure why this worked before.
mixer, dsp and sndstat are seperate devices - give them their own cdevsws instead of demuxing requests sent to a single cdevsw.
use the si_drv1/si_drv2 fields in dev_t structures for holding information specific to an open instance of mixer/dsp.
nuke /dev/{dsp,dspW,audio}[0-9]* links - this functionality is now provided using cloning.
various locking fixes.
|
78214 |
14-Jun-2001 |
cg |
various locking fixes, rework open logic and channel registration
PR: kern/28084
|
78033 |
11-Jun-2001 |
cg |
identify es1371 revision a
|
78032 |
11-Jun-2001 |
cg |
get clkrun the right way around remove debug messages
|
77989 |
10-Jun-2001 |
des |
sbuf_new(9) now returns a struct sbuf * instead of an int. If the caller does not provide a struct sbuf, sbuf_new(9) will allocate one and return a pointer to it.
|
77907 |
08-Jun-2001 |
tanimura |
Catch up to csareg.h rev 1.3.
Forgotten by: cg
|
77900 |
08-Jun-2001 |
peter |
"Fix" the previous initial attempt at fixing TUNABLE_INT(). This time around, use a common function for looking up and extracting the tunables from the kernel environment. This saves duplicating the same function over and over again. This way typically has an overhead of 8 bytes + the path string, versus about 26 bytes + the path string.
|
77882 |
07-Jun-2001 |
cg |
lock sound device when adding/removing channels implement setblocksize for vchans don't panic when doing certain ioctls or aborting on a vchan xmms now works with vchans
|
77853 |
07-Jun-2001 |
peter |
Back out part of my previous commit. This was a last minute change and I botched testing. This is a perfect example of how NOT to do this sort of thing. :-(
|
77843 |
06-Jun-2001 |
peter |
Make the TUNABLE_*() macros look and behave more consistantly like the SYSCTL_*() macros. TUNABLE_INT_DECL() was an odd name because it didn't actually declare the int, which is what the name suggests it would do.
|
77726 |
04-Jun-2001 |
joerg |
Move out the files from src/sys/isa/ic/ to src/sys/dev/ic/, so they can be made userland-visible as <dev/ic/...>. Also, those files are not supposed to contain any bus-specific details at all, so placing them under .../isa/ has been a misnomer from the beginning.
The files in src/sys/dev/ic/ have been repo-copied from their old location (this commit is a forced null commit there to record this message).
|
77506 |
30-May-2001 |
cg |
fix typo
|
77505 |
30-May-2001 |
cg |
no longer used
|
77504 |
30-May-2001 |
cg |
update this driver to use new firmware and incorporate many fixes.
this works on cs4630 chips, and should implement the clkrun hack for thinkpads- this will display diagnostic messages when triggered until its correctness is established.
|
77495 |
30-May-2001 |
cg |
state the licencing terms for this file
Obtained From: Yamaha
|
77269 |
27-May-2001 |
cg |
beginnings of virtual playback channel support
instead of using two malloced arrays for storing channel lists, use an slist. convert the sndstat device to use sbufs and optionally provide more detail about channel state.
vchans are software mixed playback channels. they are not enabled by this commit. they use the feeder infrastructure to emulate normal playback channels in a manner transparent to applications, whilst providing as many channels are desired, especially suitable for devices with only one hardware playback channel. in the future they will provide additional features.
those wishing to test this functionality will need to add vchan.c to sys/conf/files and use 'sysctl -w hw.snd.pcm0.vchans' to enable it.
blocksize and auto-rate selection are not yet supported.
|
77266 |
27-May-2001 |
cg |
add a new method for retrieving feeder parameters
|
77265 |
27-May-2001 |
cg |
don't erase info in sndbuf_setup() set free'd pointers to NULL in sndbuf_free() add a new function
|
77181 |
25-May-2001 |
scottl |
Fix DMA on machines with more than 128MB.
Obtained from: cg MFC after: 5 days
|
76635 |
15-May-2001 |
greid |
Remove a bogus comment which I forgot to get rid of after testing
|
76370 |
08-May-2001 |
tanimura |
- Eliminate locks in functions called only during probe and attach. - Finish transmitting data to mpu when a buffer gets empty.
Submitted by: KUROSAWA Takahiro <fwkg7679@mb.infoweb.ne.jp>
|
76290 |
05-May-2001 |
cg |
this file has been unused for some time now
|
76166 |
01-May-2001 |
markm |
Undo part of the tangle of having sys/lock.h and sys/mutex.h included in other "system" header files.
Also help the deprecation of lockmgr.h by making it a sub-include of sys/lock.h and removing sys/lockmgr.h form kernel .c files.
Sort sys/*.h includes where possible in affected files.
OK'ed by: bde (with reservations)
|
76115 |
29-Apr-2001 |
cg |
don't unlock the channel in chn_read, msleep will do it for us.
PR: kern/26430
|
76086 |
27-Apr-2001 |
cg |
be more specific in identifying the chip type
|
75926 |
24-Apr-2001 |
cg |
get the parameters to pci_write_config the right way round. this may fix some non-functional cards/machines
|
75885 |
23-Apr-2001 |
orion |
Initial version of Avance Logic ALS4000 pcm driver.
|
75702 |
19-Apr-2001 |
orion |
Add power on to start sequence for 4.x kernels.
PR: kern/26255 Submitted by: WATANABE Kiyoshi <aab10490@pop16.odn.ne.jp>
|
75382 |
10-Apr-2001 |
greid |
Add another card to the list of Neomagic 256AV's which don't have AC97 codecs. Also, add some additional code to check for future cards without this feature - attempting to initialise them as AC97 cards will hang the machine.
PR: 26427 Reviewed by: cg
|
75381 |
10-Apr-2001 |
cg |
lock the mutex, not the softc pointer.
|
75355 |
09-Apr-2001 |
cg |
comment out a boot-time debug message
|
75326 |
08-Apr-2001 |
greid |
Reinitialise the DSP and mixer after a resume from suspend
PR: 22372 Submitted by: Hiroyuki Aizu <aizu@jaist.ac.jp> Reviewed by: cg
|
75320 |
08-Apr-2001 |
cg |
add a software sample rate conversion feeder. this uses linear interpolation for reasonable quality whilst not using too much cpu time.
|
75319 |
08-Apr-2001 |
cg |
minor tweaks in speed and format setting routines.
don't stop exploring the feeders if a feeder fails to initialise.
|
75318 |
08-Apr-2001 |
cg |
fix feeder initialisation methods to return correct result codes.
|
75317 |
08-Apr-2001 |
cg |
if the feeder chain returned no data, do not try to acquire the data.
|
75301 |
08-Apr-2001 |
greid |
Add yet another chip revision of the ES1371 which requires initialisation delays
PR: 26415 Submitted by: Jose M. Alcaide <jose@we.lc.ehu.es> Reviewed by: cg
|
75290 |
07-Apr-2001 |
orion |
Quieten when re-triggering.
|
75174 |
04-Apr-2001 |
orion |
Centralize DMA buffer configuration.
Simplify initialization and remove offending DMA channel resets there. The resets trash whatever is pointed to DMA registers, but at cmi_attach() time the DMA registers have not been initialized with valid addresses.
Reviewed by: Cameron Grant <gandalf@vilnya.demon.co.uk>
|
75113 |
03-Apr-2001 |
tanimura |
Again initialize a mutex well, then lock it.
PR: kern/26188 Submitted by: Jim Bloom <bloom@acm.org>
|
74994 |
29-Mar-2001 |
orion |
- Added suspend/resume support.
- Added 4 speaker enable to initialization sequence.
- Removed delays between register pokes which appear to aggravate a problem this card has sampling at 44.1kHz. With any form of delay, skew relative to system clock at 44.1kHz is usually in range 0-25% (now 0-3%). No other rates exhibit this problem.
- Changed structs cmi_* to sc_*.
Approved by: Cameron Grant <gandalf@vilnya.demon.co.uk>
|
74903 |
28-Mar-2001 |
jhb |
Switch from save/disable/restore_intr() to critical_enter/exit().
|
74810 |
26-Mar-2001 |
phk |
Send the remains (such as I have located) of "block major numbers" to the bit-bucket.
|
74797 |
25-Mar-2001 |
cg |
fix whitespace bogons
|
74789 |
25-Mar-2001 |
cg |
release resources if one of the speculative probes in opti_detect() fails, otherwise resource_list_alloc panics when opti_detect tries its next probe.
|
74788 |
25-Mar-2001 |
cg |
the softc is not a mutex, don't try to lock it.
Submitted by: George Reid <greid@ukug.uk.freebsd.org>
|
74763 |
24-Mar-2001 |
cg |
mega-commit.
this introduces a new buffering mechanism which results in dramatic simplification of the channel manager.
as several structures have changed, we take the opportunity to move their definitions into the source files where they are used, make them private and de-typedef them.
the sound drivers are updated to use snd_setup_intr instead of bus_setup_intr, and to comply with the de-typedefed structures.
the ac97, mixer and channel layers have been updated with finegrained locking, as have some drivers- not all though. the rest will follow soon.
|
74753 |
24-Mar-2001 |
cg |
when writing to one of the setup registers, a 32-bit write is required.
this apparently fixes problems initialising certain es1371/es1373/ct5880 revisions.
Confirmed working by: Richard J Kuhns <rjk@grauel.com> PR: i386/25944
|
74711 |
24-Mar-2001 |
cg |
add support for opti924 and opti930 chips
both should work in non-pnp mode, the 924 should also work in its rather braindead pnp mode- it will adopt port 0x530 unless given hints due to it starting up in soundblaster mode and thus not requesting a valid mss port address.
Submitted by: George Reid <greid@ukug.uk.freebsd.org>
|
74696 |
23-Mar-2001 |
cg |
* power up the external amplifier
* after chip reset, reapply power settings
|
74622 |
22-Mar-2001 |
cg |
add/correct a bunch of codec ids
Obtained from: linux, alsa, various datasheets
|
74571 |
21-Mar-2001 |
orion |
Change type of channel speed variable from "int" to "u_int32_t" to avoid overflow when scaling playback rate. Fixes 44.1k playback from being 48k (I am deaf to this difference...).
|
74565 |
21-Mar-2001 |
orion |
Change ordering of SPDIF register pokes. SPDIF enable needs to be the last poke in sequence. Enabling SPDIF was coercing output rate to 48K, not good for 44.1K tracks.
|
74429 |
19-Mar-2001 |
orion |
pcm driver for S3 Sonicvibes chipset.
Reviewed by: Cameron Grant
|
74395 |
17-Mar-2001 |
cg |
destroy child devices on detach to prevent ever-increasing numbers of pcm/midi devices trying to attach if the module is repeatedly loaded and unloaded.
|
74364 |
16-Mar-2001 |
cg |
fix a typo preventing the second dma channel being released use isa_dma_release when releasing dma channels
|
74363 |
16-Mar-2001 |
cg |
don't leak memory allocated for feeders at module unload kill the fake channel when unregistering
|
74239 |
14-Mar-2001 |
tanimura |
- Do not touch the Giant.
Requested by: jhb
- Initialize a mutex prior to locking it.
Spotted by: dcs
|
74216 |
13-Mar-2001 |
cg |
fix a panic triggerable by anyone with read/write access to the audio devices. opening /dev/{dsp,dspW,audio}0 and then opening a different device from that list and closing it resulted in a panic when any operation is performed on the first fd.
we prevent this happening by denying the second open unless it uses the same minor device as the first.
PR: kern/25519
|
73775 |
05-Mar-2001 |
cg |
increase timeouts for ad_wait_init()
|
73772 |
05-Mar-2001 |
cg |
MFS: don't ignore the result of mixer_init()
|
73770 |
05-Mar-2001 |
cg |
only mess with the power state on 5.x
|
73769 |
05-Mar-2001 |
cg |
MFS: add kobj.h to reduce diffs from -stable
|
73768 |
05-Mar-2001 |
cg |
MFS: don't pagefault in sndbuf_clear
|
73766 |
05-Mar-2001 |
cg |
MFS: #ifdef dynamic sysctl stuff to reduce diffs from -stable
|
73765 |
05-Mar-2001 |
cg |
MFS: add '# KOBJ' as the first line of each .m file to reduce diffs from -stable
|
73760 |
05-Mar-2001 |
cg |
enable per-device sysctls unconditionally
|
73757 |
05-Mar-2001 |
cg |
nuke the splstack stuff, snd_mtx* will now be no-ops on 4.x
|
73168 |
27-Feb-2001 |
scottl |
Don't re-init the mixer on resume. This keeps the channel volumes from being trashed when you suspend, though this may need to be revisited if we ever get suspend-to-disk implememted.
|
73151 |
27-Feb-2001 |
cg |
Add speaker volume adjusting support
Submitted by: Tai-hwa Liang <avatar@mmlab.cse.yzu.edu.tw> PR: i386/21452
|
73131 |
27-Feb-2001 |
cg |
add functions for sound drivers to use for locking and setting up interrupt handlers. these are not yet used, but will allow compatibility for driver modules from 5.x to 4.x.
|
73127 |
27-Feb-2001 |
cg |
MFS: 4.x/5.x compatibility #ifdefs
|
73126 |
27-Feb-2001 |
cg |
MFS: 4.x/5.x compatibility #defines
|
73072 |
26-Feb-2001 |
tanimura |
- Mutexify midi(4). The driver runs under the giant lock by default. If you ever want to run midi(4) out of the giant lock, uncomment MIDI_OUTOFGIANT in midi.h. Confirmed to work for csamidi with WITNESS and INVARIANTS.
- midi_info, midi_open and seq_info are now tailqs, allowing arbitrary numbers of devices to be configured.
- Do not send an active sensing message to reset midi modules.
- Clone /dev/sequencer*. /dev/sequencer0 and /dev/sequencer are generated upon initialization.
|
72661 |
18-Feb-2001 |
tanimura |
Encapselate midi_info, nmidi and nsynth into midi.c.
|
72535 |
16-Feb-2001 |
nyan |
Don't assume bus_space_handle_t == the start address of resource. Use rman_get_start() instead.
|
72458 |
13-Feb-2001 |
cg |
add a format feeder for conversion from alaw to ulaw and vice versa.
Submitted by: Orion Hodson <O.Hodson@cs.ucl.ac.uk>
|
72457 |
13-Feb-2001 |
cg |
make attempts to set unsupported speeds or formats non-sticky. this should fix problems with apps that probe for a variety of settings.
Submitted by: Orion Hodson <O.Hodson@cs.ucl.ac.uk>
|
72455 |
13-Feb-2001 |
cg |
add power management support.
Submitted by: Orion Hodson <O.Hodson@cs.ucl.ac.uk>
|
72136 |
07-Feb-2001 |
cg |
back out rev 1.49, looks like i committed it from the wrong tree.
include the changes 1.49 was supposed to have.
Noticed by: peter
|
72118 |
07-Feb-2001 |
cg |
conditionalize "hwptr went backwards" messages
modify default buffer size heuristic to not max out at 4k. mpg123 should now behave better under load.
|
72017 |
04-Feb-2001 |
cg |
add driver for CS4281 sound chips
Submitted by: Orion Hodson <O.Hodson@cs.ucl.ac.uk>
|
72016 |
04-Feb-2001 |
cg |
add driver for CMedia CMI8338/CMI8738 sound chips
Submitted by: Orion Hodson <O.Hodson@cs.ucl.ac.uk>
|
71932 |
02-Feb-2001 |
cg |
quieten the esscontrol device
|
71901 |
01-Feb-2001 |
scottl |
Driver for the ESS Maestro3 and Allegro sound chips. Note that due to the amount of GPL'd firmware in the driver, it will only be built as a module.
Approved by: cg
|
71506 |
24-Jan-2001 |
cg |
don't grope around inside snd_dbuf structures as they will change in future
|
71505 |
24-Jan-2001 |
cg |
fix certain cards failing to attach
Submitted by: Russell Cattelan <cattelan@thebarn.com>
|
71504 |
24-Jan-2001 |
cg |
fix blocksizing for playback, implement blocksizing for record
|
71503 |
24-Jan-2001 |
cg |
some cosmetics, changed channel setup and revamped irq handling - ignore repeated interrupts
|
71502 |
24-Jan-2001 |
cg |
prevent excessively small buffer sizes resulting in hundreds of irqs per second
|
71475 |
23-Jan-2001 |
jhb |
Tag unused functions with __unused.
|
70945 |
11-Jan-2001 |
jhb |
Catch up to the name changes in the hwvol API.
|
70944 |
11-Jan-2001 |
jhb |
- Move all of the hwvol functions into a mixer_hwvol_* namespace, and make all of the hwvol members of struct snd_mixer live in a hwvol_* namespace. - When changing the mixer device via the hwvol_mixer sysctl, reset the muted state so that a mute operation on a new device won't try to unmute the new device with the old device's saved volume. - When the volume is muted, if a down or up volume request is received, first restore the saved volume level and then adjust it.
Reviewed by: cg
|
70943 |
11-Jan-2001 |
jhb |
Woops, use the SYSCTL_STATIC_CHILDREN() macro instead of manually expanding it for _hw_snd.
|
70681 |
05-Jan-2001 |
jhb |
Call mixer_hwinit() when attaching.
|
70680 |
05-Jan-2001 |
jhb |
- Make the 'hwvol_mixer' and 'hwvol_step' variables be specific to a specific snd_mixer device rather than global across all mixers. - Add per-mixer mute status and saved mute_level so that the mixer_hwmute() function can now toggle the mute state when the mute button is pressed. - Create a dynamic sysctl tree hw.snd.pcmX when a pcm device is registered. - Move the hw.snd.hwvol_* sysctl's to hw.snd.pcmX.hwvol_* so that they are now properly device-specific. Eventually when the mixers become their own devices these sysctl's will move to live under a mixerX tree. - Change the interface of the hwvol_mixer sysctl so that it reports the name of the current mixer device instead of the number and is settable with the name instead of the number. - Add a new function mixer_hwinit() used to setup the dynamic sysctl's needed for the hwvol support that can be called by drivers that support hwvol.
Reviewed by: cg
|
70675 |
04-Jan-2001 |
jhb |
The 'maxchans' count is one more than the number of channels, so 'chancount' never got up to equaling 'maxchans'. As a result, pcm_makelinks() was never called, and one always had to set the sysctl to get the /dev/mixer and other symlinks generated in the DEVFS case. Instead, change the test in pcm_addchan() to call pcm_makelinks() after the first channel is initialized, since the aliases are linked to channel 0.
Reviewed by: cg
|
70668 |
04-Jan-2001 |
imp |
Add the ES1681, as found in my Digital HiNote UltraII. It works with the ES18xx DSP code and is now my MP3 juke box engine.
Reviewed by: cg
|
70620 |
03-Jan-2001 |
jhb |
Rename the loader tunable from hw.sndunit to hw.snd.unit.
Submitted by: cg
|
70619 |
03-Jan-2001 |
jhb |
- When acknowledging interrupts, write the value 0xff to the interrupt status register rather than 0. Without this, a single hardware volume event triggers an interrupt storm. - Implement hardware volume control for the Maestro chips. This version only handles the case where both channels are adjusted at the same time.
Reviewed by: cg
|
70618 |
03-Jan-2001 |
jhb |
Add a new API for soundcards that have hardware volume control: - The mixer_hwmute() function can be called when a soundcard receives a mute request. - The mixer_hwstep() function can be used to adjust the volume of one or both channels. - The 'hw.snd.hwvol_step' sysctl determines the amount that mixer_hwstep() adjusts the volume by on each call. - The 'hw.snd.hwvol_mixer' sysctl specifies the mixer device to adjust the volume on for both functions. The values used correspond to the SOUNDCARD_MIXER_* constants.
|
70617 |
03-Jan-2001 |
jhb |
Create a new sysctl node 'hw.snd' and move 'hw.sndunit' to 'hw.snd.unit'.
Reviewed by: cg
|
70392 |
27-Dec-2000 |
cg |
change irq handler slightly, get rid of superflous messages
|
70346 |
25-Dec-2000 |
cg |
move parametric defines and structure definitions from .h to .c
|
70345 |
25-Dec-2000 |
cg |
indent debugging printfs, change a couple of messages slightly
|
70343 |
25-Dec-2000 |
cg |
update to return correct blocksize- these chips have a fixed irq rate, so block size varies only with format and rate.
|
70325 |
24-Dec-2000 |
cg |
fairly substantial rewrite- seperate out play/record code, implement setblocksize, simplify resource allocation
|
70324 |
24-Dec-2000 |
cg |
compensate for broken codecs that return 0xffff on unimplemented registers instead of 0.
|
70321 |
23-Dec-2000 |
cg |
implement setblocksize properly
|
70300 |
23-Dec-2000 |
cg |
fix a panic if the requested blocksize was greater than the data rate, resulting in a divide by 0.
|
70298 |
23-Dec-2000 |
cg |
kill a warning
|
70297 |
23-Dec-2000 |
cg |
fix a typo
|
70291 |
23-Dec-2000 |
cg |
update code dealing with snd_dbuf objects to do so using a functional interface
modify chn_setblocksize() to pick a default soft-blocksize appropriate to the sample rate and format in use. it will aim for a power of two size small enough to generate block sizes of at most 20ms. it will also set the hard-blocksize taking into account rate/format conversions in use.
update drivers to implement setblocksize correctly: updated, tested: sb16, emu10k1, maestro, solo updated, untested: ad1816, ess, mss, sb8, csa not updated: ds1, es137x, fm801, neomagic, t4dwave, via82c686
i lack hardware to test: ad1816, csa, fm801, neomagic others will be updated/tested in the next few days.
|
70218 |
20-Dec-2000 |
cg |
fix a debugging leftover (min speed=48khz)
|
70134 |
18-Dec-2000 |
cg |
kobjify.
this gives us several benefits, including:
* easier extensibility- new optional methods can be added to ac97/mixer/channel classes without having to fixup every driver.
* forward compatibility for drivers, provided no new mandatory methods are added.
|
68996 |
21-Nov-2000 |
julian |
Bump the buffersize from 0x1000 to 0x4000. 0x1000 gets underflows on my dell 7500 whenever I moved the mouse. (reported as "hwptr went backwards...", with jumpy sound) Sounds great now....
|
68872 |
18-Nov-2000 |
cg |
do not blindly assume 8khz is supported on open(). try for 8khz but respect minspeed/maxspeed specified by the hw driver.
Submitted by: Andrew Gordon <arg@arg1.demon.co.uk>
|
68414 |
07-Nov-2000 |
cg |
adjust dma channels for vibra16x; recording should now work. full duplex does not work on vibra16x, so is disabled.
|
68413 |
07-Nov-2000 |
cg |
slight mods to isa dma and channel flushing code
|
68412 |
07-Nov-2000 |
cg |
if a channel dies, rejuvenate it on close()
|
68405 |
06-Nov-2000 |
cg |
add AFMT_8BIT for easier determination of formats
|
68376 |
06-Nov-2000 |
cg |
fix paste-o in mixer code - actually set right channel volume instead of doing the left channel twice.
|
68375 |
06-Nov-2000 |
cg |
fix es1370 mixer by adding reinit function to it's mixer function list.
|
68141 |
01-Nov-2000 |
cg |
kill old sb driver
|
68140 |
01-Nov-2000 |
cg |
switch over to new sb8/sb16 code
|
67806 |
28-Oct-2000 |
cg |
add commented-out dependancies on the new sb8 and sb16 drivers
|
67803 |
28-Oct-2000 |
cg |
split up sb16 and sb/sbpro drivers
we do not support sb versions <2.00, and the sb8 driver has not been tested yet.
these drivers are not yet enabled by default.
|
67738 |
27-Oct-2000 |
cg |
implement SNDCTL_DSP_POST
|
67708 |
27-Oct-2000 |
phk |
Convert all users of fldoff() to offsetof(). fldoff() is bad because it only takes a struct tag which makes it impossible to use unions, typedefs etc.
Define __offsetof() in <machine/ansi.h>
Define offsetof() in terms of __offsetof() in <stddef.h> and <sys/types.h>
Remove myriad of local offsetof() definitions.
Remove includes of <stddef.h> in kernel code.
NB: Kernelcode should *never* include from /usr/include !
Make <sys/queue.h> include <machine/ansi.h> to avoid polluting the API.
Deprecate <struct.h> with a warning. The warning turns into an error on 01-12-2000 and the file gets removed entirely on 01-01-2001.
Paritials reviews by: various. Significant brucifications by: bde
|
67652 |
26-Oct-2000 |
cg |
add reinit functions to mixers unstaticize chn_start() add reset/resetdone functions to channels
|
67651 |
26-Oct-2000 |
cg |
do not attach to soundblaster 1.x - they are unsupported
|
67598 |
26-Oct-2000 |
cg |
handle AFMT_QUERY right
|
67164 |
15-Oct-2000 |
phk |
Remove unneeded #include <machine/clock.h>
|
66883 |
09-Oct-2000 |
sobomax |
Reduce buffer size from 64K to 4K.
Approved by: cg
|
66427 |
28-Sep-2000 |
nsayer |
Add suspend/resume hooks.
Submitted by: sean@stat.duke.edu
|
66308 |
23-Sep-2000 |
cg |
prepare for adding a rate conversion feeder.
move format conversion feeders to feeder_fmt.c - no pertinent history so no repo-copy.
|
66307 |
23-Sep-2000 |
cg |
only probe mandatory channels on known bad codecs
|
66302 |
23-Sep-2000 |
jhb |
Enable the snd_maestro module and have the snd_driver module depend on it.
Approved by: cg
|
66029 |
18-Sep-2000 |
tanimura |
Since the unit number of a midi/sequencer device is expressed in 4 bits, we can configure only up to 16 units.
|
66013 |
17-Sep-2000 |
cg |
dynamify- probe codec for supported channels add channel mappings for mixer
|
66012 |
17-Sep-2000 |
cg |
fix warnings
|
65647 |
09-Sep-2000 |
cg |
disable 16bit mono support- this will be handled by software conversion to stereo as hardware mono is very noisy
|
65645 |
09-Sep-2000 |
cg |
add 16bit mono/stereo conversion feeder prefer feeder chains of length 1 over length 2
|
65644 |
09-Sep-2000 |
cg |
detach support remove un-needed setdir functions add bus_teardown_intr calls where necessary destroy our dma tags where necessary destroy ac97 before releasing resources
|
65543 |
06-Sep-2000 |
cg |
ess maestro driver - not enabled by default
Submitted by: Taku YAMAMOTO <taku@cent.saitama-u.ac.jp>
|
65490 |
05-Sep-2000 |
cg |
initial support for multiple ac97 codecs
|
65489 |
05-Sep-2000 |
cg |
add detach support
|
65488 |
05-Sep-2000 |
cg |
allow a null setdir implementation
|
65487 |
05-Sep-2000 |
cg |
be more verbose about failed unload attempts
|
65486 |
05-Sep-2000 |
cg |
tidy up a little, add a mask for 32bit formats
|
65390 |
03-Sep-2000 |
peter |
Fix warnings by moving static functions before they are used.
|
65382 |
02-Sep-2000 |
cg |
update for phk's last devfs commit
|
65374 |
02-Sep-2000 |
phk |
Avoid the modules madness I inadvertently introduced by making the cloning infrastructure standard in kern_conf. Modules are now the same with or without devfs support.
If you need to detect if devfs is present, in modules or elsewhere, check the integer variable "devfs_present".
This happily removes an ugly hack from kern/vfs_conf.c.
This forces a rename of the eventhandler and the standard clone helper function.
Include <sys/eventhandler.h> in <sys/conf.h>: it's a helper #include like <sys/queue.h>
Remove all #includes of opt_devfs.h they no longer matter.
|
65373 |
02-Sep-2000 |
cg |
add a missing return statement, doh.
|
65340 |
01-Sep-2000 |
cg |
change mixer api slightly change channel interface - kobj implementation coming soonish make pcm_makelinks not panic if modular add pcm_unregister()
these changes support newpcm kld unloading, but this is only implemented by ds1.c
|
65219 |
29-Aug-2000 |
cg |
remove stuff accidentally left in last commit
|
65218 |
29-Aug-2000 |
cg |
suspend/resume for ds1 driver
PR: misc/20891 Submitted by: Ira L. Cooper <ira@mit.edu>
|
65209 |
29-Aug-2000 |
cg |
make the test for hwptr going backwards more picky- now it only triggers if 15/16 of the buffer is skipped or we go backwards by < 1/16 of buffer size.
|
65207 |
29-Aug-2000 |
cg |
add devfs support. when devfs is enabled, sysctl hw.sndunit is used to set which sound unit the /dev/{dsp,mixer,dspW,audio} links point at. this can also be set from the loader.
|
65205 |
29-Aug-2000 |
cg |
add driver for forte-media fm801
PR: conf/20698 Submitted by: dimmy the wild <diwil@dataart.com>
|
65171 |
28-Aug-2000 |
dfr |
Fix disordered arguments to bus_space_barrier().
|
64881 |
20-Aug-2000 |
cg |
rework feeder sytem to allow feeders in klds
modify driver capability reporting format to list every audio format seperately- required for above and because we could not previously indicate that mono was unsupported.
there should be no functional impact.
|
64847 |
19-Aug-2000 |
cg |
fix SNDCTL_DSP_GETODELAY
PR: kern/20340 Submitted by: Takashi SHIRAI <shirai@nintendo.co.jp>
|
64846 |
19-Aug-2000 |
cg |
don't complain about bad irqs if using a shared irq
|
64845 |
19-Aug-2000 |
cg |
Recognize ESS 1888 in Dell Latitude XPi
PR: kern/18714 Submitted by: Sean O'Connell <sean@stat.Duke.EDU>
|
64623 |
13-Aug-2000 |
nsayer |
This patch appears to solve the problems with recording resulting in bogus hwptr warnings. Further comments sought on -hackers were not forthcoming. I can only hope that calling DELAY() like this doesn't cause any heartburn.
|
64466 |
09-Aug-2000 |
nsayer |
Missed a step when activating the solo driver.
|
64461 |
09-Aug-2000 |
cg |
change irq handling slightly
add another non-ac97 256av
|
64460 |
09-Aug-2000 |
cg |
MFS: module macro changes
|
64447 |
09-Aug-2000 |
nsayer |
A couple of cosmetic fixes, plus a biggie: When checking the DMA position, channel 1's dma position register must be quiescent. So the driver will spl, pause the DMA, delay a bit and hold as still as possible while snapping the picture.
I'm sure there HAS to be a better way to do this, but if there is, it's not documented.
So far as I can tell, this fixes recording, which means the Solo is open for business.
|
64442 |
09-Aug-2000 |
cg |
MFS: sync with peter's isadma fixup
|
64441 |
09-Aug-2000 |
cg |
activate via82c686 audio driver
|
64439 |
09-Aug-2000 |
cg |
new driver: via 82c686 chipset audio
not personally tested, but i'm assured it works
Submitted by: David Jones <dej@ox.org> PR: kern/20161
|
64438 |
09-Aug-2000 |
cg |
warn if hwptr goes backwards
|
64300 |
06-Aug-2000 |
cg |
fix the staticy sound issue
use timer instead of per-channel interrupts
do playback like the linux driver - may fix nmi-with-ecc issue
|
64164 |
02-Aug-2000 |
nsayer |
Simplex devices will always report EBUSY on 2nd (and subsequent) opens if the reference count is not decremented on close.
Note that this may result in the reference count being corrupted on full duplex devices (due to mismatching opens/closes), but the code doesn't use the reference count for anything on full duplex devices.
|
64163 |
02-Aug-2000 |
nsayer |
1. Increase the size of the DMA buffer.
2. Offer half duplex with both playback and record on channel 1 or full duplex with playback always on channel 2 as a compile-time option.
3. 16 bit record output is byte swapped for some dumb reason. Report the _BE AFMTs for recording.
|
64140 |
02-Aug-2000 |
nsayer |
Undo some of my own damage. With this patch, it appears that both recording and playback now work correctly.
|
64133 |
02-Aug-2000 |
nsayer |
Fix channel 1 playback the rest of the way. There are a couple of hiccups, but playback now proceeds mostly normally using both channel 1 and 2.
|
64122 |
02-Aug-2000 |
nsayer |
Get playback on channel 1 closer to working. 8 bit samples work. 16 bit samples have some sort of choppiness, the nature of which is not completely clear, but it clearly has something to do with dma buffer synchronization. But at least channel 1 makes noise now.
|
64119 |
02-Aug-2000 |
nsayer |
Fix channel 1, sort of. recording now generates IRQs and the output appears to be the correct length, but quality of output has not yet been tested. Also, full duplex audio (that is, playback on channel 1) does not yet work. Two constants and I am there!
Obtained from: major hints from ALSA
|
64083 |
01-Aug-2000 |
nsayer |
Reverse the sense of the signed/unsigned formatting bit.
This dramatically cleans up playback quality, at least with mxaudio.
|
64064 |
31-Jul-2000 |
cg |
almost-there ess solo-1 driver, committed so people can tell me why it doesn't generate irqs.
|
64032 |
30-Jul-2000 |
cg |
add suspend/resume for yamaha chips
Submitted by: Ira L Cooper <ira@MIT.EDU>
|
64030 |
30-Jul-2000 |
cg |
fix a potential local DoS attack
|
64029 |
30-Jul-2000 |
cg |
fix a bug where opening /dev/dsp twice resulted in it being busy until reboot
|
64015 |
30-Jul-2000 |
cg |
do the ac97 init delay for all chips and increase it to 500ms
|
63469 |
18-Jul-2000 |
cg |
make this file suitable for 4-stable as well as 5-current
|
63461 |
18-Jul-2000 |
dick |
PR:19945 Reviewed by:tanimura Fix boot panic introduced by newmidi code.
|
62947 |
11-Jul-2000 |
tanimura |
Finally merge newmidi. (I had been busy for my own research activity until the last weekend)
Supported devices:
SB Midi Port (sbc + midi) SB OPL3 (sbc + midi) 16550 UART (midi, needs a trick in your hint) CS461x Midi Port (csa + midi)
OSS-compatible sequencer (seq)
Supported playing software:
playmidi (We definitely need more)
Notes:
/dev/midistat now reports installed midi drivers. /dev/sndstat reports only pcm drivers. We need the new name(pcmstat?).
EMU8000(SB AWE) does not sound yet but does get probed so that the OPL3 synth on an AWE card works.
TODO:
MSS/PCI bridge drivers Midi-tty interface to support general serial devices Modules
|
62484 |
03-Jul-2000 |
cg |
do-nothing module that depends on all sound drivers
|
62483 |
03-Jul-2000 |
cg |
add module metadata. this is a hack, sound drivers will eventually present a bus to which pcm, mixer, etc will attach.
|
62412 |
02-Jul-2000 |
roberto |
This is the patch to make my soundcard, a Creative Ensoniq AudioPCI (an es1371 chip, device id 0x58801274 rev 0x02).
Submitted by: Kenneth Wayne Culver <culverk@wam.umd.edu>
|
61887 |
20-Jun-2000 |
cg |
add record channel irq timeouts too
|
61886 |
20-Jun-2000 |
cg |
fix a bug where opening for write would not fail if channel allocation failed
when playing, if we stall for 1s with no data advancing, abort and mark the channel dead - fail all future operations
|
61827 |
19-Jun-2000 |
cg |
make mixer reads return the value written instead of the value set
people seem to want this even though it breaks oss spec compliance
|
61753 |
17-Jun-2000 |
cg |
replace a line erroneously removed in 1.28, should fix xmms make buf_clear handle unaligned lengths
|
61643 |
13-Jun-2000 |
cg |
add alpha-quality recording code and handle pci error interrupts - this may prevent the card generating an nmi on ecc systems. for now a message is printed on every pci error and it seems every time we start playng we get one
|
61642 |
13-Jun-2000 |
cg |
handle closing differently - should fix the end-of-sample cutoff bug
|
61569 |
12-Jun-2000 |
brian |
Add (another) PnP entry for the ESS ES1869 (Compaq OEM)
Submitted by: mdharnois@home.com PR: 19206
|
61479 |
10-Jun-2000 |
peter |
Untangle some #include between gusc.c/mss.c - gusc.c could create an attachment node for something that may not have been compiled in.
|
61478 |
10-Jun-2000 |
peter |
Unused include: #include "sbc.h"
|
61476 |
10-Jun-2000 |
peter |
Unused includes: #include "pci.h", #include "pcm.h"
|
61456 |
09-Jun-2000 |
dan |
Increase delay from 10mu to 1000mu when reading play control size. This allows the YMF744 to initialize properly.
|
61361 |
07-Jun-2000 |
cg |
handle duplex properly in the AIOGCAP ioctl - this may (partially?) fix rat
|
61347 |
06-Jun-2000 |
cg |
this driver does not support the cs4281 and probably never will, different code will be required
|
61346 |
06-Jun-2000 |
cg |
support recording
|
61345 |
06-Jun-2000 |
cg |
improve recording
|
61344 |
06-Jun-2000 |
cg |
don't panic if we try to add a channel we said we wouldn't
|
61146 |
01-Jun-2000 |
peter |
With this evil hack the DS1 driver works on our Intel desktop motherboards that use YMF740's. It has a strange subvendor and subdevice ID and requires a disturbingly long delay after the ac97 codec init. Cameron hasn't had this driver tested on another 740 yet, so we don't know if this is a quirk of all 740's, or if its just something about the codec that Intel used.
|
61144 |
01-Jun-2000 |
cg |
if a device has no play or no record channels, set its simplex flag.
|
61142 |
01-Jun-2000 |
cg |
if we get bad values for playctrlsize, the firmware may not have initialised yet so retry.
|
61133 |
31-May-2000 |
cg |
add a bit more diagnostic info for the bus_dmamap_load failure case
|
61108 |
31-May-2000 |
cg |
yamaha ds1/ds1e pci sound driver - work in progress, mixer and playback only.
tested on ymf724f only.
conf/files entry is commented out, enable it manually to test this code and let me know results.
|
61061 |
29-May-2000 |
kuriyama |
Add more ESS1869 PnP Sound Card PnPid.
Submitted by: MIHIRA Yoshiro PR: kern/17349
|
61031 |
28-May-2000 |
peter |
Use the correct name for a mapping register, not the old FreeBSD 2.x compatability name.
|
60976 |
27-May-2000 |
cg |
fix the return value of the SOUND_PCM_WRITE_CHANNELS ioctl
re-enable old pcm ioctls
|
60961 |
26-May-2000 |
cg |
move various fields from pcm_channel to snd_dbuf
improve chn_read code- don't stop/restart on overrun, just dump data
more error checking on ioctls
|
60960 |
26-May-2000 |
cg |
if we have a codec init routine, fail the attach if init fails
|
60958 |
26-May-2000 |
cg |
handle emulated dma reads
don't try to get sample size from snd_dbuf
|
60938 |
26-May-2000 |
jake |
Back out the previous change to the queue(3) interface. It was not discussed and should probably not happen.
Requested by: msmith and others
|
60833 |
23-May-2000 |
jake |
Change the way that the queue(3) structures are declared; don't assume that the type argument to *_HEAD and *_ENTRY is a struct.
Suggested by: phk Reviewed by: phk Approved by: mdodd
|
60732 |
20-May-2000 |
nyan |
Oops, rman_get_bushandle() should be converted to rman_get_virtual() if resources are mapped to memory.
|
60711 |
19-May-2000 |
nyan |
Supported the mss on PC-98 and Sound Blaster 98.
Submitted by: "T.Yamaoka" <taka@windows.squares.net>
|
60571 |
15-May-2000 |
cg |
fix a speed bug that nobody noticed
|
60041 |
05-May-2000 |
phk |
Separate the struct bio related stuff out of <sys/buf.h> into <sys/bio.h>.
<sys/bio.h> is now a prerequisite for <sys/buf.h> but it shall not be made a nested include according to bdes teachings on the subject of nested includes.
Diskdrivers and similar stuff below specfs::strategy() should no longer need to include <sys/buf.> unless they need caching of data.
Still a few bogus uses of struct buf to track down.
Repocopy by: peter
|
59994 |
04-May-2000 |
cg |
fix the 100% cpu in xmms issue
|
59760 |
29-Apr-2000 |
phk |
Remove unneeded #include <sys/kernel.h>
|
59665 |
26-Apr-2000 |
cg |
duh, i forgot to change a bitmask, sorry alexander
Submitted by: Alexander Matey <matey@cis.ohio-state.edu>
|
59660 |
26-Apr-2000 |
cg |
fix minor numbers for multi-channel devices
Submitted by: Alexander Matey <matey@cis.ohio-state.edu>
|
59658 |
26-Apr-2000 |
cg |
repo-copied to sys/gnu/dev/sound/pci/emu10k1.h
|
59657 |
26-Apr-2000 |
cg |
update for new location of emu10k1.h under sys/gnu
|
59577 |
23-Apr-2000 |
cg |
implement settrigger according to spec
fixes for non-blocking mode
|
59574 |
23-Apr-2000 |
cg |
maybe make cmi8330 work - no feedback yet
implement bass/treble for yamaha opl-sax chips
|
59375 |
18-Apr-2000 |
cg |
try the fix from creative bugzilla for nmi problem
Obtained from: creative labs bugzilla
|
59324 |
17-Apr-2000 |
cg |
more mmap fixes
|
59323 |
17-Apr-2000 |
cg |
make drivers start at beginning of buffer when triggered - improves mmap.
not all tested.
not sure about aureal.c or csapcm.c
|
59246 |
15-Apr-2000 |
cg |
make mmap sort-of work. there seem to be interactions with certain hw drivers, so still work in progress.
do various mmap-related ioctls right.
improve blocksize control.
bits of cleanup.
|
59030 |
05-Apr-2000 |
cg |
make poll() dtrt, previously when playing it would trigger if there was less than 1 byte ready to play instead of room for at least 1 byte to be written. similarly for recording.
|
59023 |
05-Apr-2000 |
cg |
decrease buffer size to 4k use a seperate channel for generating irqs so we get a buffer-half-empty interrupt, prevents repeating on underflow
|
59021 |
05-Apr-2000 |
cg |
allow /dev/dsp to be opened seperately for reading and writing.
|
59020 |
05-Apr-2000 |
cg |
try increasing 2ndbuffer size to 64k
|
59019 |
05-Apr-2000 |
cg |
move buffer size definition to .c file for consistency, and reduce it to 4k
|
58994 |
04-Apr-2000 |
cg |
make the click on starting output go away
|
58958 |
03-Apr-2000 |
cg |
fix missing defines and prototype for emu_vdump()
|
58919 |
02-Apr-2000 |
cg |
unfinished sblive driver, playback/mixer only for now - not enabled in conf/files
i don't seem to be clearing the cache right resulting in a short initial burst of noise, despite doing the same as creative and alsa. i'm committing now so more eyes can pore over the code.
|
58905 |
01-Apr-2000 |
cg |
fail in attach if we seem to have no ac97 codec
|
58903 |
01-Apr-2000 |
cg |
bump the buffer size from 4k to 16k. should improve performance under load.
|
58756 |
28-Mar-2000 |
cg |
split up ess and sb code rewrite ess mixer to use native registers rewrite play/rec code to use more accurate timer when available add code to use audio2 for playback, but disable it as no irqs are generated
|
58521 |
24-Mar-2000 |
cg |
don't check extended features on codecs known to hang. should fix neomagic problems.
|
58387 |
20-Mar-2000 |
cg |
toast warnings on i386
|
58385 |
20-Mar-2000 |
cg |
make als120 cards which report dsp version 3.x whilst only supporting 4.x and *not* 3.x commands work
|
58384 |
20-Mar-2000 |
cg |
update the ac97 layer: * add a callback for initialising the mixer interface * support ac97 2.1 variable rate audio feature
fix ac97-using drivers for the above
add suspend/resume support for neomagic
|
58383 |
20-Mar-2000 |
cg |
add a function to reinitialize the mixer, to be called by drivers on resuming after suspend
|
58117 |
15-Mar-2000 |
n_hibma |
Spelling mistake
|
57973 |
13-Mar-2000 |
phk |
Stop isadma from abusing the B_READ, B_RAW and B_WRITE flags.
Define ISADMA_{READ,WRITE,RAW} macros with the same numeric values as the B_{READ,WRITE,RAW} and use them instead throughout.
|
57838 |
09-Mar-2000 |
tanimura |
Add the logical ID of Avance Logic ALS100. The vendor ID is also checked, which was introduced in 1.18.
PR: kern/16487 Submitted by: Oliver Fromme <oliver.fromme@heim3.tu-clausthal.de> Approved by: jkh
|
57770 |
05-Mar-2000 |
cg |
Partial fix: the following patch correctly configures the card for dual channel DMA. The problem was that the SDC bit (0x04) can only be set in the MCE state.
PR: kern/16587 Submitted by: Matthew Reimer <mreimer@vpop.net> Approved by: jkh (in person)
|
57209 |
14-Feb-2000 |
cg |
fix ess end-of-buffer repeating
Submitted by: nhibma Approved by: jkh
|
56876 |
29-Jan-2000 |
peter |
Tidy up stray or bogus #if NFOO > 0 and #include "foo.h".
|
56875 |
29-Jan-2000 |
peter |
Remove a rather bizzare set of #ifdefs and #defines that all worked out to be a NO-OP.
|
56774 |
29-Jan-2000 |
cg |
differentiate cmi8330 and als100 pnp cards based on their vendor id. this is a kludge for 4.0
|
56721 |
28-Jan-2000 |
gallatin |
Add support for detection of the ESS 1688 found on my Dell Latitude LM
|
56650 |
26-Jan-2000 |
cg |
handle simplex devices right
|
56449 |
23-Jan-2000 |
peter |
Note the PnP id's for the NMX2210 next to the id's where they are used. The pnpbios doesn't supply a description in the case we've seen so supply one.
|
56427 |
23-Jan-2000 |
tanimura |
The pointer of the serial FIFO in the DSP seems to make an error upon starting/stopping the DSP. Correct the pointer in addition to clearing the FIFO.
|
56253 |
18-Jan-2000 |
cg |
kludge to fix the end-of-sample repeating bug. i don't know why it happens; none of my hw does it, but this should fix it for now.
Tested by: wpaul
|
56249 |
18-Jan-2000 |
cg |
update ac97 layer to use device_printf when printing messages
|
56154 |
17-Jan-2000 |
peter |
Some SB128's (ES1371) have a different PCI vendor id. Vendor == 0x3274 instead of the normal 0x1274.
Tested by: des
|
56110 |
16-Jan-2000 |
cg |
fix missing \n in sndstat output
|
56108 |
16-Jan-2000 |
cg |
oops, best play format was set to unsigned 16 bit instead of signed 16 bit stereo. remenant from testing.
|
55879 |
13-Jan-2000 |
cg |
attach to non-ac97 neomagic chips and hope that ac97 ones do not have the same pnpbios id
|
55878 |
13-Jan-2000 |
cg |
be less verbose
|
55848 |
12-Jan-2000 |
deischen |
Add support for detection of the ESS 1878 chip.
|
55802 |
11-Jan-2000 |
cg |
exclude chips with subdevices specified on a list of non-ac97 chips
|
55721 |
10-Jan-2000 |
cg |
make dsp_read() assert that it has a read channel, not a write channel
Submitted by: green
|
55713 |
10-Jan-2000 |
cg |
don't complain about bad intrs unless we get 1000 of them consecutively whilst we are playing or recording. since we should irq ~20 times/sec when active, this should never trigger. in theory. if it never does trigger, the check will be removed.
|
55706 |
10-Jan-2000 |
cg |
general tidyup
|
55700 |
10-Jan-2000 |
cg |
return the sample rate set instead of 0. oops. mpg123 should now work.
|
55646 |
09-Jan-2000 |
cg |
fix the premature termination of playback
|
55639 |
09-Jan-2000 |
cg |
driver for neomagic 256av and 256zx
Obtained from: anonymous author, heavily derived
|
55638 |
09-Jan-2000 |
cg |
modify sndstat output
|
55494 |
06-Jan-2000 |
cg |
allow mixer-only devices - ie, devices with no play/rec channels
|
55483 |
05-Jan-2000 |
cg |
don't panic if channel init fails, report and fail gracefully
|
55428 |
05-Jan-2000 |
cg |
argh, forgot the bus_dma_tag_creates. also, panic if channel init fails instead of derefing null.
|
55426 |
05-Jan-2000 |
cg |
set up the pci regs properly for busmastering. this makes the card work on my smp box.
|
55424 |
05-Jan-2000 |
cg |
allocate isa bounce buffers of the right size for ess/mss cards, fixes panics reported
|
55321 |
03-Jan-2000 |
tanimura |
Do not start/stop DMA transfer if it is already started/stopped.
|
55320 |
03-Jan-2000 |
tanimura |
- Handle an interrupt for csa primarily in the bridge driver, then invoke the children. As the value of HISR can be read only once, pass the HISR to the children via struct csa_bridgeinfo, stored in the ivars of them. - Clear the contents of serial FIFO upon stopping the DMA for playing. This may eliminate buzz on playing. Experimental.
|
55306 |
01-Jan-2000 |
cg |
revert buffer size to 64k
|
55288 |
01-Jan-2000 |
tanimura |
Correct the delay durations as in the sample sources provided by Crystal Semiconductor.
|
55279 |
30-Dec-1999 |
peter |
Attach the CS4610 PCI / CS4239 setup in isa compatability mode as CSC0100. The PCI component is non-AC97 apparently.
PR: 15632 Submitted by: gibbs
|
55254 |
30-Dec-1999 |
cg |
make ess cards use a 64k buffer again, by implementing esschan_init()
|
55209 |
29-Dec-1999 |
cg |
make es1373 chips with ac97 2.1 work on troublesome motherboards
Submitted by: Russell Cattelan <cattelan@thebarn.com>
|
55205 |
29-Dec-1999 |
peter |
Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" is an application space macro and the applications are supposed to be free to use it as they please (but cannot). This is consistant with the other BSD's who made this change quite some time ago. More commits to come.
|
55204 |
29-Dec-1999 |
cg |
- latest 2ndbuffer patch - make chn_setdir work for rec on isa cards - note: es1371 does not irq in smp
Submitted by: tanimura
|
55109 |
26-Dec-1999 |
peter |
Fix a mistake in the PNP EISA-encoding of the Avance ALS120 id.
Submitted by: Bryan Liesner <bleez@netaxs.com>
|
55092 |
24-Dec-1999 |
dfr |
Don't pass u_int32_t pointers to BUS_READ_IVAR since it tends to make alphas panic.
|
54962 |
21-Dec-1999 |
peter |
Collapse a bunch of unused MD_CS42nn tags into a single one. This saves going to a lot of trouble to identify it and set the tag and then not use it. Convert the pnp id matching to the preferred table based system. @@@0001 (CMI8330 ldn 0) is a mss, not a SB.
|
54961 |
21-Dec-1999 |
peter |
Tidy up a few loose ends, including adding the pnp tags in comments. Remove @@@0001 - it's an MSS, not a SB, at least according to the original pre-sbc code and according to a pnpinfo report that Cameron has.
|
54960 |
21-Dec-1999 |
peter |
Remove #if NISA > 0 - this is best done by the configuration process. It had a heap of unreferenced stuff if there was no isa configured in the system.
|
54942 |
21-Dec-1999 |
cg |
minor cleanup
Parts Submitted by: Ville-Pertti Keinonen <will@ztango.com>
|
54930 |
21-Dec-1999 |
cg |
don't use the sbpro mic vol register during init on ess cards; it causes feedback and we use the native one elsewhere.
|
54888 |
20-Dec-1999 |
cg |
minor cosmetics
|
54887 |
20-Dec-1999 |
cg |
make marcel's onboard ess1888 work
Submitted by: marcel
|
54857 |
20-Dec-1999 |
cg |
allow (broken) apps to use mixer ioctls on dsp devices. eg: vmware
Submitted by: "Vladimir N. Silyaev" <vsilyaev@mindspring.com>
|
54849 |
19-Dec-1999 |
cg |
stop playing if we underrun; if there is more data to come, the next write will restart
|
54846 |
19-Dec-1999 |
cg |
note to self: vibra16c is not vibra16x
|
54845 |
19-Dec-1999 |
cg |
fix for ess cards to use auto-init dma mode, so they work
|
54832 |
19-Dec-1999 |
cg |
remove unused mixer stuff
|
54831 |
19-Dec-1999 |
cg |
general tidyup
|
54826 |
19-Dec-1999 |
cg |
move make_dev operations for audio channels to pcm_addchan(). in theory, with modifications to MAKEDEV this will allow use of multiple output streams on cards supporting it, eg trident 4dwave.
|
54825 |
19-Dec-1999 |
cg |
fix a bug in sndstat output, tidy up a few bits
|
54824 |
19-Dec-1999 |
cg |
generalise the code a bit, and add an irq handler so that the child devices can share the irq
|
54823 |
19-Dec-1999 |
cg |
remove the restriction limiting the vibra16x to 8 bit
Noticed By: Clive Lin <clive@CirX.ORG>
|
54793 |
18-Dec-1999 |
cg |
make vibra16x cards announce what they are in /dev/sndstat
|
54792 |
18-Dec-1999 |
cg |
fix the buffer repetition on ^c problem
|
54791 |
18-Dec-1999 |
cg |
make the vibra16x work for playback at least, record is untested
|
54780 |
18-Dec-1999 |
tanimura |
Correct the logical ID of Avance Asound 110.
Submitted by: Bryan Liesner <bleez@netaxs.com>
|
54535 |
13-Dec-1999 |
cg |
more dma underrun fixes, using a per-channel 2nd buffer
Submitted by: tanimura
|
54462 |
12-Dec-1999 |
cg |
make sb dependant on sbc add support for non-pnp cards to sbc move card identification to sbc channel-swapping code is in sb now instead of dsp vibra16x support is still broken, but will be fixed soon
note: sbc is now compulsory for sb cards
for pnp cards use: device sbc0
for non-pnp cards eg: device sbc0 at isa? port 0x240 irq 5 drq 3 flags 0x15 (hints as oldpcm)
both in addition to: device pcm0
Reviewed by: tanimura,dfr Said he liked it: peter
|
54460 |
12-Dec-1999 |
cg |
move channel-swapping support to the hardware driver since it knows the card state best
|
54459 |
12-Dec-1999 |
cg |
increase buffer size, reduce number of channels allocated since we only use 1 at the moment
|
54377 |
10-Dec-1999 |
tanimura |
Make the origins clear.
Pointed out by: Tatoku Ogaito <tacha@trap.fukui-med.ac.jp>
|
54237 |
07-Dec-1999 |
billf |
Reckognize the 'Avance Asound 100'
Submitted by: Oliver Fromme <olli@dorifer.heim3.tu-clausthal.de>
|
54212 |
06-Dec-1999 |
peter |
Update for pnp adjustments regarding NPNP.
Also, optimize out a mess of #if's that were duplicating work already done by config(8). For example, if a file is marked as "dev/sound/pci/foo.c optional pcm pci" then it's only added if pcm *and* pci are present, so #if NPCM > 0 and #if NPCI > 0 are totally redundant. A bit more work is still needed.
Discussed with: cg (a few weeks ago)
|
54165 |
05-Dec-1999 |
cg |
conditionalise some warning messages
Submitted by: Vladimir N.Silyaev <vns@delta.odessa.ua>
|
54155 |
05-Dec-1999 |
cg |
fix dma underrun issues mutate some panics to kasserts add more spl protection
PR: kern/14990 Partially Submitted by: Vladimir N.Silyaev <vns@delta.odessa.ua> Reviewed by: dfr
|
54119 |
04-Dec-1999 |
tanimura |
Add the logical ID of ViBRA16CL PNP on Micron Millenium II motherboards.
PR: kern/15243 Submitted by: Steven G. Kargl <kargl@troutmask.apl.washington.edu>
|
54118 |
04-Dec-1999 |
tanimura |
Call ISA_PNP_PROBE() to probe PnP cards, rather than match the vendor and logical IDs directly.
Submitted by: peter Tested by: Timo Geusch <freebsd@timog.prestel.co.uk>
|
54073 |
03-Dec-1999 |
mdodd |
Remove the 'ivars' arguement to device_add_child() and device_add_child_ordered(). 'ivars' may now be set using the device_set_ivars() function.
This makes it easier for us to change how arbitrary data structures are associated with a device_t. Eventually we won't be modifying device_t to add additional pointers for ivars, softc data etc.
Despite my best efforts I've probably forgotten something so let me know if this breaks anything. I've been running with this change for months and its been quite involved actually isolating all the changes from the rest of the local changes in my tree.
Reviewed by: peter, dfr
|
53947 |
30-Nov-1999 |
dfr |
Add ESS1879.
Submitted by: MIHIRA Sanpei Yoshiro <sanpei@sanpei.org>
|
53901 |
29-Nov-1999 |
alfred |
tanimura implemented SNDCTL_DSP_GETODELAY for pcm.
Submitted by: tanimura
|
53763 |
27-Nov-1999 |
dfr |
Disable on x86 since it conflicts with PNPBIOS.
|
53740 |
27-Nov-1999 |
tanimura |
Add another vendor ID(CTL0048) for SB32 PnP.
Submitted by: Charles Anderson <caa@columbus.rr.com>
|
53718 |
26-Nov-1999 |
dcs |
Add id for ESS 1869 OEM to Compaq on Presario 1621.
|
53682 |
25-Nov-1999 |
tanimura |
Attach the resources as given in the configuration in a proper way for non-PnP cards.
Noticed by: Pascal Hofstee <daeron@shadowmere.student.utwente.nl>
|
53603 |
22-Nov-1999 |
cg |
fix panic for large writes in non-blocking mode
|
53597 |
22-Nov-1999 |
cg |
fix mixer to return properly scaled values
|
53573 |
22-Nov-1999 |
tanimura |
Comment out the newmidi stuff.
|
53553 |
22-Nov-1999 |
tanimura |
- Introduce the bridge drivers for Sound Blaser, GUS and Crystal Semiconductor CS461x/428x. - Add support for GUS and CS461x/428x pcm.
Bridges reviewed by: dfr, cg GUS non-PnP support submitted by: Ville-Pertti Keinonen <will@iki.fi> GUS PnP support tested by: Michiru Saito <mich@mtci.ne.jp>
|
53512 |
21-Nov-1999 |
cg |
fix for -fno-builtin
PR: kern/14278
|
53465 |
20-Nov-1999 |
cg |
repo-copied to make way for newmidi, this commit updates include paths
|
53413 |
19-Nov-1999 |
roger |
Rename es1370.c to es137x.c and merge in the patches to support ES1371 and ES1373 PCI Audio Sound Chips. The 1371 and 1373 can be found on newer CreativeLabs/Ensoniq sound cards such as the SoundBlaster PCI 16,64 and 128.
Submitted by: Russell Cattelan <cattelan@thebarn.com> Obtained from: Parts obtained from linux, but rewritten by Russell
|
53205 |
15-Nov-1999 |
cg |
this is a full fix for writes not aligned to the sample size selected. should be a no-op in most cases.
|
53203 |
15-Nov-1999 |
cg |
set default ogain to 50 since some sb cards produce no sound at 0
|
53185 |
15-Nov-1999 |
peter |
Fix a typo in the DRIVER_MODULE() declaration which caused a collision with the real mss module.
|
53184 |
15-Nov-1999 |
peter |
Remove duplicate entry for ADS7180 - it's meant to be handled by the forked-off ad1816 driver.
|
53180 |
15-Nov-1999 |
dfr |
Remove some printfs and make it slightly more paranoid about accepting that an ess1888 is present.
|
53126 |
13-Nov-1999 |
dfr |
* Ignore the wierd fakechan workarounds for simplex in dsp_ioctl(). Without this, ioctl commands for setting formats and speeds were essentially ignored for simplex devices until the application actually performed a read or write. * Make sure that both channels are set in the SB mixer code and provide a mixer table specifically for the ess18xx which supports the extended accuracy available on this part. * Fix a stupid bug in ess_format() which ignored the passed-in format and changed the hardware based on the value which was set last time. This meant that the hardware setting was often not set correctly at all. * Add a custom identify driver for the ESS1888 which automagically detects and adds the device in a pseudo-PnP way. This driver also emits the magic sequence which enables the sound hardware after a hard reset, allowing it to work correctly for the sound hardware of a PWS 433au (and probably all other PWS class alpha machines).
With these changes, I was able to play back simple sounds on my 433au. I have not tested recording or any other formats other than 8bit ulaw and 16bit stereo.
|
52950 |
07-Nov-1999 |
tanimura |
Conserve stereo mode in ioctl SNDCTL_DSP_SETFMT.
PR: 14372 Submitted by: Mattias Pantzare <pantzer@ludd.luth.se>, Ville-Pertti Keinonen <will@iki.fi>
|
52913 |
06-Nov-1999 |
tanimura |
The unit of sndstat is fixed to zero.
|
52823 |
03-Nov-1999 |
tanimura |
Fix for multiple pcm devices.
|
52755 |
01-Nov-1999 |
tanimura |
Call make_dev() to shut up the warning.
Pointed out by: Donn Miller <dmmiller@cvzoom.net>
|
52713 |
31-Oct-1999 |
tanimura |
The total uiomoved size is accumulated in c, not tmp.
|
52318 |
16-Oct-1999 |
obrien |
The CTL0044 is more properly known as a "Creative SB AWE64 Gold".
|
52174 |
12-Oct-1999 |
dfr |
* Add struct resource_list* argument to resource_list_alloc and resource_list_release. This removes the dependancy on the layout of ivars.
* Move set_resource, get_resource and delete_resource from isa_if.m to bus_if.m.
* Simplify driver code by providing wrappers to those methods:
bus_set_resource(dev, type, rid, start, count); bus_get_resource(dev, type, rid, startp, countp); bus_get_resource_start(dev, type, rid); bus_get_resource_count(dev, type, rid); bus_delete_resource(dev, type, rid);
* Delete isa_get_rsrc and use bus_get_resource_start instead.
* Fix a stupid typo in isa_alloc_resource reported by Takahashi Yoshihiro <nyan@FreeBSD.org>.
* Print a diagnostic message if we can't assign resources to a PnP device.
* Change device_print_prettyname() so that it doesn't print "(no driver assigned)-1" for anonymous devices.
|
52169 |
12-Oct-1999 |
dfr |
Bring support for opti931 in from the old driver.
|
52049 |
09-Oct-1999 |
imp |
Make interrupts shareable with RF_SHAREABLE. This is untested, but it compiles and should just work.
|
52046 |
09-Oct-1999 |
imp |
Allow interrupt sharing by allocating the interrupt RF_SHAREABLE.
This allows newpcm to grok my es1370 based card, which shared interrupts with the ethernet card.
|
51911 |
03-Oct-1999 |
obrien |
Detect CTL0044 & CTL0045 as "Creative AWE64 PnP" rather than "SB16 PnP".
Reviewed by: dfr
|
51788 |
29-Sep-1999 |
dfr |
Add ID for ESS ES1869.
|
51769 |
28-Sep-1999 |
cg |
* add a non-reset device- will not reset the channel on open. you will have to mknod yourself for now. * don't eat the first write() * partial rvplayer fix- don't panic on unaligned writes unless our feeder chain requires them for downconversion. a fuller fix is on the way.
|
51768 |
28-Sep-1999 |
cg |
add a missing blank line
|
51766 |
28-Sep-1999 |
cg |
seperate the ad1816 driver from the mss driver since it shares no code
|
51755 |
28-Sep-1999 |
dfr |
Add another ID for the AWE64.
|
51658 |
25-Sep-1999 |
phk |
Remove five now unused fields from struct cdevsw. They should never have been there in the first place. A GENERIC kernel shrinks almost 1k.
Add a slightly different safetybelt under nostop for tty drivers.
Add some missing FreeBSD tags
|
51407 |
19-Sep-1999 |
peter |
Fix the "dsp sync" debugging printf that was unconditional. Fix a few formatting nits/glitches/whatever.
|
51120 |
10-Sep-1999 |
dfr |
Make sure that opti931's and guspnp's use the right offset from their ports.
|
51095 |
08-Sep-1999 |
cg |
fix a bug with cat >/dev/{dsp,dspW,audio} hanging
|
51052 |
07-Sep-1999 |
dfr |
Change isa_get/set_flags() to device_get/set_flags().
|
50959 |
05-Sep-1999 |
peter |
$Id$ -> $FreeBSD$
|
50925 |
04-Sep-1999 |
cg |
incorporate better ess support
Obtained From: KUROSAWA Takahiro <fwkg7679@mb.infoweb.ne.jp> Tested By: peter
|
50923 |
04-Sep-1999 |
cg |
handle uiomove better in feed_root
|
50922 |
04-Sep-1999 |
cg |
bugfix: deallocate channels properly if no read/write ops between open/close
|
50769 |
01-Sep-1999 |
dfr |
This represents essentially a complete rewrite of the ISA PnP code. The new system is integrated with the ISA bus code more cleanly and allows the future addition of more enumerators such as PnPBIOS and ACPI.
This commit also enables the new pcm driver since it is somewhat tied to the new PnP code.
|
50733 |
01-Sep-1999 |
peter |
$Id$ -> $FreeBSD$
|
50724 |
01-Sep-1999 |
cg |
say hello to newpcm. it is not yet enabled, requiring new pnp code from dfr to compile successfully. further details will be provided in the commit enabling newpcm.
|
50723 |
01-Sep-1999 |
cg |
mss and sb drivers updated for newpcm
Reviewed by: peter, dfr
|
47536 |
27-May-1999 |
roger |
Add support for ASound Gold card using the ALS120 chipset (a vibra 16x clone) Identified automatically by its PnP ID
Approved by: Luigi
|
47074 |
12-May-1999 |
peter |
Fix dev_t/minor problems
|
46797 |
09-May-1999 |
peter |
Quiet a warning, put a #if 0 around some (I believe) unused static structs.
|
46605 |
06-May-1999 |
peter |
Use id_ointr for setting the pnp interrupt handler, it uses the oldstyle int unit argument still.
|
46339 |
02-May-1999 |
peter |
Operator precedence bug
PR: 11410 Submitted by: Christopher Peterson <cpeterso@cs.washington.edu>
|
42292 |
04-Jan-1999 |
luigi |
Fix YMF719 detection (report by jose@we.lc.ehu.es). Fix compile problems without "controller pnp0" (fix by German Tischler)
|
42284 |
04-Jan-1999 |
luigi |
Bring in ad1816 patches from German Tischler. Fix 'device not configured' problem that people were experiencing when only PCI devices are present.
|
42192 |
31-Dec-1998 |
luigi |
Extend the callback mechanism and add hooks to support PCI cards. Remove a few unused variables.
|
41653 |
10-Dec-1998 |
brian |
Support ESS1868 (and probably ESS688 & ESS1668). Submitted by: Max Khon <fjoe@husky.iclub.nsu.ru>
|
41514 |
04-Dec-1998 |
archie |
Examine all occurrences of sprintf(), strcat(), and str[n]cpy() for possible buffer overflow problems. Replaced most sprintf()'s with snprintf(); for others cases, added terminating NUL bytes where appropriate, replaced constants like "16" with sizeof(), etc.
These changes include several bug fixes, but most changes are for maintainability's sake. Any instance where it wasn't "immediately obvious" that a buffer overflow could not occur was made safer.
Reviewed by: Bruce Evans <bde@zeta.org.au> Reviewed by: Matthew Dillon <dillon@apollo.backplane.com> Reviewed by: Mike Spengler <mks@networkcs.com>
|
41149 |
14-Nov-1998 |
luigi |
Add a missing newline Submitted by: Roger Hardiman
|
41060 |
10-Nov-1998 |
luigi |
Add entry for AOpen AW37
|
40898 |
04-Nov-1998 |
luigi |
Remove an error message from sb interrupt driver -- it does not apply to all situations.
|
40079 |
08-Oct-1998 |
des |
Make that annoying "device busy" message dependent on DEBUG (using the DEB macro). There are probably quite a few other messages that warrant a similar treatment, and many more that should be converted to plain log messages (e.g. "WARNING: wrintr but write DMA inactive!"). Now that I think of it, same goes for the CAM code (e.g. the famed "tagged openings" message)
|
39954 |
04-Oct-1998 |
des |
Nit in comment: PnP ID 0x3500630e is a CS4236B, not a CS4236.
|
39922 |
03-Oct-1998 |
alex |
Removed duplicate case.
Submitted by: dfr Blessed by: luigi
|
39899 |
02-Oct-1998 |
luigi |
Update the pcm driver to the most recent version. This should add support for Vibra16X, OPTi925, and bring in several assorted fixes to the code and documentation. Also present here are apm hooks so that laptops can properly reconfigure the hardware after suspend (tested on the Libretto50). Reviewed by: jordan
|
39822 |
30-Sep-1998 |
des |
Add PnP ID for Crystal Semiconductors CS4236B codecs (register- compatible with CS4236, so no driver changes are required)
Reviewed by: Luigi Rizzo <luigi@iet.unipi.it>
|
37044 |
17-Jun-1998 |
bde |
Renambed sbintr to sb_intr to avoid a conflict with the (now unconditionally declared although it can't be configured together with snd) extern function sbintr.
|
36764 |
08-Jun-1998 |
sos |
Correct even more ioctl breakage :( Doesn't people check their code before committing anymore, it could at least compile ????
|
35927 |
10-May-1998 |
steve |
Add support for the Yamaha YMF-719.
PR: 6348 Submitted by: Yoshiak Uchikawa <yoshiaki@kt.rim.or.jp>
|
35256 |
17-Apr-1998 |
des |
Seventy-odd "its" / "it's" typos in comments fixed as per kern/6108.
|
33717 |
21-Feb-1998 |
nate |
there is a minor bug in sb_dsp.c -- the driver reports ESS cards as able to do 16-bit, but it has no support for it.
Submitted by: Luigi Rizzo <luigi@labinfo.iet.unipi.it>
|
33505 |
17-Feb-1998 |
nate |
- Updated to Luigi's 2-15-98 code. The code in 2.2 is the same except for select/poll and DEVFS changes, which are limited to an include/define in sound.h and the actual select/poll implementation in sound.c
[ This commit is blind, but the code is similar enough that there will hopefully be no problems. ]
|
33474 |
17-Feb-1998 |
scrappy |
Upgrade Luigi's audio driver to Jan/23 version... will bring in Feb/15th version as soon as I've tested it...
Installed/tested on my home machine...any problems, please report directly to me.
|
31361 |
23-Nov-1997 |
jmg |
update of Luigi's sound drivers...
this updates to 971117 plus a small sb change that was after that release..
|
30869 |
31-Oct-1997 |
jmg |
This updates Luigi's sound code to the basic code in snd971023... changes: o rip the old select from his distribution to prevent extra pollution o the code now uses audio dma, helps reduce clicks o improved card support, should work in full duplex on sb16 cards o add better voxware ioctl support pointed out by Joao Carlos Mendes Luis <jonny@coppe.ufrj.br> o remove an unused file that I included for more complete history o and MANY other changes
I have personally tested this code with a CS4237 based card and an AWE32 (non-PnP). Both cards worked fine in 8bit and 16bit mode.
|
29652 |
21-Sep-1997 |
peter |
Recognize the CS4326 on the Intel PR440FX motherboard. (It works just like the normal CS4326 except that it's had it's ID's tweaked for some reason) Also mark the device as alive in the attach routine so that the pnp system doesn't think the attach failed.
|
29651 |
21-Sep-1997 |
peter |
Fix a comment-within-a-comment
|
29565 |
18-Sep-1997 |
jmg |
update Luigi's driver to poll interface (Peter, you might want to check that I've done this properly, it does work though :) )...
a few minor fixes to code
part-Submitted-by: Luigi
|
29415 |
14-Sep-1997 |
jmg |
Import of Luigi Rizzo's sound code. For more information about the driver check out the README that is included.
Submitted by: Luigi Rizzo <luigi@labinfo.iet.unipi.it>
|