Commit Graph

189 Commits

Author SHA1 Message Date
cg
1698a08e9a move channel-swapping support to the hardware driver since it knows the card
state best
1999-12-12 02:18:58 +00:00
cg
f1be6706cf increase buffer size, reduce number of channels allocated since we only use
1 at the moment
1999-12-12 02:16:14 +00:00
tanimura
45d99c1018 Make the origins clear.
Pointed out by:	Tatoku Ogaito <tacha@trap.fukui-med.ac.jp>
1999-12-10 01:20:08 +00:00
billf
fcfd8dc948 Reckognize the 'Avance Asound 100'
Submitted by:	Oliver Fromme <olli@dorifer.heim3.tu-clausthal.de>
1999-12-07 01:53:24 +00:00
peter
7de5d2d418 Update for pnp adjustments regarding NPNP.
Also, optimize out a mess of #if's that were duplicating work already
done by config(8).  For example, if a file is marked as
"dev/sound/pci/foo.c optional pcm pci" then it's only added if pcm *and*
pci are present, so #if NPCM > 0 and #if NPCI > 0 are totally redundant.
A bit more work is still needed.

Discussed with: cg (a few weeks ago)
1999-12-06 18:26:33 +00:00
cg
ba06781574 conditionalise some warning messages
Submitted by:	Vladimir N.Silyaev <vns@delta.odessa.ua>
1999-12-05 20:25:29 +00:00
cg
06117a9159 fix dma underrun issues
mutate some panics to kasserts
add more spl protection

PR:		kern/14990
Partially Submitted by:	Vladimir N.Silyaev <vns@delta.odessa.ua>
Reviewed by:	dfr
1999-12-05 19:09:13 +00:00
tanimura
07a453ccf2 Add the logical ID of ViBRA16CL PNP on Micron Millenium II motherboards.
PR:		kern/15243
Submitted by:	Steven G. Kargl <kargl@troutmask.apl.washington.edu>
1999-12-04 10:13:17 +00:00
tanimura
e7bbc71094 Call ISA_PNP_PROBE() to probe PnP cards, rather than match
the vendor and logical IDs directly.

Submitted by:	peter
Tested by:	Timo Geusch <freebsd@timog.prestel.co.uk>
1999-12-04 09:51:24 +00:00
mdodd
87e31f4b90 Remove the 'ivars' arguement to device_add_child() and
device_add_child_ordered().  'ivars' may now be set using the
device_set_ivars() function.

This makes it easier for us to change how arbitrary data structures are
associated with a device_t.  Eventually we won't be modifying device_t
to add additional pointers for ivars, softc data etc.

Despite my best efforts I've probably forgotten something so let me know
if this breaks anything.  I've been running with this change for months
and its been quite involved actually isolating all the changes from
the rest of the local changes in my tree.

Reviewed by:	peter, dfr
1999-12-03 08:41:24 +00:00
dfr
8b0f80aa08 Add ESS1879.
Submitted by: MIHIRA Sanpei Yoshiro <sanpei@sanpei.org>
1999-11-30 09:11:06 +00:00
alfred
45fc07fd1e tanimura implemented SNDCTL_DSP_GETODELAY for pcm.
Submitted by: tanimura
1999-11-29 23:01:59 +00:00
dfr
f5e6518176 Disable on x86 since it conflicts with PNPBIOS. 1999-11-27 17:03:08 +00:00
tanimura
959ebb7203 Add another vendor ID(CTL0048) for SB32 PnP.
Submitted by:	Charles Anderson <caa@columbus.rr.com>
1999-11-27 06:33:27 +00:00
dcs
89f6b847a5 Add id for ESS 1869 OEM to Compaq on Presario 1621. 1999-11-26 18:58:03 +00:00
tanimura
9aeeffca64 Attach the resources as given in the configuration in a proper way
for non-PnP cards.

