Home | History | Annotate | Download | only in pad
History log of /src/sys/dev/pad/padvar.h
RevisionDateAuthorComments
 1.17  24-Jan-2023  mlelstv Pace I/O timing to match the audio interface.
Enable interrupts while copying buffers.
 1.16  14-Jun-2021  riastradh branches: 1.16.10;
pad(4): Omit unused sc_blksize.
 1.15  14-Jun-2021  riastradh pad(4): Sort includes. Add missing includes to padvar.h.
 1.14  14-Jun-2021  riastradh pad(4): Fix some locking.

- No need for sc_cond_lock.
- Issue cv_broadcast under the correct lock.
- Use callout_halt, not haphazard callout_stop.
- IPL_SOFTCLOCK for a mutex taken from a callout.
 1.13  26-Jun-2019  isaki branches: 1.13.14;
Style fixes. No functional changes intended.
- Rename some functions for consistency.
- Rearrange some functions for readability.
- Unify to struct pad_softc.
 1.12  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.11  01-Jul-2017  nat branches: 1.11.6; 1.11.10;
Pad is now clones its device, attaching upon open and detaching upon close.
This means that only one pad device is required in /dev.

The code contains a compile time limit of 128 units.

Ok christos@.
 1.10  01-Jul-2017  nat sc_audiodev should be defined as a device_t as this is what audio_attach_mi
returns.
 1.9  06-Jun-2017  nat pad blocksize 1024 -> 8192. Helps when sleeping in rate limiter.
 1.8  27-May-2017  nat branches: 1.8.2;
Rework of previous.
Math for BYTESTOSLEEP and TIMENEXTREAD is now correct.
 1.7  23-Feb-2017  nat Update pad due to changes in audio. sc_bytes_count and BYTESTOSLEEP are
no longer required.
 1.6  26-Feb-2016  nat branches: 1.6.2; 1.6.4;
Allow reads from pad(4) less or greater than PAD_BLKSIZE.

Ensure that audio data is ready before reading.
Addresses PR 39204.

OK jmcneil@.
 1.5  18-Nov-2014  jmcneill branches: 1.5.2;
Add common audio converters for software volume control. Only supports
slinear16_le and slinear16_be for now.

Convert pad(4) to use the new converters.
 1.4  23-Nov-2011  jmcneill branches: 1.4.8; 1.4.24;
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.3  04-Sep-2008  christos branches: 1.3.6; 1.3.28; 1.3.30;
fix device is not split warning
 1.2  09-May-2008  jmcneill branches: 1.2.4;
Use 2-clause license.
 1.1  11-Nov-2007  jmcneill branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8; 1.1.18; 1.1.24; 1.1.26; 1.1.28; 1.1.30;
