Home | History | Annotate | Download | only in ic
History log of /src/sys/dev/ic/ac97var.h
RevisionDateAuthorComments
 1.23  27-Oct-2012  chs split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.22  23-Nov-2011  jmcneill branches: 1.22.8;
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.21  12-May-2009  cegger branches: 1.21.12; 1.21.14;
struct device * -> device_t, no functional changes intended.
 1.20  21-Feb-2007  thorpej branches: 1.20.2; 1.20.42; 1.20.56; 1.20.58;
Replace the Mach-derived boolean_t type with the C99 bool type. A
future commit will replace use of TRUE and FALSE with true and false.
 1.19  26-Jul-2006  kent branches: 1.19.10;
add capability to support for S/PDIF.
If a codec supports for AC'97 S/PDIF, it will have an mixer "spdif.enable."
However, we can't change the value of the mixer without AC'97 host
driver's support.
 1.18  15-Apr-2006  jmcneill * Add a flag AC97_HOST_INVERTED_EAMP. (kern/18880, kern/24488).
* Make reset callback optional; not all devices need it. (port-i386/14260, kern/12603, kern/12723, kern/24957).
 1.17  11-Dec-2005  christos branches: 1.17.4; 1.17.6; 1.17.8; 1.17.10; 1.17.12;
merge ktrace-lwp.
 1.16  11-Apr-2005  jmcneill branches: 1.16.2;
Add ac97_attach_type(), to allow the hw driver to skip probes for audio or
modem devices. ac97_attach now calls ac97_attach_type() with
AC97_CODEC_TYPE_AUDIO, for backwords compatibility.
 1.15  04-Apr-2005  jmcneill * Add support for skipping either the modem or audio AC'97 probes
via host_flags: AC97_HOST_SKIP_AUDIO, AC97_HOST_SKIP_MODEM
* If we're dealing with a modem codec, print the extended modem
capabilities.
* Add basic AC'97 modem initialization support.
* Add some (but not all) AC'97 modem registers. More will be added later.
 1.14  10-Jan-2005  kent branches: 1.14.2;
merge kent-audio1 branch, which introduces audio filter pipeline to the MI
audio framework


Summary of changes:

* struct audio_params
- remove sw_code, factor, factor_denom, hw_sample_rate,
hw_encoding ,hw_precision, and hw_channels. Conversion information
is conveyed by stream_filter_list_t.
- change the type of sample_rate: u_long -> u_int
- add `validbits,' which represents the valid data size in
precision bits. It is required in order to distinguish 24/32bit
from 24/24bit or 32/32bit.

* audio_hw_if
- add two parameters to set_params()
stream_filter_list_t *pfil, stream_filter_list *rfil
A HW driver should set filter recipes for requested formats
- constify audio_params parameters of trigger_output() and
trigger_input(). They represent audio formats for the hardware.
- make open() and close() optional
- add int (AUMODE_PLAY or AUMODE_RECORD) and audio_params_t parameters
to round_blocksize()

* sw_code is replaced with stream_filter_t.
stream_filer_t converts audio data in an input buffer and writes
into another output buffer unlike sw_code, which converts data in
single buffer.
converters in dev/auconv.c, dev/mulaw.c, dev/aurateconv.c,
dev/tc/bba.c, dev/ic/msm6258.c, and arch/arm/iomd/vidcaudio.c are
reimplemented as stream_filter_t

* MI audio
- audiosetinfo() builds filter pipelines from stream_filter_list_t
filled by audio_hw_if::set_params()
- audiosetinfo() returns with EINVAL if mmapped and set_params()
requests filters
- audio_write(), audio_pint(), and audio_rint() invoke a filter
pipeline.
- ioctl() for FIONREAD, AUDIO_WSEEK, AUDIO_GETIOFFS,
AUDIO_GETOOFFS, and audio_prinfo::{seek,samples} for
AUDIO_GETINFO handle values for a buffer nearest to userland.

* add `struct device *' parameter to ac97_attach()

* all of audio HW drivers follow audio_hw_if and ac97 changes
 1.13  22-Dec-2004  reinoud Add convenience macro AC97_HAS_SPDIF to check if SPDIF output is supported
in the codec in the line of AC97_IS_4CH and AC97_IS_FIXED_RATE macro's.
 1.12  10-Nov-2004  kent branches: 1.12.2;
move IS_FIXED_RATE(), SUPPORTS_4CH(), and SUPPORTS_6CH to ac97var.h
 1.11  08-Nov-2004  kent - nuke __P()
- add ac97_codec_if_vtbl::detach()
 1.10  22-Sep-2004  kent ac97_host_if::reset() returns non-zero value if codec reset fails, and
ac97 is not attached in that case.

PR: kern/26973
 1.9  23-Aug-2004  thorpej Protect against multiple inclusion.
 1.8  08-Jul-2003  itojun branches: 1.8.2;
function prototype must not have variable name
 1.7  14-Oct-2002  kent branches: 1.7.6;
Mixer changes:
- Add "outputs.surround", "outputs.center", and "outputs.lfe"
- If the codec is not capable of a feature, mixer variables
about the feature is not created. For example, no
"outputs.tone" for a codec without tone control.
- Set the following mixer values in ac97_attach():
outputs.master=127,127
outputs.master.mute=off
outputs.headphones.mute=off
outputs.surround=127,127
outputs.surround.mute=off
outputs.center=127
outputs.center.mute=off
outputs.lfe=127
outputs.lfe.mute=off
inputs.dac.mute=off
inputs.cd.mute=off
inputs.line.mute=off
inputs.aux.mute=off
inputs.video.mute=off
record.volume.mute=off
because the default setting of AC'97 codec (all mutes are on,
and maximum volume) is troublesome.
- Make "char*" parameters of ac97_get_portnum_by_name() "const char*"