Noticed by:	Pascal Hofstee <daeron@shadowmere.student.utwente.nl>
1999-11-25 01:13:52 +00:00
cg
fe6a86187c fix panic for large writes in non-blocking mode 1999-11-22 21:16:01 +00:00
cg
2c7a9e5d57 fix mixer to return properly scaled values 1999-11-22 16:20:48 +00:00
tanimura
9437480d40 Comment out the newmidi stuff. 1999-11-22 10:28:05 +00:00
tanimura
05e9b4af3e - Introduce the bridge drivers for Sound Blaser, GUS and Crystal
Semiconductor CS461x/428x.
- Add support for GUS and CS461x/428x pcm.

Bridges reviewed by:			dfr, cg
GUS non-PnP support submitted by:	Ville-Pertti Keinonen <will@iki.fi>
GUS PnP support tested by:		Michiru Saito <mich@mtci.ne.jp>
1999-11-22 06:07:49 +00:00
cg
f4b7f8d09b fix for -fno-builtin
PR:		kern/14278
1999-11-21 17:15:12 +00:00
cg
b2eb38ffac repo-copied to make way for newmidi, this commit updates include paths 1999-11-20 16:50:33 +00:00
roger
839422ecb6 Rename es1370.c to es137x.c and merge in the patches to support
ES1371 and ES1373 PCI Audio Sound Chips.
The 1371 and 1373 can be found on newer CreativeLabs/Ensoniq
sound cards such as the SoundBlaster PCI 16,64 and 128.

Submitted by:	Russell Cattelan <cattelan@thebarn.com>
Obtained from:	Parts obtained from linux, but rewritten by Russell
1999-11-19 07:29:10 +00:00
cg
62195202a4 this is a full fix for writes not aligned to the sample size selected.
should be a no-op in most cases.
1999-11-15 23:57:33 +00:00
cg
b833601903 set default ogain to 50 since some sb cards produce no sound at 0 1999-11-15 23:22:52 +00:00
peter
8ed26df117 Fix a typo in the DRIVER_MODULE() declaration which caused a collision
with the real mss module.
1999-11-15 17:03:30 +00:00
peter
52c4f7d961 Remove duplicate entry for ADS7180 - it's meant to be handled by the
forked-off ad1816 driver.
1999-11-15 17:02:32 +00:00
dfr
a4180af7d5 Remove some printfs and make it slightly more paranoid about accepting
that an ess1888 is present.
1999-11-15 08:18:24 +00:00
dfr
c1a649a08b * Ignore the wierd fakechan workarounds for simplex in dsp_ioctl().
Without this, ioctl commands for setting formats and speeds were
  essentially ignored for simplex devices until the application actually
  performed a read or write.
* Make sure that both channels are set in the SB mixer code and provide a
  mixer table specifically for the ess18xx which supports the extended
  accuracy available on this part.
* Fix a stupid bug in ess_format() which ignored the passed-in format and
  changed the hardware based on the value which was set last time. This
  meant that the hardware setting was often not set correctly at all.
* Add a custom identify driver for the ESS1888 which automagically detects
  and adds the device in a pseudo-PnP way. This driver also emits the magic
  sequence which enables the sound hardware after a hard reset, allowing
  it to work correctly for the sound hardware of a PWS 433au (and probably
  all other PWS class alpha machines).

With these changes, I was able to play back simple sounds on my 433au. I
have not tested recording or any other formats other than 8bit ulaw and
16bit stereo.
1999-11-13 18:31:31 +00:00
tanimura
c8d866094f Conserve stereo mode in ioctl SNDCTL_DSP_SETFMT.
PR:		14372
Submitted by:	Mattias Pantzare <pantzer@ludd.luth.se>, Ville-Pertti Keinonen <will@iki.fi>
1999-11-07 04:15:30 +00:00
tanimura
51c9fe3356 The unit of sndstat is fixed to zero. 1999-11-06 05:31:47 +00:00
tanimura
c72b8f101c Fix for multiple pcm devices. 1999-11-03 08:10:49 +00:00
tanimura
9876a339ec Call make_dev() to shut up the warning.
Pointed out by:	Donn Miller <dmmiller@cvzoom.net>
1999-11-01 14:29:07 +00:00
tanimura
42ae38ffd6 The total uiomoved size is accumulated in c, not tmp. 1999-10-31 08:58:51 +00:00
obrien
7d6c115cf9 The CTL0044 is more properly known as a "Creative SB AWE64 Gold". 1999-10-16 15:57:33 +00:00
dfr
229cdb9144 * Add struct resource_list* argument to resource_list_alloc and
resource_list_release. This removes the dependancy on the
  layout of ivars.

