summaryrefslogtreecommitdiffstats
path: root/sys/dev/sound/isa/sb8.c
Commit message (Collapse)AuthorAgeFilesLines
* update my email address.cg2003-09-071-1/+1
|
* Mega busdma API commit.scottl2003-07-011-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | 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
* - Clean up ISA DMA supports.nyan2003-02-071-3/+5
| | | | | | | - Rename all sndbuf_isadma* functions to sndbuf_dma* and move them into sys/dev/sound/isa/sndbuf_dma.c. No response from: sound
* Do not return(foo()) in void function.semenu2002-12-181-1/+1
| | | | | Submitted by: marius@alchemy.franken.de MFC after: 3 days
* Fix code that had rotted behind debugging macros.scottl2002-01-251-1/+1
| | | | | Approved by: cg (in principle) MFC after: 2 weeks
* use mixer channel numbers, not channel masks- this should fix sb/sbpro mixercg2001-10-071-10/+10
| | | | problems.
* allow the hardware buffer size to be controlled with hintscg2001-09-291-9/+9
| | | | release isa dma channels on unload (ad1816, ess, sb8)
* many changes:cg2001-08-231-3/+3
| | | | | | | | | | | | | | | * 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.
* Use the M_ZERO flag to malloc(9)greid2001-06-211-2/+1
| | | | | Reviewed by: cg MFC after: 1 week
* use a global devclass for all drivers - i'm not entirely sure why thiscg2001-06-161-2/+0
| | | | | | | | | | | | | | | 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.
* mega-commit.cg2001-03-241-25/+43
| | | | | | | | | | | | | | | 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.
* update code dealing with snd_dbuf objects to do so using a functional interfacecg2000-12-231-10/+12
| | | | | | | | | | | | | | | 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.
* kobjify.cg2000-12-181-64/+40
| | | | | | | | | | 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.
* split up sb16 and sb/sbpro driverscg2000-10-281-441/+294
| | | | | | | 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.
* add reinit functions to mixerscg2000-10-261-0/+1
| | | | | unstaticize chn_start() add reset/resetdone functions to channels
* detach supportcg2000-09-091-5/+26
| | | | | | | remove un-needed setdir functions add bus_teardown_intr calls where necessary destroy our dma tags where necessary destroy ac97 before releasing resources
* change mixer api slightlycg2000-09-011-6/+14
| | | | | | | | | 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
* rework feeder sytem to allow feeders in kldscg2000-08-201-22/+29
| | | | | | | | 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.
* add module metadata. this is a hack, sound drivers will eventually present acg2000-07-031-1/+4
| | | | bus to which pcm, mixer, etc will attach.
* Unused include: #include "sbc.h"peter2000-06-101-2/+0
|
* handle emulated dma readscg2000-05-261-1/+1
| | | | don't try to get sample size from snd_dbuf
* split up ess and sb codecg2000-03-281-317/+13
| | | | | | 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
* Stop isadma from abusing the B_READ, B_RAW and B_WRITE flags.phk2000-03-131-2/+2
| | | | | Define ISADMA_{READ,WRITE,RAW} macros with the same numeric values as the B_{READ,WRITE,RAW} and use them instead throughout.
* fix ess end-of-buffer repeatingcg2000-02-141-6/+2
| | | | | Submitted by: nhibma Approved by: jkh
* general tidyupcg2000-01-101-162/+221
|
* argh, forgot the bus_dma_tag_creates.cg2000-01-051-1/+2
| | | | also, panic if channel init fails instead of derefing null.
* allocate isa bounce buffers of the right size for ess/mss cards, fixescg2000-01-051-2/+4
| | | | panics reported
* make ess cards use a 64k buffer again, by implementing esschan_init()cg1999-12-301-6/+13
|
* - latest 2ndbuffer patchcg1999-12-291-0/+2
| | | | | | | - make chn_setdir work for rec on isa cards - note: es1371 does not irq in smp Submitted by: tanimura
* Don't pass u_int32_t pointers to BUS_READ_IVAR since it tends to makedfr1999-12-241-3/+3
| | | | alphas panic.
* don't use the sbpro mic vol register during init on ess cards; it causescg1999-12-211-1/+2
| | | | feedback and we use the native one elsewhere.
* minor cosmeticscg1999-12-201-1/+0
|
* fix for ess cards to use auto-init dma mode, so they workcg1999-12-191-4/+4
|
* remove the restriction limiting the vibra16x to 8 bitcg1999-12-191-2/+2
| | | | Noticed By: Clive Lin <clive@CirX.ORG>
* make vibra16x cards announce what they are in /dev/sndstatcg1999-12-181-2/+3
|
* make the vibra16x work for playback at least, record is untestedcg1999-12-181-6/+12
|
* make sb dependant on sbccg1999-12-121-356/+93
| | | | | | | | | | | | | | | | | | | | | | 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
* Reckognize the 'Avance Asound 100'billf1999-12-071-0/+4
| | | | Submitted by: Oliver Fromme <olli@dorifer.heim3.tu-clausthal.de>
* Update for pnp adjustments regarding NPNP.peter1999-12-061-8/+0
| | | | | | | | | | 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)
* Add ESS1879.dfr1999-11-301-0/+4
| | | | Submitted by: MIHIRA Sanpei Yoshiro <sanpei@sanpei.org>
* Add id for ESS 1869 OEM to Compaq on Presario 1621.dcs1999-11-261-0/+1
|
* - Introduce the bridge drivers for Sound Blaser, GUS and Crystaltanimura1999-11-221-20/+65
| | | | | | | | | 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>
* repo-copied to make way for newmidi, this commit updates include pathscg1999-11-201-2/+2
|
* * Ignore the wierd fakechan workarounds for simplex in dsp_ioctl().dfr1999-11-131-16/+28
| | | | | | | | | | | | | | | | | | | | | 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.
* The CTL0044 is more properly known as a "Creative SB AWE64 Gold".obrien1999-10-161-0/+3
|
* * Add struct resource_list* argument to resource_list_alloc anddfr1999-10-121-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Detect CTL0044 & CTL0045 as "Creative AWE64 PnP" rather than "SB16 PnP".obrien1999-10-031-1/+4
| | | | Reviewed by: dfr
* Add ID for ESS ES1869.dfr1999-09-291-0/+4
|
* add a missing blank linecg1999-09-281-1/+2
|
* Add another ID for the AWE64.dfr1999-09-281-0/+1
|
OpenPOWER on IntegriCloud