Codec ID changes:
- If a codec ID is unknown but its vendor ID is known,
ac97_attach() prints the vendor name like "dev0: <vendor name>
unknown (0xXXXXXXXX) codec;"
- Add IDs of Asahi Kasei AK4542, AK4544, AK4544A, AK4545,
Realtek ALC100
- Correct a vendor name: "Advance Logic" -> "Avance Logic"
- Add capability of codec-specific initialization

ac97_attach():
- CDAC, SDAC, and LDAC are eanabled.
- DELAY() before mixer settings. ThinkPad X24 needs it.

ALC650 codec specific change:
- Add "outputs.surround.lineinjack" to switch the line-in jack
to the surround output
- Add "outputs.center.micjack" and "outputs.lfe.micjack" (alias
of "outputs.center.micjack") to switch the mic jack to the
center/lfe output.
 1.6  08-Oct-2002  kent Add IDs for YMF743-S and YMF753-S.

ac97_attach(): Enable VRA/VRM if the codec is capable of them.

The struct ac97_softc keeps the clock of the codec, the basic
features flag (the value of AC97_REG_RESET), and the extended
features flag (the value of AC97_REG_EXT_AUDIO_ID).

ac97_codec_if: Add get_extcaps(), set_rate(), and set_clock()
methods.
 1.5  31-Dec-2001  thorpej Move the declaration of an enum to avoid an "unnamed field not allowed"
warning in gcc 3.1.
 1.4  07-May-2001  lukem branches: 1.4.2;
delint
 1.3  09-Jan-2001  rh branches: 1.3.2;
Add new AC97_HOST_SWAPPED_CHANNELS host flag that causes left and right
mixer channels to be swapped (required for hardware that has wiring
reversed).
 1.2  04-Nov-2000  thorpej branches: 1.2.2;
Shadow the AC'97 codec registers. This adds two capabilities:
* support devices that crash when reading the codec registers; a flags
interface is added to the host interface and one flag is defined
(AC97_HOST_DONT_READ).
* new API (restore_ports) for restoring the user's settings. This
can be useful after an APM resume after a suspend to disk.

From OpenBSD.
 1.1  15-May-2000  thorpej branches: 1.1.4;
ac97.h -> ac97var.h
 1.1.4.1  03-May-2001  he Pull up revisions 1.2-1.3 (requested by skrll):
Add a driver for the ESS Technology Maestro-1/2/2E AC97 audio chips,
ES1968 and ES1978.
 1.2.2.4  18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.2.2.3  22-Nov-2000  bouyer Sync with HEAD.
 1.2.2.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.2.2.1  04-Nov-2000  bouyer file ac97var.h was added on branch thorpej_scsipi on 2000-11-20 11:40:03 +0000
 1.3.2.3  18-Oct-2002  nathanw Catch up to -current.
 1.3.2.2  08-Jan-2002  nathanw Catch up to -current.
 1.3.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.4.2.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.7.6.8  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.7.6.7  17-Jan-2005  skrll Sync with HEAD.
 1.7.6.6  14-Nov-2004  skrll Sync with HEAD.
 1.7.6.5  24-Sep-2004  skrll Sync with HEAD.
 1.7.6.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.7.6.3  18-Sep-2004  skrll Sync with HEAD.
 1.7.6.2  25-Aug-2004  skrll Sync with HEAD.
 1.7.6.1  03-Aug-2004  skrll Sync with HEAD
 1.8.2.1  22-Sep-2004  jmc Pullup rev 1.10 (requested by kent in ticket #867)

ac97_host_if::reset() returns non-zero value if codec reset fails, and
ac97 is not attached in that case. PR#26973
 1.12.2.1  02-Jan-2005  kent * add "struct device *" parameter to ac97_attach() as discussion in tech-kern
* change the type of sampling rate parameter of ac97_set_rate():
u_long * -> u_int *
* other cosmetic changes
 1.14.2.1  29-Apr-2005  kent sync with -current
 1.16.2.3  26-Feb-2007  yamt sync with head.
 1.16.2.2  30-Dec-2006  yamt sync with head.
 1.16.2.1  21-Jun-2006  yamt sync with head.
 1.17.12.1  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.17.10.1  19-Apr-2006  elad sync with head.
 1.17.8.2  11-Aug-2006  yamt sync with head
 1.17.8.1  24-May-2006  yamt sync with head.
 1.17.6.1  22-Apr-2006  simonb Sync with head.
 1.17.4.1  09-Sep-2006  rpaulo sync with head
 1.19.10.1  27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.20.58.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.20.56.1  07-Dec-2008  ad Ressurect the ad-audiomp branch at request of matt@.

With this commit:

- core audio subsystem made MPSAFE
- eap, btsco drivers made MPSAFE

TODO:

- midi
- convert remaining drivers
 1.20.42.1  16-May-2009  yamt sync with head
 1.20.2.1  27-Feb-2007  ad Add MP locking for audio drivers.
 1.21.14.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.21.12.2  30-Oct-2012  yamt sync with head
 1.21.12.1  17-Apr-2012  yamt sync with head
 1.22.8.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC

RSS XML Feed