* Move set_resource, get_resource and delete_resource from
  isa_if.m to bus_if.m.

* Simplify driver code by providing wrappers to those methods:

     bus_set_resource(dev, type, rid, start, count);
     bus_get_resource(dev, type, rid, startp, countp);
     bus_get_resource_start(dev, type, rid);
     bus_get_resource_count(dev, type, rid);
     bus_delete_resource(dev, type, rid);

* Delete isa_get_rsrc and use bus_get_resource_start instead.

* Fix a stupid typo in isa_alloc_resource reported by Takahashi
  Yoshihiro <nyan@FreeBSD.org>.

* Print a diagnostic message if we can't assign resources to a PnP
  device.

* Change device_print_prettyname() so that it doesn't print
  "(no driver assigned)-1" for anonymous devices.
1999-10-12 21:35:51 +00:00
dfr
53f9650ab0 Bring support for opti931 in from the old driver. 1999-10-12 20:19:03 +00:00
imp
bf25d10421 Make interrupts shareable with RF_SHAREABLE. This is untested, but
it compiles and should just work.
1999-10-09 03:52:07 +00:00
imp
e07a554868 Allow interrupt sharing by allocating the interrupt RF_SHAREABLE.
This allows newpcm to grok my es1370 based card, which shared
interrupts with the ethernet card.
1999-10-09 03:50:27 +00:00
obrien
ef4ed42c63 Detect CTL0044 & CTL0045 as "Creative AWE64 PnP" rather than "SB16 PnP".
Reviewed by:	dfr
1999-10-03 17:45:54 +00:00
dfr
a46bfcf00d Add ID for ESS ES1869. 1999-09-29 07:27:35 +00:00
cg
f1bbb0150a * add a non-reset device- will not reset the channel on open. you
will have to mknod yourself for now.
* don't eat the first write()
* partial rvplayer fix- don't panic on unaligned writes unless our
  feeder chain requires them for downconversion.  a fuller fix is
  on the way.
1999-09-28 21:43:35 +00:00
cg
172b4dfca3 add a missing blank line 1999-09-28 20:24:28 +00:00
cg
378e4ff407 seperate the ad1816 driver from the mss driver since it shares no code 1999-09-28 20:00:06 +00:00
dfr
9f4fe5b99e Add another ID for the AWE64. 1999-09-28 08:25:08 +00:00
phk
e9e0512210 Remove five now unused fields from struct cdevsw. They should never
have been there in the first place.  A GENERIC kernel shrinks almost 1k.

Add a slightly different safetybelt under nostop for tty drivers.

Add some missing FreeBSD tags
1999-09-25 18:24:47 +00:00
peter
332c7b8346 Fix the "dsp sync" debugging printf that was unconditional. Fix a few
formatting nits/glitches/whatever.
1999-09-19 09:53:57 +00:00
dfr
0538330e96 Make sure that opti931's and guspnp's use the right offset from their ports. 1999-09-10 08:20:23 +00:00
cg
4375d22913 fix a bug with cat >/dev/{dsp,dspW,audio} hanging 1999-09-08 17:34:54 +00:00
dfr
e2da291638 Change isa_get/set_flags() to device_get/set_flags(). 1999-09-07 08:42:49 +00:00
peter
cca6f75f15 $Id$ -> $FreeBSD$ 1999-09-05 15:21:05 +00:00
cg
ca77db2ed1 incorporate better ess support
Obtained From:	KUROSAWA Takahiro <fwkg7679@mb.infoweb.ne.jp>
Tested By:	peter
1999-09-04 18:23:23 +00:00
cg
ff3dd28ba6 handle uiomove better in feed_root 1999-09-04 17:08:30 +00:00
cg
0fdfe1be02 bugfix: deallocate channels properly if no read/write ops between open/close 1999-09-04 17:03:59 +00:00
dfr
f351c4f3dc This represents essentially a complete rewrite of the ISA PnP code. The
new system is integrated with the ISA bus code more cleanly and allows
the future addition of more enumerators such as PnPBIOS and ACPI.

