Home | History | Annotate | Download | only in isa
History log of /src/sys/dev/isa/cms.c
RevisionDateAuthorComments
 1.23  08-May-2019  isaki Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly. Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism. The encoding/channels/frequency
conversions are completely handled in the upper layer. So the hard-
ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
- Obsoletes query_encoding and add query_format instead.
- Obsoletes set_params and add set_format instead.
- Remove drain, setfd, mappage.
- The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c -> dev/audio/audio.c (rewritten)
- dev/audiovar.h -> dev/audio/audiovar.h
- dev/audio_dai.h -> dev/audio/audio_dai.h
- dev/audio_if.h -> dev/audio/audio_if.h
- dev/audiobell.c -> dev/audio/audiobell.c
- dev/audiobellvar.h -> dev/audio/audiobellvar.h
- dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c
 1.22  10-Dec-2016  maya branches: 1.22.16; 1.22.20;
Be explicit about precedence of operators
Appeases clang when building an ALL kernel
 1.21  09-Apr-2012  plunky branches: 1.21.2; 1.21.16; 1.21.20;
Tidy up a little, the way that midi attachment code works

- change midi_attach() to omit the 'parent' arg (there are
only two callers of this and it is not used)

- change midisyn_attach() to midisyn_init(), so not needing a midi_softc,
and fix the midi_pcppi driver to set hw_if and hw_hdl directly in
its midi_softc before calling midi_attach()

- add a device_t to opl_softc structure, change opl drivers to store
the device 'self' in opl_softc and fix opl_attach() to use this
opl_softc->dev field directly rather than a field in an otherwise
unused midi_softc

- remove unnecessary midi_softc from opl and cms drivers (child device
provides that)

reviewed by mrg
 1.20  24-Nov-2011  jakllsch branches: 1.20.2;
This hopefully completes the audiomp conversion of cms(4).
 1.19  23-Nov-2011  jmcneill Merge jmcneill-audiomp3 branch, which is derived from ad-audiomp2. From
the original ad-audiomp branch notes:

Add MP locking to the audio drivers.

Making the audio drivers MP safe is necessary before efforts
can be made to make the VM system MP safe.

The are two locks per device instance, an ISR lock and
a character device lock. The ISR lock replaces calls to
splaudio()/splx(), and will be held across calls to device
methods which were called at splaudio() before (e.g.
trigger_output). The character device lock is held across
calls to nearly all of the methods, excluding some only
used for initialization, e.g. get_locks.

Welcome to 5.99.57.
 1.18  28-Apr-2008  martin branches: 1.18.12; 1.18.34; 1.18.36;
Remove clause 3 and 4 from TNF licenses
 1.17  16-Mar-2008  cube branches: 1.17.2; 1.17.4;
Fix compilation. Noted by yamt@.
 1.16  15-Mar-2008  cube Split device_t and softc for opl(4). That should have been done along with
midi(4), because opl_softc embed a midi_softc.
Fixes PR#38242 by Onno van der Linden.
 1.15  19-Oct-2007  ad branches: 1.15.12; 1.15.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.14  16-Nov-2006  christos branches: 1.14.8; 1.14.22; 1.14.24; 1.14.28;
__unused removal on arguments; approved by core.
 1.13  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.12  30-Jun-2006  chap branches: 1.12.4; 1.12.6;
Ankh-Morpork, we have a MIDI driver....

Merge from chap-midi branch, after
~month for review
Comments by thorpej@ drochner@ and Alexandre Ratchov

Incorporated: points by thorpej@ drochner@; preliminary support for
a stats-collecting ioctl suggested by martin@ from comments by A.R.

PR kern/32441 kern/32442 kern/32567 kern/32588 kern/32694 kern/33590
kern/33614 and one instance of kern/32651

ok martin@
 1.11  11-Dec-2005  christos branches: 1.11.4; 1.11.8; 1.11.14; 1.11.16;
merge ktrace-lwp.
 1.10  27-Feb-2005  perry branches: 1.10.4;
nuke trailing whitespace
 1.9  04-Feb-2005  perry de-__P
 1.8  14-Sep-2004  drochner branches: 1.8.4; 1.8.6;
Separate the namespace for default (ie unspecified) locators used
by the isa.c bus driver and the "address/whatever not specified"
argument passed to leaf device drivers.
The former is "ISACF_XXX_DEFAULT" as generaterd by config(8), the latter
"ISA_UNKNOWN_XXX", defined in isavar.h.
This way we save a dependency of every ISA device driver on "locators.h".
 1.7  02-Oct-2002  thorpej branches: 1.7.6;
Fix sizeof and whitespace bug from the script I'm using to do the
CFATTACH_DECL conversion. (Grumble.)
 1.6  02-Oct-2002  thorpej Use CFATTACH_DECL().
 1.5  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.4  07-Jan-2002  thorpej Overhaul of the ISA autoconfiguration code to support direct
configuration of devices logically attached to the ISA bus:

* Change the isa_attach_args to have arrays of io, mem, irq, drq
resources.
* Add a "pnpnames" and a linked list of "pnpcompatnames" to the
isa_attach_args. If either of these members are non-NULL,
direct configuration of the bus is being performed. Add an
ISA_DIRECT_CONFIG() macro to test for this.
* Drivers are not allowed to modify the isa_attach_args unless
direct configuration is not being performed and the probe fucntion
is returning success.
* Adapt device drivers -- currently, all driver probe routines return
"no match" if ISA_DIRECT_CONFIG() evaluates to true.
 1.3  13-Nov-2001  lukem add RCSID
 1.2  26-Sep-2001  thorpej "cms" is not needs-flag
 1.1  01-May-2000  augustss branches: 1.1.6; 1.1.8; 1.1.10; 1.1.12;
