#
07159f9c |
| 25-Feb-2003 |
Maxime Henrion <mux@FreeBSD.org> |
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
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
show more ...
|
#
d00d7d5c |
| 11-Feb-2003 |
Brian Feldman <green@FreeBSD.org> |
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!
|
Revision tags: release/5.0.0_cvs, release/5.0.0 |
|
#
a8be3e63 |
| 05-Jan-2003 |
Brian Feldman <green@FreeBSD.org> |
Fix the duplicate unlock of the pcm read channel in certain cases.
Reviewed by: cg
|
Revision tags: release/4.7.0_cvs |
|
#
47d5a0f3 |
| 28-Aug-2002 |
Orion Hodson <orion@FreeBSD.org> |
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/35
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.
show more ...
|
#
22967090 |
| 20-Aug-2002 |
Orion Hodson <orion@FreeBSD.org> |
Back out last commit. Needs slightly more subtle handling.
|
#
42e67fd3 |
| 18-Aug-2002 |
Orion Hodson <orion@FreeBSD.org> |
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 perm
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
show more ...
|
Revision tags: release/4.6.2_cvs, release/4.6.2, release/4.6.1, release/4.6.0_cvs, release/4.5.0_cvs, release/4.4.0_cvs |
|
#
436c9b65 |
| 25-Jan-2002 |
Scott Long <scottl@FreeBSD.org> |
Fix code that had rotted behind debugging macros.
Approved by: cg (in principle) MFC after: 2 weeks
|
#
095159ec |
| 23-Jan-2002 |
Cameron Grant <cg@FreeBSD.org> |
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 f
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.
show more ...
|
#
1c72c53f |
| 23-Jan-2002 |
Cameron Grant <cg@FreeBSD.org> |
don't allow mmap beyond the end of the buffer
Submitted by: Philippe Anel <philippe.anel@noos.fr> (partially)
|
#
16a33022 |
| 24-Oct-2001 |
Cameron Grant <cg@FreeBSD.org> |
fix SNDCTL_DSP_GETISPACE behaviour
|
#
5c25132a |
| 14-Sep-2001 |
George C A Reid <greid@FreeBSD.org> |
- 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
- 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
show more ...
|
#
b40ce416 |
| 12-Sep-2001 |
Julian Elischer <julian@FreeBSD.org> |
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 fu
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
show more ...
|
#
506a5308 |
| 05-Sep-2001 |
Cameron Grant <cg@FreeBSD.org> |
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.
|
#
334326a1 |
| 23-Aug-2001 |
Cameron Grant <cg@FreeBSD.org> |
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.
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
show more ...
|
#
92f39b2c |
| 23-Aug-2001 |
Cameron Grant <cg@FreeBSD.org> |
MFS: make SNDCTL_DSP_SETTRIGGER work
|
#
67b1dce3 |
| 23-Aug-2001 |
Cameron Grant <cg@FreeBSD.org> |
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
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.
show more ...
|
#
c76f0116 |
| 01-Jul-2001 |
Cameron Grant <cg@FreeBSD.org> |
don't set a flag that is already set
|
#
aa0baad5 |
| 27-Jun-2001 |
Cameron Grant <cg@FreeBSD.org> |
tidy up/simplify dsp_clone()
|
#
f00f162a |
| 23-Jun-2001 |
Cameron Grant <cg@FreeBSD.org> |
add defines and ifdefs so this code will compile on 4.x
add spls so this code will work on 4.x
|
#
74ffd138 |
| 18-Jun-2001 |
Cameron Grant <cg@FreeBSD.org> |
use devclass_get_maxunit() correctly
|
#
faeebea2 |
| 18-Jun-2001 |
Cameron Grant <cg@FreeBSD.org> |
revise dsp_clone() to return the first nonbusy channel instead of simply cycling channel numbers.
remove unused fields from struct snddev_info.
|
#
5210620e |
| 17-Jun-2001 |
Cameron Grant <cg@FreeBSD.org> |
fix a potential panic in dsp_clone() if no pcm devices were detected
|
#
d95502a8 |
| 16-Jun-2001 |
Cameron Grant <cg@FreeBSD.org> |
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
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.
show more ...
|
#
b8f0d9e0 |
| 14-Jun-2001 |
Cameron Grant <cg@FreeBSD.org> |
various locking fixes, rework open logic and channel registration
PR: kern/28084
|
#
285648f9 |
| 27-May-2001 |
Cameron Grant <cg@FreeBSD.org> |
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 deta
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.
show more ...
|