This commit also enables the new pcm driver since it is somewhat tied to
the new PnP code.
1999-09-01 20:53:43 +00:00
peter
4847453b3d $Id$ -> $FreeBSD$ 1999-09-01 06:58:27 +00:00
cg
73a7a67d13 say hello to newpcm. it is not yet enabled, requiring new pnp code from dfr
to compile successfully.  further details will be provided in the commit
enabling newpcm.
1999-09-01 04:08:39 +00:00
cg
feefbc8c0e mss and sb drivers updated for newpcm
Reviewed by:	peter, dfr
1999-09-01 04:01:57 +00:00
roger
5d6a76d153 Add support for ASound Gold card using the ALS120
chipset (a vibra 16x clone)
Identified automatically by its PnP ID

Approved by: Luigi
1999-05-27 06:12:40 +00:00
peter
c49cd856cf Fix dev_t/minor problems 1999-05-12 19:01:30 +00:00
peter
5182d28347 Quiet a warning, put a #if 0 around some (I believe) unused static structs. 1999-05-09 13:21:06 +00:00
peter
c7dd9f1ffd Use id_ointr for setting the pnp interrupt handler, it uses the oldstyle
int unit argument still.
1999-05-06 22:26:28 +00:00
peter
1deb357368 Operator precedence bug
PR:		11410
Submitted by:	Christopher Peterson <cpeterso@cs.washington.edu>
1999-05-02 21:41:20 +00:00
luigi
7593ef4cbd Fix YMF719 detection (report by jose@we.lc.ehu.es).
Fix compile problems without "controller pnp0"
(fix by German Tischler)
1999-01-04 20:06:38 +00:00
luigi
ca08832936 Bring in ad1816 patches from German Tischler.
Fix 'device not configured' problem that people were experiencing
when only PCI devices are present.
1999-01-04 10:40:14 +00:00
luigi
84df373829 Extend the callback mechanism and add hooks to support PCI cards.
Remove a few unused variables.
1998-12-31 07:34:01 +00:00
brian
578a7c3375 Support ESS1868 (and probably ESS688 & ESS1668).
Submitted by: Max Khon <fjoe@husky.iclub.nsu.ru>
1998-12-10 18:36:10 +00:00
archie
982e80577d Examine all occurrences of sprintf(), strcat(), and str[n]cpy()
for possible buffer overflow problems. Replaced most sprintf()'s
with snprintf(); for others cases, added terminating NUL bytes where
appropriate, replaced constants like "16" with sizeof(), etc.

These changes include several bug fixes, but most changes are for
maintainability's sake. Any instance where it wasn't "immediately
obvious" that a buffer overflow could not occur was made safer.

