Home | History | Annotate | Download | only in isapnp
History log of /src/sys/dev/isapnp/gus_isapnp.c
RevisionDateAuthorComments
 1.41  29-Feb-2020  isaki Remove rounding by 4 bytes on round_blocksize().
For drivers which supports only 16bit * 2channels sampling,
rounding by 4 bytes no longer meaningful.
 1.40  08-May-2019  isaki branches: 1.40.4;
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.39  16-Mar-2019  isaki branches: 1.39.2;
Use C99 style struct initializer to audio_hw_if.
 1.38  14-Jul-2016  msaitoh branches: 1.38.18;
- Use aprint*() more in xxx_attach().
- Add missing aprint_naive("\n").
- Remove extra spaces and tabs.
- KNF.
 1.37  27-Oct-2012  chs branches: 1.37.14;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.36  23-Nov-2011  jmcneill branches: 1.36.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.35  12-May-2009  cegger branches: 1.35.12; 1.35.14;
struct device * -> device_t, no functional changes intended.
 1.34  12-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.33  28-Apr-2008  martin branches: 1.33.12; 1.33.14;
Remove clause 3 and 4 from TNF licenses
 1.32  08-Apr-2008  cegger branches: 1.32.2; 1.32.4;
use aprint_*_dev and device_xname
 1.31  19-Oct-2007  ad branches: 1.31.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.30  16-Nov-2006  christos branches: 1.30.8; 1.30.22; 1.30.24; 1.30.28;
__unused removal on arguments; approved by core.
 1.29  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.28  25-Sep-2006  jmcneill PR# 32473: GUS PnP audio device seems to be broken in NetBSD 3.0

We now need to call isa_drq_alloc to reserve DMA channel(s) for ISA devices.
Thanks to Ben Collver for testing the patch for me!
 1.27  30-Aug-2006  christos branches: 1.27.2; 1.27.4;
fix missing initializer
 1.26  29-Mar-2006  thorpej Use device_private().
 1.25  11-Dec-2005  christos branches: 1.25.4; 1.25.6; 1.25.8; 1.25.10; 1.25.12;
merge ktrace-lwp.
 1.24  13-Jan-2005  kent branches: 1.24.8; 1.24.10;
ansify and KNF
 1.23  29-Oct-2004  yamt constify audio_hw_if, midi_hw_if, and radio_hw_if.
 1.22  03-May-2003  wiz branches: 1.22.2;
DMA, not dma nor Dma.
 1.21  11-Oct-2002  fvdl Don't include <i386/isa/icu.h>
 1.20  02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.19  30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.18  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.17  13-Nov-2001  lukem add RCSID
 1.16  03-Oct-2001  augustss Add a new optional method, dev_ioctl, to the audio hardware driver interface.
It is called when an unrecognized ioctl() is performed on a device,
thus allowing ioctl()s that frob the hardware driver (like loading
microcode).
 1.15  07-Feb-2000  thorpej branches: 1.15.6; 1.15.8; 1.15.10;
Add a new function call to the ISA DMA API: isa_dmamaxsize(), which returns
the maximum transfer size for the specified DMA channel. Make all clients
of ISA DMA use this call to determine their maximum transfer size.
 1.14  18-May-1999  augustss branches: 1.14.2;
Make it possible for this driver tp work again.
From Thomas Klausner - wiz@danbala.tuwien.ac.at
 1.13  22-Mar-1999  mycroft branches: 1.13.2; 1.13.4;
Reject variant numbers which are too large (so that a new version of isapnpdevs
with an old driver will not lose mysteriously).
 1.12  22-Mar-1999  mycroft Update callers of isapnp_devmatch().
 1.11  17-Feb-1999  mycroft Update comments.
 1.10  17-Feb-1999  mycroft Pass the direction to the allocm and round_buffersize methods.
Some drivers need this to properly allocate DMAable memory.
 1.9  23-Jul-1998  christos Create a master list of pnp logical and compatibility device codes instead
of hard-coding it into each driver and use a centralized probe function.
 1.8  09-Jun-1998  thorpej Nuke __BROKEN_INDIRECT_CONFIG.
 1.7  09-Jun-1998  thorpej Adjust for the changes to the ISA DMA API.
 1.6  12-Jan-1998  thorpej Adjust for config changes.
 1.5  30-Nov-1997  drochner make it compile without "__BROKEN_INDIRECT_CONFIG"
 1.4  19-Nov-1997  augustss Make sure isapnp_config() runs before we allocate the DMA channels.
 1.3  19-Oct-1997  augustss branches: 1.3.2;