Add Creative Music System driver. From Gregory McGarry <g.mcgarry@ieee.org>
 1.1.12.1  01-Oct-2001  fvdl Catch up with -current.
 1.1.10.2  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.1.10.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.8.5  18-Oct-2002  nathanw Catch up to -current.
 1.1.8.4  28-Feb-2002  nathanw Catch up to -current.
 1.1.8.3  11-Jan-2002  nathanw More catchup.
 1.1.8.2  14-Nov-2001  nathanw Catch up to -current.
 1.1.8.1  08-Oct-2001  nathanw Catch up to -current.
 1.1.6.2  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.6.1  01-May-2000  bouyer file cms.c was added on branch thorpej_scsipi on 2000-11-20 11:41:11 +0000
 1.7.6.4  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.7.6.3  04-Feb-2005  skrll Sync with HEAD.
 1.7.6.2  21-Sep-2004  skrll Fix the sync with head I botched.
 1.7.6.1  18-Sep-2004  skrll Sync with HEAD.
 1.8.6.2  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.8.6.1  12-Feb-2005  yamt sync with head.
 1.8.4.1  29-Apr-2005  kent sync with -current
 1.10.4.3  17-Mar-2008  yamt sync with head.
 1.10.4.2  27-Oct-2007  yamt sync with head.
 1.10.4.1  30-Dec-2006  yamt sync with head.
 1.11.16.1  13-Jul-2006  gdamore Merge from HEAD.
 1.11.14.3  09-Jun-2006  chap Bit of housecleaning.

"miditune" wasn't a good name for the pitch representation (even if it
did come from the MIDI Tuning Specification) because for too many people
a 'tune' is a little ditty, not a single pitch. Changed the name to
midipitch and added a typedef midipitch_t; renamed the associated macros
consistently.

The type and operations on it are now in <sys/midiio.h> because they could
show up in userland for manipulation of the MIDI Tuning messages that
RP-012 defines. The macro MIDIPITCH_TO_HZ18 expands in userland to
ordinary libm calls, and in-kernel to the no-floating-point version in
midisyn. A few more operations are defined in userland where libm is
available.

At the same time, made midipitch_t signed. It has the bits to spare,
and such manipulations as adding several corrections and clamping the
result will be simpler with it signed.
 1.11.14.2  08-Jun-2006  chap Rototill of midisyn <-> synth driver i/f.

The DOALLOC and FREQXLATE flags are on the way out. Whether a driver wants
allocation service is deducible from whether it provides an allocv method, and
anyway none does. As for freq, they all get a miditune and can convert it
whichever way they want.

Controller handling with midictl is hooked in but few controllers watched yet.

Some macros for manipulating the miditune type are currently in midisynvar.h
but should perhaps be exported in midiio.h.

opl no longer has its own master volume state (there was no setter for it
anyway, it never changed); soon that will be handled centrally in midisyn.

Builds a kernel. Not all functionality tested yet.
 1.11.14.1  07-Jun-2006  chap The midisyn clients now use designated initializers so the method
structure can evolve. Only opl currently provides any methods beyond
open/close/note-on/note-off. Only cms takes a note number; the others
want a frequency. This is good because it is much easier that way to
put a common handler for tuning/pitchbend/portamento in midisyn itself.

Next up, axe most methods nobody implements. Split note-on into two
methods, one with a frequency, one with a note number, of which a driver
provides one or the other. So far all of the clients delegate voice
allocation to midisyn, so clarify that the method is getting an actual
voice number for the device and not a MIDI channel. If a device that can
do its own allocation is later to be supported, let appropriate different
methods be added then.
 1.11.8.1  11-Aug-2006  yamt sync with head
 1.11.4.1  09-Sep-2006  rpaulo sync with head
 1.12.6.2  10-Dec-2006  yamt sync with head.
 1.12.6.1  22-Oct-2006  yamt sync with head
 1.12.4.1  18-Nov-2006  ad Sync with head.
 1.14.28.1  25-Oct-2007  bouyer Sync with HEAD.
 1.14.24.2  23-Mar-2008  matt sync with HEAD
 1.14.24.1  06-Nov-2007  matt sync with HEAD
 1.14.22.1  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.14.8.1  23-Oct-2007  ad Sync with head.
 1.15.16.2  02-Jun-2008  mjf Sync with HEAD.
 1.15.16.1  03-Apr-2008  mjf Sync with HEAD.
 1.15.12.1  24-Mar-2008  keiichi sync with head.
 1.17.4.1  16-May-2008  yamt sync with head.
 1.17.2.1  18-May-2008  yamt sync with head.
 1.18.36.1  19-Nov-2011  jmcneill port ad-audiomp2 branch changes to 5.99.56
todo:
- port ad-audiomp2 pcppi changes
- these drivers need to be fixed:
- emuxki
- gcscaudio
- hdafg
- uaudio
- umidi
- MD audio drivers
 1.18.34.1  17-Apr-2012  yamt sync with head
 1.18.12.1  11-Dec-2008  ad Checkpoint work in progress.
 1.20.2.1  29-Apr-2012  mrg sync to latest -current.
 1.21.20.1  07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.21.16.1  05-Feb-2017  skrll Sync with HEAD
 1.21.2.1  03-Dec-2017  jdolecek update from HEAD
 1.22.20.2  04-May-2019  isaki Move dev/audio_if.h -> dev/audio/audio_if.h
 1.22.20.1  03-May-2019  isaki Remove unnecessary header file.
 1.22.16.1  10-Jun-2019  christos Sync with HEAD

RSS XML Feed