Reviewed by:	Bruce Evans <bde@zeta.org.au>
Reviewed by:	Matthew Dillon <dillon@apollo.backplane.com>
Reviewed by:	Mike Spengler <mks@networkcs.com>
1998-12-04 22:54:57 +00:00
luigi
844a9ac5ae Add a missing newline
Submitted by:	Roger Hardiman
1998-11-14 13:07:59 +00:00
luigi
dba1a0a481 Add entry for AOpen AW37 1998-11-10 10:44:56 +00:00
luigi
2842a92b36 Remove an error message from sb interrupt driver -- it
does not apply to all situations.
1998-11-04 09:13:20 +00:00
des
e3725de368 Make that annoying "device busy" message dependent on DEBUG (using the
DEB macro). There are probably quite a few other messages that warrant
a similar treatment, and many more that should be converted to plain
log messages (e.g. "WARNING: wrintr but write DMA inactive!"). Now
that I think of it, same goes for the CAM code (e.g. the famed "tagged
openings" message)
1998-10-08 20:55:54 +00:00
des
008b2cdf19 Nit in comment: PnP ID 0x3500630e is a CS4236B, not a CS4236. 1998-10-04 16:22:25 +00:00
alex
fa6af8d3bb Removed duplicate case.
Submitted by:	dfr
Blessed by:	luigi
1998-10-03 14:43:49 +00:00
luigi
8d4824c432 Update the pcm driver to the most recent version. This should
add support for Vibra16X, OPTi925, and bring in several assorted
fixes to the code and documentation.
Also present here are apm hooks so that laptops can properly
reconfigure the hardware after suspend (tested on the Libretto50).
Reviewed by: jordan
1998-10-02 17:26:37 +00:00
des
be2ebc2aed Add PnP ID for Crystal Semiconductors CS4236B codecs (register-
compatible with CS4236, so no driver changes are required)

Reviewed by:	Luigi Rizzo <luigi@iet.unipi.it>
1998-09-30 14:06:25 +00:00
bde
bd99227578 Renambed sbintr to sb_intr to avoid a conflict with the (now
unconditionally declared although it can't be configured together
with snd) extern function sbintr.
1998-06-17 16:59:30 +00:00
sos
fe1d05742f Correct even more ioctl breakage :(
Doesn't people check their code before committing anymore, it could
at least compile  ????
1998-06-08 09:00:28 +00:00
steve
c6d7aef6d4 Add support for the Yamaha YMF-719.
PR:		6348
Submitted by:	Yoshiak Uchikawa <yoshiaki@kt.rim.or.jp>
1998-05-10 23:53:27 +00:00
des
396b114475 Seventy-odd "its" / "it's" typos in comments fixed as per kern/6108. 1998-04-17 22:37:19 +00:00
nate
d60bc67e89 there is a minor bug in sb_dsp.c -- the driver
reports ESS cards as able to do 16-bit, but it has no support for it.

Submitted by:	Luigi Rizzo <luigi@labinfo.iet.unipi.it>
1998-02-21 17:53:04 +00:00
nate
77f7d10585 - Updated to Luigi's 2-15-98 code. The code in 2.2 is the same except for
select/poll and DEVFS changes, which are limited to an include/define
  in sound.h and the actual select/poll implementation in sound.c

[ This commit is blind, but the code is similar enough that there will
  hopefully be no problems. ]
1998-02-17 19:17:08 +00:00
scrappy
b171ac7ee4 Upgrade Luigi's audio driver to Jan/23 version... will bring in Feb/15th
version as soon as I've tested it...

Installed/tested on my home machine...any problems, please report directly
to me.
1998-02-17 14:17:13 +00:00
jmg
348887306a update of Luigi's sound drivers...
this updates to 971117 plus a small sb change that was after that release..
1997-11-23 07:03:21 +00:00
jmg
01dd9f96d6 This updates Luigi's sound code to the basic code in snd971023...
changes:
    o rip the old select from his distribution to prevent extra pollution
    o the code now uses audio dma, helps reduce clicks
    o improved card support, should work in full duplex on sb16 cards
    o add better voxware ioctl support pointed out by Joao Carlos Mendes
       Luis <jonny@coppe.ufrj.br>
    o remove an unused file that I included for more complete history
    o and MANY other changes

I have personally tested this code with a CS4237 based card and an AWE32
(non-PnP).  Both cards worked fine in 8bit and 16bit mode.
1997-10-31 12:24:28 +00:00
peter
1419fcb42b Recognize the CS4326 on the Intel PR440FX motherboard. (It works just like
the normal CS4326 except that it's had it's ID's tweaked for some reason)
Also mark the device as alive in the attach routine so that the pnp system
doesn't think the attach failed.
1997-09-21 03:27:51 +00:00
peter
831db91027 Fix a comment-within-a-comment 1997-09-21 03:21:34 +00:00
jmg
5280f97f95 update Luigi's driver to poll interface (Peter, you might want to check
that I've done this properly, it does work though :) )...

a few minor fixes to code

part-Submitted-by:	Luigi
1997-09-18 07:47:03 +00:00
jmg
2c60690db5 Import of Luigi Rizzo's sound code. For more information about the driver
check out the README that is included.

Submitted by:	Luigi Rizzo <luigi@labinfo.iet.unipi.it>
1997-09-14 21:42:12 +00:00