Make the audio API (almost) SunOS compatible.
The changes is to allow some limited mixer manipulation through
the audio device (instead of the mixer device).
This rendered 4 methods in audio_hw_if unused so garbage collect these.
 1.2  09-Oct-1997  jtc branches: 1.2.2;
Fix tipo inherited from old version of TNF copyright template.
 1.1  06-Oct-1997  augustss GUS PnP sound card driver from Kari Mettinen.
 1.2.2.2  14-Oct-1997  thorpej Update marc-pcmcia branch from trunk.
 1.2.2.1  09-Oct-1997  thorpej file gus_isapnp.c was added on branch marc-pcmcia on 1997-10-14 10:24:12 +0000
 1.3.2.1  19-Nov-1997  mellon Pull rev 1.4 up from trunk (augustss)
 1.13.4.1  21-Jun-1999  thorpej Sync w/ -current.
 1.13.2.1  08-Jan-2000  he Pull up revision 1.14 (requested by wiz):
Fix a problem preventing GUS P&P sound-card from working.
 1.14.2.1  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.15.10.1  11-Oct-2001  fvdl Catch up with -current. Fix some bogons in the sparc64 kbd/ms
attach code. cd18xx conversion provided by mrg.
 1.15.8.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.15.8.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.15.6.3  18-Oct-2002  nathanw Catch up to -current.
 1.15.6.2  14-Nov-2001  nathanw Catch up to -current.
 1.15.6.1  08-Oct-2001  nathanw Catch up to -current.
 1.22.2.2  17-Jan-2005  skrll Sync with HEAD.
 1.22.2.1  02-Nov-2004  skrll Sync with HEAD.
 1.24.10.3  27-Oct-2007  yamt sync with head.
 1.24.10.2  30-Dec-2006  yamt sync with head.
 1.24.10.1  21-Jun-2006  yamt sync with head.
 1.24.8.1  06-Oct-2006  ghen Pull up following revision(s) (requested by jmcneill in ticket #1531):
sys/dev/isapnp/gus_isapnp.c: revision 1.28
PR# 32473: GUS PnP audio device seems to be broken in NetBSD 3.0
We now need to call isa_drq_alloc to reserve DMA channel(s) for ISA
devices.
Thanks to Ben Collver for testing the patch for me!
 1.25.12.1  31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.25.10.1  19-Apr-2006  elad sync with head.
 1.25.8.2  03-Sep-2006  yamt sync with head.
 1.25.8.1  01-Apr-2006  yamt sync with head.
 1.25.6.1  22-Apr-2006  simonb Sync with head.
 1.25.4.1  09-Sep-2006  rpaulo sync with head
 1.27.4.2  10-Dec-2006  yamt sync with head.
 1.27.4.1  22-Oct-2006  yamt sync with head
 1.27.2.1  18-Nov-2006  ad Sync with head.
 1.30.28.1  25-Oct-2007  bouyer Sync with HEAD.
 1.30.24.1  06-Nov-2007  matt sync with HEAD
 1.30.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.30.8.1  23-Oct-2007  ad Sync with head.
 1.31.16.1  02-Jun-2008  mjf Sync with HEAD.
 1.32.4.2  16-May-2009  yamt sync with head
 1.32.4.1  16-May-2008  yamt sync with head.
 1.32.2.1  18-May-2008  yamt sync with head.
 1.33.14.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.33.12.1  12-Dec-2008  ad Checkpoint work in progress.
 1.35.14.2  22-Nov-2011  jmcneill get rid of unused 'powerstate' callback in audio_hw_if
 1.35.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.35.12.2  30-Oct-2012  yamt sync with head
 1.35.12.1  17-Apr-2012  yamt sync with head
 1.36.8.2  03-Dec-2017  jdolecek update from HEAD
 1.36.8.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.37.14.1  05-Oct-2016  skrll Sync with HEAD
 1.38.18.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.38.18.1  10-Jun-2019  christos Sync with HEAD
 1.39.2.5  04-May-2019  isaki Move dev/audio_if.h -> dev/audio/audio_if.h
 1.39.2.4  04-May-2019  isaki Remove obsoleted methods in audio_hw_if.
- drain: is handled in audio upper layer now.
- mappage: is handled in audio upper layer now.
- setfd: no one uses and it's meaningless now.
 1.39.2.3  03-May-2019  isaki Remove unnecessary header file.
 1.39.2.2  03-May-2019  isaki Remove dev/auconv.[ch].
Now it is handled in dev/audio/audio.c and dev/audio/linear.c.
Remove dev/mulaw.h.
It already have been just a link to dev/audio/mulaw.h in this
branch.
 1.39.2.1  21-Apr-2019  isaki Adapt ad1848/cs4231 families to audio2.
 1.40.4.1  29-Feb-2020  ad Sync with head.

RSS XML Feed