Orion Hodson
2065c8c619
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
2001-11-21 04:06:52 +00:00
Jeroen Ruigrok van der Werven
41425f4fac
Remove clkrun_hack for ThinkPad 570.
...
PR: 28031
Submitted by: Tan Koan-Sin <freedom@csie.nctu.edu.tw>
MFC after: 2 weeks
2001-11-15 18:51:08 +00:00
Seigo Tanimura
b9d9d8e74c
Avoid crash of minor numbers between /dev/midistat and /dev/dspr*.
2001-11-03 12:47:19 +00:00
Peter Wemm
aaa3add4ea
Add Id for 82801CA (ICH3?). The ich driver seems to work fine on the
...
laptop that had it.
2001-11-03 05:07:59 +00:00
John Baldwin
02185af5a9
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.
2001-10-24 21:44:07 +00:00
John Baldwin
579f17a038
Change module name from 'snd_als' to 'snd_als4000' to match name in
...
snd_driver.ko.
2001-10-24 21:42:06 +00:00
John Baldwin
0ff24d06f7
Change the module name from 'via' to 'snd_via82c686' to match the KLD
...
filename and in snd_driver.ko.
2001-10-24 21:38:08 +00:00
John Baldwin
ee1fbec1bf
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.
2001-10-24 21:35:31 +00:00
Cameron Grant
16a33022e7
fix SNDCTL_DSP_GETISPACE behaviour
2001-10-24 12:40:54 +00:00
Cameron Grant
8309fd9aef
improve recording behaviour
2001-10-24 12:33:21 +00:00
Warner Losh
565fcd9dbb
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
2001-10-22 15:59:49 +00:00
Scott Long
73b9d66d9a
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
2001-10-14 19:22:51 +00:00
Orion Hodson
9b6a5708db
use pcm_getbuffersize()
2001-10-10 17:56:35 +00:00
Scott Long
baadfb4c1e
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
2001-10-09 19:46:09 +00:00
Cameron Grant
a791cfee44
use pcm_getbuffersize()
...
only creat a mic recording channel if the codec supports it
2001-10-08 06:10:39 +00:00
Cameron Grant
50388172c5
use pcm_getbuffersize()
...
use seperate dma tags for buffers and control info
2001-10-08 06:01:13 +00:00
Cameron Grant
39dbd126c7
use pcm_getbuffersize()
2001-10-08 05:59:54 +00:00
Cameron Grant
82ab7a3bc2
* register the correct number of channels
...
* include hw buffer size in sndstat info
2001-10-07 23:31:52 +00:00
Cameron Grant
a9d2ee22ac
use mixer channel numbers, not channel masks- this should fix sb/sbpro mixer
...
problems.
2001-10-07 23:28:34 +00:00
George C A Reid
8c65132c76
Add another pnpid for the AWE64
...
PR: 30909
Submitted by: Kinji Itoh <kinji-i@gray.plala.or.jp>
MFC after: 7 days
2001-09-29 12:38:58 +00:00
Cameron Grant
11149a9ac8
release isa dma channels on unload.
2001-09-29 08:01:42 +00:00
Cameron Grant
374e1c5baa
allow the hardware buffer size to be controlled with hints
...
release isa dma channels on unload (ad1816, ess, sb8)
2001-09-29 07:57:07 +00:00
John Baldwin
ed01445d8f
Use the passed in thread to selrecord() instead of curthread.
2001-09-21 22:46:54 +00:00
Cameron Grant
a6295c60ae
when setting blocksize, fix blockcount to 2 to reduce latency with smaller
...
block sizes.
2001-09-18 15:19:44 +00:00
Cameron Grant
c2995ba2d4
make buffer size adjustable.
2001-09-18 15:12:35 +00:00
Cameron Grant
fca71897c4
don't enable the mic record channel unless the codec supports it.
...
allow hardware buffer size to be specified using hints.
2001-09-18 14:53:01 +00:00
Cameron Grant
a67fe5c1d6
change tracking of channel counts.
...
add method for retrieving "buffersize" hints for pcm devices, adjusted for
specified minimum, maximum and default values.
2001-09-18 14:50:52 +00:00
Cameron Grant
a3a1ce3024
add a tunable/sysctl, hw.snd.targetirqrate, to modify the default target
...
irq rate for apps that do not set a blocksize.
2001-09-18 14:45:09 +00:00
Cameron Grant
5d91ad679d
add a method for retrieving codec capabilities
2001-09-18 14:34:59 +00:00
Seigo Tanimura
4ce6a64b25
Catch up to the last commit of KSE.
2001-09-15 08:14:23 +00:00
George C A Reid
5c25132af5
- 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
2001-09-14 20:26:03 +00:00
Julian Elischer
b40ce4165d
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
2001-09-12 08:38:13 +00:00
Brian Feldman
a46252c61f
Convert the CMedia driver to using a device mutex and INTR_MPSAFE.
2001-09-08 05:20:52 +00:00
Cameron Grant
506a5308bc
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.
2001-09-05 16:28:41 +00:00
Cameron Grant
c2e6dd76ce
don't try to dump nonexistent data when recording
2001-09-05 14:49:44 +00:00
Orion Hodson
bb76bd1180
Return updated blocksize from setblocksize function.
2001-09-03 02:14:55 +00:00
Orion Hodson
61608985c7
Fix return value of cs4281chan_setblocksize.
2001-09-03 01:05:04 +00:00
Orion Hodson
256e749243
Fix return value of svchan_setblocksize.
...
Expand probing range.
2001-09-03 01:03:50 +00:00
Orion Hodson
167d1bcd19
Fix return value of setblocksize functions. Recording is interspersed
...
with silent intervals otherwise.
2001-09-03 00:45:00 +00:00
Cameron Grant
edecdda7b9
tweaks to reduce latency/pauses in output
2001-08-29 09:17:43 +00:00
George C A Reid
0a1e38d38a
Add support for the Acer Labs M5451 chip.
...
Submitted by: Mitsuru IWASAKI <iwasaki@jp.FreeBSD.org>
2001-08-29 09:04:22 +00:00
Cameron Grant
a32858897e
add some extra diagnostic info to sndstat output.
2001-08-29 02:49:54 +00:00
Cameron Grant
9924faf6e7
* 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)
2001-08-29 02:31:03 +00:00
Cameron Grant
4f4449e01c
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.
2001-08-27 01:02:13 +00:00
Cameron Grant
52eb6afd0c
MFS rev 1.8.2.8:
...
release resources on detach
Submitted by: "Christopher N . Harrell" <cnh@netvmg.com>
2001-08-27 00:54:26 +00:00
George C A Reid
874f2e78b4
Add support for the SiS 7018
...
PR: 30100
Submitted by: Ada Lim <adal@cse.unsw.edu.au>
2001-08-26 19:15:28 +00:00
Cameron Grant
4132a3b206
the feederchain builder is currently broken for recording channels. disable
...
it until it is fixed. this limits recording to native formats and speeds
only.
2001-08-23 12:27:27 +00:00
Cameron Grant
334326a17f
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
2001-08-23 12:21:12 +00:00
Cameron Grant
48875621e1
make the 4dwave nx chip work
...
Submitted by: Philippe Anel <xigh@noos.fr>
2001-08-23 12:02:29 +00:00
Cameron Grant
92f39b2c05
MFS: make SNDCTL_DSP_SETTRIGGER work
2001-08-23 11:58:38 +00:00
Cameron Grant
1662598f0c
MFS: allow multiple opens of mixer devices
2001-08-23 11:56:07 +00:00
Cameron Grant
67b1dce3bc
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.
2001-08-23 11:30:52 +00:00
George C A Reid
1ad86e6dd7
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.
2001-08-02 22:13:10 +00:00
Scott Long
19f2be11b0
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.
2001-07-19 20:53:52 +00:00
Scott Long
e93d24c2f0
Fix an off-by-one error in the dma tag. This was causing the VM system to
...
freak out occasionally.
MFC after: 1 week
2001-07-19 20:51:29 +00:00
Peter Wemm
57385865a9
Somehow I missed this. Use INTR_TYPE_AV (high priority) instead of
...
INTR_TYPE_TTY (lowest priority).
2001-07-09 23:44:54 +00:00
Cameron Grant
41a019c08d
* 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
2001-07-03 17:27:13 +00:00
Cameron Grant
cbe7d6a3ed
remove obsolete typedefs.
...
only define INTR_TYPE_AV if it is not already defined.
2001-07-03 12:53:09 +00:00
Brian Feldman
bc0e6469ff
Correct obviously wrong mistakes.
2001-07-02 23:47:23 +00:00
Matt Jacob
5640e0ac5a
make it compile again in -current
2001-07-02 17:36:11 +00:00
Brian Feldman
5e6abe66d8
Detect the device on e.g. Dell OptiPlex GX110s.
2001-07-02 15:29:38 +00:00
Brian Feldman
0cfa4761f7
Make all this compile on 4.3, modulus sbuf.
2001-07-02 15:27:28 +00:00
Cameron Grant
1b6c76a2fe
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>
2001-07-01 19:38:58 +00:00
Cameron Grant
113375dc42
add module version/dependancies
2001-07-01 18:59:15 +00:00
Cameron Grant
c76f01164f
don't set a flag that is already set
2001-07-01 18:57:16 +00:00
Cameron Grant
4712b1eba1
set default 'monitor' volume (ac97 headphones) to 75%
2001-07-01 18:53:24 +00:00
Cameron Grant
f637a36cfd
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.
2001-06-27 19:59:45 +00:00
Cameron Grant
aa0baad55b
tidy up/simplify dsp_clone()
2001-06-27 19:51:02 +00:00
Cameron Grant
cd9766c5f8
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.
2001-06-26 21:54:55 +00:00
Cameron Grant
8e81760b1a
the turtle beach santacruz implements ac97 eapd in an inverted sense -
...
inform the ac97 code of this.
2001-06-23 18:00:06 +00:00
Cameron Grant
f00f162a5f
add defines and ifdefs so this code will compile on 4.x
...
add spls so this code will work on 4.x
2001-06-23 17:36:51 +00:00
Cameron Grant
79bb7d52b3
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'
2001-06-23 17:32:40 +00:00
George C A Reid
733a4ea771
Use the M_ZERO flag to malloc(9)
...
Reviewed by: cg
MFC after: 1 week
2001-06-21 19:45:59 +00:00
Cameron Grant
b30d115684
stop csa from panicing in clkrun_hack() - we were using free'd memory
...
don't leak memory in clkrun_hack()
Submitted by: grog (partially)
2001-06-18 19:58:03 +00:00
Thomas Moestl
916076fefc
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
2001-06-18 18:36:34 +00:00
Cameron Grant
74ffd13814
use devclass_get_maxunit() correctly
2001-06-18 00:10:47 +00:00
Cameron Grant
faeebea2b8
revise dsp_clone() to return the first nonbusy channel instead of simply
...
cycling channel numbers.
remove unused fields from struct snddev_info.
2001-06-17 23:23:06 +00:00
Cameron Grant
5210620e98
fix a potential panic in dsp_clone() if no pcm devices were detected
2001-06-17 20:15:29 +00:00
Peter Wemm
46700f1259
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)
2001-06-16 22:59:46 +00:00
Cameron Grant
d95502a838
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.
2001-06-16 21:25:10 +00:00
Cameron Grant
b8f0d9e0b2
various locking fixes, rework open logic and channel registration
...
PR: kern/28084
2001-06-14 13:31:30 +00:00
Cameron Grant
94faf89997
identify es1371 revision a
2001-06-11 00:32:18 +00:00
Cameron Grant
7d07ee8c6b
get clkrun the right way around
...
remove debug messages
2001-06-11 00:29:25 +00:00
Dag-Erling Smørgrav
d647935801
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.
2001-06-10 15:48:04 +00:00
Seigo Tanimura
e6577f69a4
Catch up to csareg.h rev 1.3.
...
Forgotten by: cg
2001-06-08 11:57:39 +00:00
Peter Wemm
0978669829
"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.
2001-06-08 05:24:21 +00:00
Cameron Grant
49c5e6e20a
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
2001-06-07 20:06:22 +00:00
Peter Wemm
4422746fdf
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. :-(
2001-06-07 03:17:26 +00:00
Peter Wemm
81930014ef
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.
2001-06-06 22:17:08 +00:00
Joerg Wunsch
b794010414
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).
2001-06-04 21:04:14 +00:00
Cameron Grant
3c20ba7175
fix typo
2001-05-30 22:46:40 +00:00
Cameron Grant
8d41a999cd
no longer used
2001-05-30 22:41:04 +00:00
Cameron Grant
20ac1df714
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.
2001-05-30 22:38:31 +00:00
Cameron Grant
6cf2606901
state the licencing terms for this file
...
Obtained From: Yamaha
2001-05-30 19:05:47 +00:00
Cameron Grant
285648f9d2
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.
2001-05-27 17:22:00 +00:00
Cameron Grant
4dce85407c
add a new method for retrieving feeder parameters
2001-05-27 14:49:14 +00:00
Cameron Grant
fc60109d91
don't erase info in sndbuf_setup()
...
set free'd pointers to NULL in sndbuf_free()
add a new function
2001-05-27 14:39:34 +00:00
Scott Long
7edce08ac4
Fix DMA on machines with more than 128MB.
...
Obtained from: cg
MFC after: 5 days
2001-05-25 16:05:22 +00:00
George C A Reid
94d79d6dea
Remove a bogus comment which I forgot to get rid of after testing
2001-05-15 20:05:19 +00:00
Seigo Tanimura
9d68b59376
- 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>
2001-05-08 12:15:26 +00:00
Cameron Grant
799c04bad3
this file has been unused for some time now
2001-05-05 05:32:22 +00:00
Mark Murray
fb919e4d5a
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)
2001-05-01 08:13:21 +00:00
Cameron Grant
cd94939222
don't unlock the channel in chn_read, msleep will do it for us.
...
PR: kern/26430
2001-04-29 02:31:02 +00:00
Cameron Grant
680307ae14
be more specific in identifying the chip type
2001-04-27 22:26:36 +00:00
Cameron Grant
15418cf2bb
get the parameters to pci_write_config the right way round. this may fix
...
some non-functional cards/machines
2001-04-24 22:35:11 +00:00
Orion Hodson
1f2b9fe67a
Initial version of Avance Logic ALS4000 pcm driver.
2001-04-23 21:53:12 +00:00
Orion Hodson
5090c9953c
Add power on to start sequence for 4.x kernels.
...
PR: kern/26255
Submitted by: WATANABE Kiyoshi <aab10490@pop16.odn.ne.jp>
2001-04-19 13:23:50 +00:00
George C A Reid
e572fcd463
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
2001-04-10 14:28:21 +00:00
Cameron Grant
f72b6281c2
lock the mutex, not the softc pointer.
2001-04-10 13:52:26 +00:00
Cameron Grant
941431caa8
comment out a boot-time debug message
2001-04-09 21:33:47 +00:00
George C A Reid
9de0de1dd4
Reinitialise the DSP and mixer after a resume from suspend
...
PR: 22372
Submitted by: Hiroyuki Aizu <aizu@jaist.ac.jp>
Reviewed by: cg
2001-04-08 23:02:06 +00:00
Cameron Grant
60391e107d
add a software sample rate conversion feeder. this uses linear
...
interpolation for reasonable quality whilst not using too much cpu time.
2001-04-08 20:26:22 +00:00
Cameron Grant
66a3addbf2
minor tweaks in speed and format setting routines.
...
don't stop exploring the feeders if a feeder fails to initialise.
2001-04-08 20:20:52 +00:00
Cameron Grant
7c3968cc32
fix feeder initialisation methods to return correct result codes.
2001-04-08 20:17:03 +00:00
Cameron Grant
2753645ced
if the feeder chain returned no data, do not try to acquire the data.
2001-04-08 20:14:14 +00:00
George C A Reid
46ae634c56
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
2001-04-08 00:07:53 +00:00
Orion Hodson
7370c6a68a
Quieten when re-triggering.
2001-04-07 14:12:53 +00:00
Orion Hodson
8b330062da
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>
2001-04-04 13:48:33 +00:00
Seigo Tanimura
6c2b22e90e
Again initialize a mutex well, then lock it.
...
PR: kern/26188
Submitted by: Jim Bloom <bloom@acm.org>
2001-04-03 05:15:58 +00:00
Orion Hodson
417f47c4d5
- 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>
2001-03-29 15:36:31 +00:00
John Baldwin
0006681fe6
Switch from save/disable/restore_intr() to critical_enter/exit().
2001-03-28 03:06:10 +00:00
Poul-Henning Kamp
f83880518b
Send the remains (such as I have located) of "block major numbers" to
...
the bit-bucket.
2001-03-26 12:41:29 +00:00
Cameron Grant
26799605fc
fix whitespace bogons
2001-03-25 21:43:24 +00:00
Cameron Grant
35910bd13e
release resources if one of the speculative probes in opti_detect() fails,
...
otherwise resource_list_alloc panics when opti_detect tries its next probe.
2001-03-25 19:09:06 +00:00
Cameron Grant
4e5f69d4dd
the softc is not a mutex, don't try to lock it.
...
Submitted by: George Reid <greid@ukug.uk.freebsd.org>
2001-03-25 18:56:48 +00:00
Cameron Grant
66ef8af5b0
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.
2001-03-24 23:10:29 +00:00
Cameron Grant
c78683be1f
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
2001-03-24 20:36:59 +00:00
Cameron Grant
64738af72b
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>
2001-03-24 00:22:01 +00:00
Cameron Grant
715082895a
* power up the external amplifier
...
* after chip reset, reapply power settings
2001-03-23 16:39:01 +00:00
Cameron Grant
73770282cf
add/correct a bunch of codec ids
...
Obtained from: linux, alsa, various datasheets
2001-03-22 02:41:24 +00:00
Orion Hodson
50aac86c8a
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...).
2001-03-21 14:10:51 +00:00
Orion Hodson
bd01f3f982
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.
2001-03-21 12:51:37 +00:00
Orion Hodson
dfe67249d2
pcm driver for S3 Sonicvibes chipset.
...
Reviewed by: Cameron Grant
2001-03-19 00:26:41 +00:00
Cameron Grant
c6c3b893e5
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.
2001-03-17 16:04:25 +00:00
Cameron Grant
bd22a64c45
fix a typo preventing the second dma channel being released
...
use isa_dma_release when releasing dma channels
2001-03-16 21:04:14 +00:00
Cameron Grant
effbadb7eb
don't leak memory allocated for feeders at module unload
...
kill the fake channel when unregistering
2001-03-16 20:58:44 +00:00
Seigo Tanimura
5ddde3e6fd
- Do not touch the Giant.
...
Requested by: jhb
- Initialize a mutex prior to locking it.
Spotted by: dcs
2001-03-14 07:29:47 +00:00
Cameron Grant
9a1ec7ebfd
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
2001-03-13 18:43:22 +00:00
Cameron Grant
86c1b69bbb
increase timeouts for ad_wait_init()
2001-03-05 17:59:36 +00:00
Cameron Grant
415dc6874f
MFS: don't ignore the result of mixer_init()
2001-03-05 17:51:28 +00:00
Cameron Grant
1c46beb55c
only mess with the power state on 5.x
2001-03-05 17:30:43 +00:00
Cameron Grant
a0585a78aa
MFS: add kobj.h to reduce diffs from -stable
2001-03-05 16:47:35 +00:00
Cameron Grant
96aa9dc9e1
MFS: don't pagefault in sndbuf_clear
2001-03-05 16:45:38 +00:00
Cameron Grant
b3ada620e8
MFS: #ifdef dynamic sysctl stuff to reduce diffs from -stable
2001-03-05 16:43:43 +00:00
Cameron Grant
00d6c0c690
MFS: add '# KOBJ' as the first line of each .m file to reduce diffs from
...
-stable
2001-03-05 16:42:06 +00:00
Cameron Grant
dec507e8f7
enable per-device sysctls unconditionally
2001-03-05 15:58:05 +00:00
Cameron Grant
a983d57528
nuke the splstack stuff, snd_mtx* will now be no-ops on 4.x
2001-03-05 15:49:42 +00:00
Scott Long
ea0e6ecfe9
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.
2001-02-27 18:40:07 +00:00
Cameron Grant
1b0dabf0c0
Add speaker volume adjusting support
...
Submitted by: Tai-hwa Liang <avatar@mmlab.cse.yzu.edu.tw>
PR: i386/21452
2001-02-27 12:44:31 +00:00
Cameron Grant
37209180a5
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.
2001-02-27 07:45:09 +00:00