History log of /freebsd-9.3-release/sys/dev/sound/isa/mss.c
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 267654 19-Jun-2014 gjb

Copy stable/9 to releng/9.3 as part of the 9.3-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

# 225736 22-Sep-2011 kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by: re (implicit)


# 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.


# 170873 17-Jun-2007 ariff

Flush remaining malloc() cleanups (M_NOWAIT -> M_WAITOK).


# 170521 10-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


# 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


# 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.


# 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.


# 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


# 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>


# 155340 05-Feb-2006 netchild

forced commit: previous commit was CID 429


# 155336 05-Feb-2006 netchild

Fix memory leak in some failure cases.

CID: 420
Found with: Coverity Prevent(tm)


# 152150 07-Nov-2005 ariff

Fix kernel panic caused by double mss_unlock().

Noticed by: Watanabe Kazuhiro <CQG00620@nifty.ne.jp>


# 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.


# 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>


# 148598 31-Jul-2005 netchild

- Fixup the locking.
- Don't mark MPSAFE (yet).

Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my>


# 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


# 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.


# 139749 05-Jan-2005 imp

Start each of the license/copyright comments with /*-, minor shuffle of lines


# 136535 15-Oct-2004 njl

Re-add an acpi attachment for the legacy probe that was inadvertently
removed.


# 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 11-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.


# 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


# 131918 10-Jul-2004 marcel

s/DDB/BVDDB/g

Note that DDB is unrelated to the debugger with the same acronym.


# 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>


# 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


# 119853 07-Sep-2003 cg

update my email address.


# 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


# 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


# 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.


# 108925 08-Jan-2003 mdodd

- Add acpi module binding.
- Restore speed and format settings on resume for CS423x and
CS423x-PCI devices.


# 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


# 93816 04-Apr-2002 jhb

Add lock type arguments to callers of snd_mtxcreate().


# 90241 05-Feb-2002 tg

Add support for the Aztech 2320 chip.

Reviewed by: cg
Obtained from: NetBSD (partly)


# 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


# 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)


# 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.


# 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.


# 78564 21-Jun-2001 greid

Use the M_ZERO flag to malloc(9)

Reviewed by: cg
MFC after: 1 week


# 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.


# 76635 15-May-2001 greid

Remove a bogus comment which I forgot to get rid of after testing


# 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.


# 74711 23-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>


# 73775 05-Mar-2001 cg

increase timeouts for ad_wait_init()


# 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.


# 70134 17-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.


# 67652 26-Oct-2000 cg

add reinit functions to mixers
unstaticize chn_start()
add reset/resetdone functions to channels


# 66883 09-Oct-2000 sobomax

Reduce buffer size from 64K to 4K.

Approved by: cg


# 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


# 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


# 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.


# 64032 30-Jul-2000 cg

add suspend/resume for yamaha chips

Submitted by: Ira L Cooper <ira@MIT.EDU>


# 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


# 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.


# 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.


# 60958 26-May-2000 cg

handle emulated dma reads

don't try to get sample size from snd_dbuf


# 60711 19-May-2000 nyan

Supported the mss on PC-98 and Sound Blaster 98.

Submitted by: "T.Yamaoka" <taka@windows.squares.net>


# 59574 23-Apr-2000 cg

maybe make cmi8330 work - no feedback yet

implement bass/treble for yamaha opl-sax chips


# 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)


# 56774 28-Jan-2000 cg

differentiate cmi8330 and als100 pnp cards based on their vendor id. this
is a kludge for 4.0


# 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.


# 55879 13-Jan-2000 cg

attach to non-ac97 neomagic chips and hope that ac97 ones do not have the
same pnpbios id


# 55428 05-Jan-2000 cg

argh, forgot the bus_dma_tag_creates.
also, panic if channel init fails instead of derefing null.


# 55424 04-Jan-2000 cg

allocate isa bounce buffers of the right size for ess/mss cards, fixes
panics reported


# 55306 01-Jan-2000 cg

revert buffer size to 64k


# 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


# 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


# 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.


# 54942 21-Dec-1999 cg

minor cleanup

Parts Submitted by: Ville-Pertti Keinonen <will@ztango.com>


# 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>


# 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


# 53184 15-Nov-1999 peter

Remove duplicate entry for ADS7180 - it's meant to be handled by the
forked-off ad1816 driver.


# 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.


# 51766 28-Sep-1999 cg

seperate the ad1816 driver from the mss driver since it shares no code


# 51120 10-Sep-1999 dfr

Make sure that opti931's and guspnp's use the right offset from their ports.


# 51052 07-Sep-1999 dfr

Change isa_get/set_flags() to device_get/set_flags().


# 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$


# 50723 01-Sep-1999 cg

mss and sb drivers updated for newpcm

Reviewed by: peter, dfr


# 47074 12-May-1999 peter

Fix dev_t/minor problems


# 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.


# 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


# 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>


# 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.


# 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.


# 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>