Implement volume controls for pseudo audio device.
 1.1.30.2  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.1.30.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.1.28.2  04-May-2009  yamt sync with head.
 1.1.28.1  16-May-2008  yamt sync with head.
 1.1.26.1  18-May-2008  yamt sync with head.
 1.1.24.2  28-Sep-2008  mjf Sync with HEAD.
 1.1.24.1  02-Jun-2008  mjf Sync with HEAD.
 1.1.18.2  09-Jan-2008  matt sync with HEAD
 1.1.18.1  11-Nov-2007  matt file padvar.h was added on branch matt-armv6 on 2008-01-09 01:53:28 +0000
 1.1.8.2  19-Nov-2007  mjf Try to fix sync botch.
 1.1.8.1  11-Nov-2007  mjf file padvar.h was added on branch mjf-devfs on 2007-11-19 19:58:39 +0000
 1.1.6.2  15-Nov-2007  yamt sync with head.
 1.1.6.1  11-Nov-2007  yamt file padvar.h was added on branch yamt-lazymbuf on 2007-11-15 11:44:16 +0000
 1.1.4.2  14-Nov-2007  joerg Sync with HEAD.
 1.1.4.1  11-Nov-2007  joerg file padvar.h was added on branch jmcneill-pm on 2007-11-14 19:04:27 +0000
 1.1.2.2  13-Nov-2007  bouyer Sync with HEAD
 1.1.2.1  11-Nov-2007  bouyer file padvar.h was added on branch bouyer-xenamd64 on 2007-11-13 16:32:17 +0000
 1.2.4.1  19-Oct-2008  haad Sync with HEAD.
 1.3.30.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.3.28.1  17-Apr-2012  yamt sync with head
 1.3.6.1  11-Dec-2008  ad Checkpoint work in progress.
 1.4.24.1  23-Nov-2014  martin Pull up following revision(s) (requested by jmcneill in ticket #249):
sys/modules/pad/Makefile: revision 1.2
sys/arch/arm/allwinner/awin_hdmiaudio.c: revision 1.5
sys/dev/pad/pad.c: revision 1.22
sys/dev/pad/padvol.c: file removal
sys/dev/pad/files.pad: revision 1.5
sys/dev/auvolconv.c: revision 1.1
sys/dev/pad/padvol.h: file removal
sys/dev/audio.c: revision 1.266
sys/dev/files.audio: revision 1.3 (via patch: sys/conf/files)
sys/dev/auvolconv.h: revision 1.1
sys/dev/pad/padvar.h: revision 1.5
sys/dev/audio_if.h: revision 1.70
sys/arch/arm/allwinner/files.awin: revision 1.26
Add common audio converters for software volume control. Only supports
slinear16_le and slinear16_be for now.
Convert pad(4) and awin_hdmiaudio to use the new converters.
 1.4.8.1  03-Dec-2017  jdolecek update from HEAD
 1.5.2.2  28-Aug-2017  skrll Sync with HEAD
 1.5.2.1  19-Mar-2016  skrll Sync with HEAD
 1.6.4.1  21-Apr-2017  bouyer Sync with HEAD
 1.6.2.1  20-Mar-2017  pgoyette Sync with HEAD
 1.8.2.1  10-Jun-2017  snj Pull up following revision(s) (requested by nat in ticket #20):
sys/dev/pad/pad.c: revisions 1.33-1.35
sys/dev/pad/padvar.h: revision 1.9
Express BYTESTOSLEEP as an 64 bit integer.
Use BYTESTOSLEEP in expresson of BYTES_PER_SEC.
--
sc_bytes_count needs to be set in pad_audio_open not pad_open.
--
Simplification of rate limiter. It now works uni/multiprocessor.
--
pad blocksize 1024 -> 8192. Helps when sleeping in rate limiter.
 1.11.10.1  21-Apr-2019  isaki Reimplement audio subsystem.
http://mail-index.netbsd.org/tech-kern/2019/04/01/msg024944.html
At first step, audio and devices tightly coupled to audio.
audio.c -> dev/audio.c: completely rewritten.
mulaw.c -> audio/mulaw.c, audio/alaw.c: improve quality.
audiovar.h, mulaw.h: should be removed.
audio/linear.c: efficient new linear-linear converter.
auconv.[ch]: should be removed but need some functions for now.
aurateconv, auvolconv: removed (new audio.c handles it).
audiobell.c: efficient and small new bell driver.
audiobelldata.h: removed 4KB sine wave data.
pad/pad.c: catch up audio, but not cloneable for now.
 1.11.6.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.11.6.1  10-Jun-2019  christos Sync with HEAD
 1.13.14.1  17-Jun-2021  thorpej Sync w/ HEAD.
 1.16.10.1  02-May-2023  martin Pull up following revision(s) (requested by mlelstv in ticket #153):

sys/dev/pad/pad.c: revision 1.80
sys/dev/pad/pad.c: revision 1.81
sys/dev/pad/pad.c: revision 1.82
sys/dev/pad/pad.c: revision 1.79
sys/dev/pad/padvar.h: revision 1.17

Pace I/O timing to match the audio interface.

Enable interrupts while copying buffers.

Write slinear_le 16bit samples, independent from platform and
AUDIO_INTERNAL_BITS.

No longer use AUDIO_INTERNAL_BITS but rely on passed audio format.
Don't overflow when scaling 32bit samples.

RSS XML Feed