summaryrefslogtreecommitdiffstats
path: root/sys/dev/pci/envy.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Add the number of midi ports to the card description, and use it toratchov2015-08-301-15/+16
| | | | prevent cards with no midi connectors from attaching midi(4) devices.
* Set the midi_isopen flag to zero before the chip is reset, as the flagratchov2015-08-281-2/+4
| | | | | is used to determine the interrupt mask. Currently this doesn't matter, but once suspend/resume works, this will matter.
* remove forgotten debug printf in envy_midi_closeratchov2015-08-281-2/+1
|
* Disable interrupts while the midi uart is not in use. Avoids generatingratchov2015-08-281-10/+43
| | | | | unused interrupts when a chatty peripheral is connected but is not used.
* Fix support of M-Audio Delta 44 cards that use different GPIO pins,ratchov2015-08-281-15/+24
| | | | than other Delta cards.
* Use DMA pointer determine the number of times the audio(4) layer hasratchov2015-07-291-7/+48
| | | | | | | | to advance in time. This is needed to properly recover, when interrupts are blocked for too long. Fixes permanent distortion on MP systems. ok deraadt
* Reimplement the audio driver in a simpler way, removing unused/unusableratchov2015-06-251-22/+2
| | | | | | functionality. Same API and ABI except for the removed bits and no behaviour change for programs using libsndio. With help from armani@ and mpi@, thanks.
* Remove some includes include-what-you-use claims don'tjsg2015-03-141-2/+1
| | | | | | | have any direct symbols used. Tested for indirect use by compiling amd64/i386/sparc64 kernels. ok tedu@ deraadt@
* Use the same convention for mixer control names as azalia.ratchov2014-05-291-12/+12
|
* unbreak build with AUDIO_DEBUG: use %lx for bus_addr_tratchov2014-05-171-2/+2
|
* Since audio code is mp safe, establish isa and pci audio interruptsratchov2013-05-241-2/+2
| | | | | | | | with the IPL_MPSAFE flag. In certain circumstances, this prevents interrupt handlers from waiting the global kernel_lock possibly (hold by slower code) to be released. ok kettenis
* Introduce a global interrupt-aware mutex protecting dataratchov2013-05-151-22/+24
| | | | | | | | | | | | | structures (including sound-card registers) from concurent access by syscall and interrupt code-paths. Since critical sections remain the same, calls to splraise/spllower can be safely replaced by calls to mtx_enter/mtx_leave with two exceptions: (1) mutexes are not reentrant (the inner splraise is thus removed), and (2) we're not allowed to sleep with a mutex (either msleep is used or the mutex is released before sleeping). ok and help from kettenis, a lot of work from armani
* handle long long time_t in debug codederaadt2013-04-221-5/+5
|
* add macros for ap192k cards, no behavior changeratchov2013-03-141-3/+7
|
* Use uvm_km_kmemalloc_pla() to allocate dma memory below 2^28 limit,ratchov2013-02-151-19/+12
| | | | | allowing ice1712-based cards to work on amd64. With help from kettenis@
* If the MIDI UART is not ready for output, don't spin at IPL_CLOCK;ratchov2012-03-301-3/+6
| | | | | | | just return and make the midi(4) driver retry later. UART buffers are large enough for this, except eap(4) which uses interrupts for output. help from and ok jsg@
* fix the interrupt handler in the case when the interrupt is sharedratchov2011-04-271-12/+8
| | | | | | | with other pci devices. Ignore the interrupt (and return 0) if neither of the events that make the handler do actual work are set. hints from jakemsr and dlg, explained by deraadt
* * recognize/support the Dynex DX-SC51 in envy(4)jakemsr2010-12-221-6/+23
| | | | | | | | * allow ac97(4) flags to be set in envy(4), if there is an ac97 codec * configure the vt1616 codec on the Dynex DX-SC51 for multi-channel operation ok ratchov
* tweak gpio pins of julia cards to select the correct multiplier forratchov2010-10-301-3/+3
| | | | | the ADC frequency. Fixes high frequencies being removed (probably ADC running at half the frequency and samples being duplicated).
* Call bus_space_barrier() after each read and write, since thisratchov2010-10-081-5/+33
| | | | | driver was developed with the assumption that all operations are ordered.
* encoding of envy is little endian, not native endian, probably fixes envyratchov2010-10-081-3/+3
| | | | on big endian archs
* put all calls bus_space_xxx() into functions, makes the code smallerratchov2010-10-081-66/+98
|
* If the card model is not ``HT/PT'', then check that the DMA physicalratchov2010-10-071-7/+14
| | | | address is 28-bit.
* Give the device the physical address obtained from the DMA mappingratchov2010-10-061-7/+5
| | | | | | | | instead of the actual physical address of the DMA-safe memory. On i386 the driver used to work because both addresses are the same. spotted by damien@
* add support for midi(4) ports to envy(4)ratchov2010-10-041-4/+131
|
* Add support for Terratec EWX 24/96 based on initial diff from ratchov@.stsp2010-09-081-1/+54
| | | | ok ratchov@
* add support for M-audio Audiophile 192kratchov2010-07-311-4/+15
|
* remove duplicate AP192K_GPIO_XXX macros,ratchov2010-07-211-6/+1
| | | | from Alexandr Shadchin, thanks!
* make ENVY_GPIO_XXX macros card specific, add stub for audiophile 192kratchov2010-07-211-10/+88
|
* add two new members to structs audio_encoding and audio_prinfo.jakemsr2010-07-151-1/+7
| | | | | | | | | | for both structs, the new members are 'bps' and 'msb', which describe the number of bytes per sample and data alignment in the sample, respectively. drivers must properly set these fields in the 'query_encoding', 'set_parameters' and 'get_default_params' hardware interface methods. discussed with ratchov, deraadt
* these files don't need to include proc.h anymore. ok oga for agptedu2010-04-081-2/+1
|
* Don't stop DMA in envy_halt_intput() and/or envy_halt_output().ratchov2010-03-071-43/+162
| | | | | | Instead wait for the next interrupt and stop DMA in the interrupt handler. This prevents the chip from entering a unstable state in which DMA doesn't start cleanly.
* Fix up some of the comments to use the correctratchov2010-02-251-8/+8
| | | | | capitilization for names. from brad, thanks!
* Remove trailing spaces,ratchov2010-02-251-50/+50
| | | | from Alexandr Shadchin <alexandr.shadchin at gmail.com>, thanks!
* Add necessary bits to support AC97 codecs in envy and add supportratchov2010-02-201-2/+149
| | | | | | | | for the VIA Tremor 5.1 card. From Alexandr Shadchin <alexandr.shadchin at gmail.com>, thanks! help from oga@
* Add support for ``M-Audio Revolution 5.1'' cards, based on envy24HT.ratchov2009-11-021-3/+252
| | | | | From Alexandr Shadchin <ShadchinAV _at_ mail.ru> Thanks!
* add the subvendor ID of ``M-Audio Audiophile 2496'' and add it toratchov2009-10-241-1/+8
| | | | the list of supported cards
* At initialization of HT chips, write configuration on the correspondingratchov2009-10-111-11/+21
| | | | | | | | | control registers rather than on the PCI configuration space (which is ok for non-HT chips only). Also fix the offset GPIO mask/dir are read from EEPROM, old ones are working by accident. both fixes are from Alexandr Shadchin <ShadchinAV _at_ mail.ru> Thanks!
* the block size must be multiple of the pci burst size (overwiseratchov2009-05-181-10/+6
| | | | dma pointers can overrun)
* add support HT mixer knobs (ie routing control). Allow monitoringratchov2009-05-081-5/+37
| | | | analog inputs
* add support for the ak4358 DAC used in ESI Julia cards. There areratchov2009-05-081-9/+67
| | | | | | two mono line0 and line1 knobs rather than a single stereo knob because that's how the routing control (not exposed for ht chips yet) works.
* print card model, the number of inputs and the number of outputsratchov2009-05-081-5/+4
| | | | when the device attaches
* add support for m-audio delta 1010, delta 66 and delta 44 sinceratchov2009-05-081-6/+27
| | | | | they are the same as the delta 1010lt card, only the number of implemented codecs change
* rename few functions and macros, fix styleratchov2009-05-081-43/+53
|
* expose HT mixer; since neither the digital mixer nor codecratchov2009-05-081-14/+15
| | | | sub-mixers are implemented, it's empty.
* use the number of channels rather than the number of stereo dacs/adcs,ratchov2009-05-081-31/+48
| | | | because there will support for non-stereo dacs/adcs soon.
* hide controls corresponding to missing dacs, adcs or spdifs.ratchov2009-05-081-25/+14
|
* put codec-specific mixer bits in their own routines andratchov2009-05-041-95/+145
| | | | | | reference the code in global envy_card structures. Allows the same mixer code to be shared across differents cards. Will ease adding codec-specific knobs when adding support for new cards.
* reorganize mixer bits to allow, supporting codec-dependent mixerratchov2009-05-031-67/+119
| | | | | | | controls later. Also stop using ``next'' and ``prev'' pointers, since they make impossible exposing ``source'' knobs for streams that do not have ``gain'' knobs. This implies renaming ``xxx.source'' knobs to ``xxx_source''. Besides that, no behaviour change.
* add basic support for Envy24HT chips and for ``ESI Juli@''ratchov2009-04-251-23/+155
| | | | | | cards using it. No mixer yet. ok jakemsr@