Commit 5b4e9400 authored by Linus Torvalds's avatar Linus Torvalds

Import 2.0.3

parent b6a823e7
......@@ -1182,6 +1182,16 @@ S: 14355 SW Allen Blvd., Suite #140
S: Beaverton, OR 97008
S: USA
N: Mike Shaver
E: shaver@ingenia.com
W: http://neon.ingenia.com/~shaver/
D: Network hacking, /proc/sys/net
S: c/o Ingenia Communications Corporation
S: Suite 4200, CTTC Building
S: 1125 Colonel By Drive
S: Ottawa, Ontario, Canada
S: K1S 5R1
N: John Shifflett
E: john@geolog.com
E: jshiffle@netcom.com
......
This diff is collapsed.
......@@ -1433,6 +1433,81 @@ CONFIG_SCSI_NCR53C7xx_DISCONNECT
will cause your SCSI system to hang, which might cause a system crash.
The safe answer therefore is to say N.
NCR53C8XX SCSI support
CONFIG_SCSI_NCR53C8XX
This is the BSD ncr driver adapted to linux for NCR53C8XX family of PCI-SCSI
controllers. This driver supports parity checking, tagged command queueing,
fast scsi II transfer up to 10 MB/s with narrow scsi devices and 20 MB/s
with wide scsi devices.
This driver has been tested ok with linux/i386 and is currently untested
under linux/Alpha. If you intend to use this driver under linux/Alpha, just
try it first with read-only or mounted read-only devices.
force normal IO
CONFIG_SCSI_NCR53C8XX_IOMAPPED
This option allow to force the driver to use normal IO.
Memory mapped IO have less latency than normal IO.
During initialisation phase, the driver first tries to use memory mapped io.
If nothing seems wrong, it will use memory mapped io.
If a flaw is detected, it will use normal io.
However, it's possible that memory mapped does not work properly for you and
the driver has not detected the problem.
The normal answer therefore is N.
not allow targets to disconnect
CONFIG_SCSI_NCR53C8XX_NO_DISCONNECT
This option is only provided for safe if you suspect some scsi device
of yours to not support properly this feature.
To not allow targets to disconnect is not reasonnable if there is more
than 1 device on a scsi bus.
The normal answer therefore is N.
enable tagged command queueing
CONFIG_SCSI_NCR53C8XX_TAGGED_QUEUE
This option allow to enable tagged command queuing support at linux start-up.
Some scsi devices do not support properly this feature.
The suggested method may be to not validate this option in the configuration
but to use the "settags" control command after boot-up to enable this feature.
echo "settags 2 4" >/proc/scsi/ncr53c8xx/0
Ask the driver to use up to 4 concurrent tagged commands for target 2 of
controller 0.
See the README.ncr53c8xx file for more information.
WARNING! tagged queue support requires to allow targets to disconnect.
The safe answer therefore is N.
The normal answer therefore is Y.
force asynchronous transfer mode
CONFIG_SCSI_NCR53C8XX_FORCE_ASYNCHRONOUS
This option allow to force asynchronous transfer mode for all devices at
linux startup. You can enable synchronous negotiation with the "setsync"
control command after boot-up, for example:
echo "setsync 2 25" >/proc/scsi/ncr53c8xx/0
Ask the driver to set the period to 25 ns (10MB/sec) for target 2 of
controller 0.
The safe answer therefore is Y.
The normal answer therefore is N.
force synchronous negotiation
CONFIG_SCSI_NCR53C8XX_FORCE_SYNC_NEGO
Some scsi-2 devices support synchronous negotiations but do not report
this feature in byte 7 of inquiry data.
Answer Y only if you suspect some device to be so humble.
The normal answer therefore is N.
disable master parity checking
CONFIG_SCSI_NCR53C8XX_DISABLE_MPARITY_CHECK
Some hardware may have problems with parity during master cycles on PCI bus.
Only seen once. Answer Y if you suspect such problem.
The normal answer therefore is N.
disable scsi parity checking
CONFIG_SCSI_NCR53C8XX_DISABLE_PARITY_CHECK
Parity on scsi bus is a system option. If one device checks parity, then
all devices on the scsi bus must generate parity.
However, the parity can be ignored by the scsi devices.
Answer Y only if you know what you are doing.
The normal answer therefore is N.
Always IN2000 SCSI support
CONFIG_SCSI_IN2000
This is support for an ISA bus SCSI host adaptor. You'll find
......
VERSION = 2
PATCHLEVEL = 0
SUBLEVEL = 2
SUBLEVEL = 3
ARCH = i386
......
......@@ -461,8 +461,8 @@ static void mark_timeout_data(u_long);
#if 0
static void mark_timeout_audio(u_long);
#endif
static void sbp_read_cmd(void);
static int sbp_data(void);
static void sbp_read_cmd(struct request *req);
static int sbp_data(struct request *req);
static int cmd_out(void);
static int DiskInfo(void);
static int sbpcd_chk_disk_change(kdev_t);
......@@ -4428,22 +4428,54 @@ static int sbpcd_ioctl(struct inode *inode, struct file *file, u_int cmd,
/*
* Take care of the different block sizes between cdrom and Linux.
*/
static void sbp_transfer(void)
static void sbp_transfer(struct request *req)
{
long offs;
while ( (CURRENT->nr_sectors > 0) &&
(CURRENT->sector/4 >= D_S[d].sbp_first_frame) &&
(CURRENT->sector/4 <= D_S[d].sbp_last_frame) )
while ( (req->nr_sectors > 0) &&
(req->sector/4 >= D_S[d].sbp_first_frame) &&
(req->sector/4 <= D_S[d].sbp_last_frame) )
{
offs = (CURRENT->sector - D_S[d].sbp_first_frame * 4) * 512;
memcpy(CURRENT->buffer, D_S[d].sbp_buf + offs, 512);
CURRENT->nr_sectors--;
CURRENT->sector++;
CURRENT->buffer += 512;
offs = (req->sector - D_S[d].sbp_first_frame * 4) * 512;
memcpy(req->buffer, D_S[d].sbp_buf + offs, 512);
req->nr_sectors--;
req->sector++;
req->buffer += 512;
}
}
/*==========================================================================*/
/*
* special end_request for sbpcd to solve CURRENT==NULL bug. (GTL)
*
* This is a kluge so we don't need to modify end_request
* We put the req we take out after INIT_REQUEST in the requests list,
* so that end_request will discard it.
*
* The bug could be present in other block devices, perhaps we
* should modify INIT_REQUEST and end_request instead, and
* change every block device..
*
* Could be a race here?? Could e.g. a timer interrupt schedule() us?
* If so, we should copy end_request here, and do it right.. (or
* modify end_request and the block devices.
*
* In any case, the race here would be much small than it was, and
* I couldn't reproduce..
*
* The race could be: suppose CURRENT==NULL. We put our req in the list,
* and we are scheduled. Other process takes over, and gets into
* do_sbpcd_request. It sees CURRENT!=NULL (it is == to our req), so
* proceds. It ends, so CURRENT is now NULL.. Now we awake somewhere in
* end_request, but now CURRENT==NULL... oops!
*
*/
#undef DEBUG_GTL
static inline void sbpcd_end_request(struct request *req, int uptodate) {
req->next=CURRENT;
CURRENT=req;
end_request(uptodate);
}
/*==========================================================================*/
/*
* I/O request routine, called from Linux kernel.
*/
......@@ -4452,27 +4484,48 @@ static void DO_SBPCD_REQUEST(void)
u_int block;
u_int nsect;
int i, status_tries, data_tries;
struct request *req;
#ifdef DEBUG_GTL
static int xx_nr=0;
int xnr;
#endif
request_loop:
INIT_REQUEST;
sti();
#ifdef DEBUG_GTL
xnr=++xx_nr;
if ((CURRENT == NULL) || CURRENT->rq_status == RQ_INACTIVE) {
if(!CURRENT)
{
printk( "do_sbpcd_request[%di](NULL), Pid:%d, Time:%li\n",
xnr, current->pid, jiffies);
printk( "do_sbpcd_request[%do](NULL) end 0 (null), Time:%li\n",
xnr, jiffies);
CLEAR_INTR;
return;
}
if (CURRENT -> sector == -1)
printk(" do_sbpcd_request[%di](%p:%ld+%ld), Pid:%d, Time:%li\n",
xnr, CURRENT, CURRENT->sector, CURRENT->nr_sectors, current->pid, jiffies);
#endif
INIT_REQUEST;
req=CURRENT; /* take out our request so no other */
CURRENT=req->next; /* task can fuck it up GTL */
sti();
if (req->rq_status == RQ_INACTIVE)
goto err_done;
if (req -> sector == -1)
goto err_done;
if (CURRENT->cmd != READ)
if (req->cmd != READ)
{
msg(DBG_INF, "bad cmd %d\n", CURRENT->cmd);
msg(DBG_INF, "bad cmd %d\n", req->cmd);
goto err_done;
}
i = MINOR(CURRENT->rq_dev);
i = MINOR(req->rq_dev);
if ( (i<0) || (i>=NR_SBPCD) || (D_S[i].drv_id==-1))
{
msg(DBG_INF, "do_request: bad device: %s\n",
kdevname(CURRENT->rq_dev));
kdevname(req->rq_dev));
goto err_done;
}
while (busy_audio) sbp_sleep(HZ); /* wait a bit */
......@@ -4481,19 +4534,23 @@ static void DO_SBPCD_REQUEST(void)
if (D_S[i].audio_state==audio_playing) goto err_done;
if (d!=i) switch_drive(i);
block = CURRENT->sector; /* always numbered as 512-byte-pieces */
nsect = CURRENT->nr_sectors; /* always counted as 512-byte-pieces */
block = req->sector; /* always numbered as 512-byte-pieces */
nsect = req->nr_sectors; /* always counted as 512-byte-pieces */
msg(DBG_BSZ,"read sector %d (%d sectors)\n", block, nsect);
#if 0
msg(DBG_MUL,"read LBA %d\n", block/4);
#endif
sbp_transfer();
sbp_transfer(req);
/* if we satisfied the request from the buffer, we're done. */
if (CURRENT->nr_sectors == 0)
if (req->nr_sectors == 0)
{
end_request(1);
#ifdef DEBUG_GTL
printk(" do_sbpcd_request[%do](%p:%ld+%ld) end 2, Time:%li\n",
xnr, req, req->sector, req->nr_sectors, jiffies);
#endif
sbpcd_end_request(req, 1);
goto request_loop;
}
......@@ -4521,21 +4578,29 @@ static void DO_SBPCD_REQUEST(void)
break;
}
sbp_read_cmd();
sbp_read_cmd(req);
sbp_sleep(0);
if (sbp_data() != 0)
if (sbp_data(req) != 0)
{
#if SAFE_MIXED
D_S[d].has_data=2; /* is really a data disk */
#endif SAFE_MIXED
end_request(1);
#ifdef DEBUG_GTL
printk(" do_sbpcd_request[%do](%p:%ld+%ld) end 3, Time:%li\n",
xnr, req, req->sector, req->nr_sectors, jiffies);
#endif
sbpcd_end_request(req, 1);
goto request_loop;
}
}
err_done:
busy_data=0;
end_request(0);
#ifdef DEBUG_GTL
printk(" do_sbpcd_request[%do](%p:%ld+%ld) end 4 (error), Time:%li\n",
xnr, req, req->sector, req->nr_sectors, jiffies);
#endif
sbpcd_end_request(req, 0);
sbp_sleep(0); /* wait a bit, try again */
goto request_loop;
}
......@@ -4543,7 +4608,7 @@ static void DO_SBPCD_REQUEST(void)
/*
* build and send the READ command.
*/
static void sbp_read_cmd(void)
static void sbp_read_cmd(struct request *req)
{
#undef OLD
......@@ -4552,7 +4617,7 @@ static void sbp_read_cmd(void)
D_S[d].sbp_first_frame=D_S[d].sbp_last_frame=-1; /* purge buffer */
D_S[d].sbp_current = 0;
block=CURRENT->sector/4;
block=req->sector/4;
if (block+D_S[d].sbp_bufsiz <= D_S[d].CDsize_frm)
D_S[d].sbp_read_frames = D_S[d].sbp_bufsiz;
else
......@@ -4650,7 +4715,7 @@ static void sbp_read_cmd(void)
* Check the completion of the read-data command. On success, read
* the D_S[d].sbp_bufsiz * 2048 bytes of data from the disk into buffer.
*/
static int sbp_data(void)
static int sbp_data(struct request *req)
{
int i=0, j=0, l, frame;
u_int try=0;
......@@ -4913,9 +4978,9 @@ static int sbp_data(void)
return (0);
}
D_S[d].sbp_first_frame = CURRENT -> sector / 4;
D_S[d].sbp_first_frame = req -> sector / 4;
D_S[d].sbp_last_frame = D_S[d].sbp_first_frame + D_S[d].sbp_read_frames - 1;
sbp_transfer();
sbp_transfer(req);
return (1);
}
/*==========================================================================*/
......
This diff is collapsed.
......@@ -44,6 +44,24 @@ if [ "$CONFIG_PCI" = "y" ]; then
bool ' allow DISCONNECT' CONFIG_SCSI_NCR53C7xx_DISCONNECT
fi
fi
if [ "$CONFIG_PCI" = "y" -a "$CONFIG_SCSI_NCR53C7xx" != "y" ]; then
if [ "$CONFIG_SCSI" != "n" -a "$CONFIG_SCSI_NCR53C7xx" = "m" ]; then
dep_tristate 'NCR53C8XX SCSI support' CONFIG_SCSI_NCR53C8XX m
else
dep_tristate 'NCR53C8XX SCSI support' CONFIG_SCSI_NCR53C8XX $CONFIG_SCSI
fi
if [ "$CONFIG_SCSI_NCR53C8XX" != "n" ]; then
bool ' enable tagged command queueing' CONFIG_SCSI_NCR53C8XX_TAGGED_QUEUE
bool ' force normal IO' CONFIG_SCSI_NCR53C8XX_IOMAPPED
bool ' not allow targets to disconnect' CONFIG_SCSI_NCR53C8XX_NO_DISCONNECT
bool ' force asynchronous transfer mode' CONFIG_SCSI_NCR53C8XX_FORCE_ASYNCHRONOUS
bool ' force synchronous negotiation' CONFIG_SCSI_NCR53C8XX_FORCE_SYNC_NEGO
fi
if [ "$CONFIG_SCSI_NCR53C8XX" != "n" -a $CONFIG_EXPERIMENTAL = 'y' ]; then
bool ' disable master parity checking' CONFIG_SCSI_NCR53C8XX_DISABLE_MPARITY_CHECK
bool ' disable scsi parity checking' CONFIG_SCSI_NCR53C8XX_DISABLE_PARITY_CHECK
fi
fi
dep_tristate 'IOMEGA Parallel Port ZIP drive SCSI support' CONFIG_SCSI_PPA $CONFIG_SCSI
dep_tristate 'PAS16 SCSI support' CONFIG_SCSI_PAS16 $CONFIG_SCSI
dep_tristate 'Qlogic FAS SCSI support' CONFIG_SCSI_QLOGIC_FAS $CONFIG_SCSI
......
......@@ -263,6 +263,14 @@ else
endif
endif
ifeq ($(CONFIG_SCSI_NCR53C8XX),y)
L_OBJS += ncr53c8xx.o
else
ifeq ($(CONFIG_SCSI_NCR53C8XX),m)
M_OBJS += ncr53c8xx.o
endif
endif
ifeq ($(CONFIG_SCSI_PAS16),y)
L_OBJS += pas16.o
else
......@@ -362,6 +370,9 @@ seagate.o: seagate.c
mv scriptu.h 53c8xx_u.h
rm fake.c
ncr53c8xx.o : ncr53c8xx.c
$(CC) $(CFLAGS) -c ncr53c8xx.c
scsi_mod.o: $(MX_OBJS) hosts.o scsi.o scsi_ioctl.o constants.o \
scsicam.o scsi_proc.o
$(LD) $(LD_RFLAG) -r -o $@ $(MX_OBJS) hosts.o scsi.o scsi_ioctl.o constants.o scsicam.o scsi_proc.o
......
This diff is collapsed.
......@@ -133,6 +133,10 @@
#include "53c7,8xx.h"
#endif
#ifdef CONFIG_SCSI_NCR53C8XX
#include "ncr53c8xx.h"
#endif
#ifdef CONFIG_SCSI_ULTRASTOR
#include "ultrastor.h"
#endif
......@@ -272,6 +276,9 @@ static Scsi_Host_Template builtin_scsi_hosts[] =
#ifdef CONFIG_SCSI_NCR53C7xx
NCR53c7xx,
#endif
#ifdef CONFIG_SCSI_NCR53C8XX
NCR53C8XX,
#endif
#ifdef CONFIG_SCSI_EATA_DMA
EATA_DMA,
#endif
......
This diff is collapsed.
This diff is collapsed.
......@@ -57,7 +57,7 @@ Since 3.5.2
Since 3.5.1
- TB Maui initialization support
Since 3.5
- Improved handling of playback underrunt situations.
- Improved handling of playback underrun situations.
Since 3.5-beta10
- Bug fixing
......@@ -100,14 +100,14 @@ Since 3.5-beta2
to James Hightower.
Since 3.5-beta1
- Bugfixes.
- Bug fixes.
- Full duplex audio with MAD16+CS4231 may work now. The driver configures
SB DMA of MAD16 so that it doesn't conflict with codec's DMA channels.
The side effect is that all 8 bit DMA channels (0,1,3) are populated in
duplex mode.
Since 3.5-alpha9
- Bugfixes (mostly in Jazz16 and ESS1688/688 supports).
- Bug fixes (mostly in Jazz16 and ESS1688/688 supports).
- Temporarily disabled recording with ESS1688/688 since it causes crash.
- Changed audio buffer partitioning algorithm so that it selects
smaller fragment size than earlier. This improves real time capabilities
......@@ -116,7 +116,7 @@ Since 3.5-alpha9
shorter than 4096 bytes.
Since 3.5-alpha8
- Bugfixes
- Bug fixes
Since 3.5-alpha7
- Linux kernel compatible configuration (_EXPERIMENTAL_). Enable
......@@ -135,7 +135,7 @@ configure to handle this.
modularized version. They can be enabled by using init_trace=1 in
the insmod command line (insmod sound init_trace=1).
- More AIX stuff.
- Added support for syncronizing dsp/audio devices with /dev/sequencer.
- Added support for synchronizing dsp/audio devices with /dev/sequencer.
- mmap() support for dsp/audio devices.
Since 3.5-alpha5
......@@ -148,7 +148,7 @@ Since 3.5-alpha4
sources. Running 'setfx' is required again.
Since 3.5-alpha3
- Moved stuff from the 'setfx' program to the AudioTriX Pro driver.
- Moved stuff from the 'setfx' program to the AudioTrix Pro driver.
Since 3.5-alpha2
- Modifications to makefile and configure.c. Unnecessary sources
......@@ -159,13 +159,13 @@ Since 3.5-alpha2
- Fixed random protection fault in gus_wave.c
Since 3.5-alpha1
- Modified to work with Linux-1.3.33 and leater
- Modified to work with Linux-1.3.33 and later
- Some minor changes
Since 3.0.2
- Support for CS4232 based PnP cards (AcerMagic S23 etc).
- Full duplex support for some CS4231, CS4232 and AD1845 based cards
(GUA MAX, AudioTrix Pro, AcerMagic S23 and many MAD16/Mozart cards
(GUS MAX, AudioTrix Pro, AcerMagic S23 and many MAD16/Mozart cards
having a codec mentioned above).
- Almost fully rewritten loadable modules support.
- Fixed some bugs.
......@@ -286,13 +286,13 @@ Since 2.3
Since 2.2b
- Full SB16 DSP support. 8/16 bit, mono/stereo
- The SCO and FreeBSD versions should be in sync now. There are some
problems with SB16 and GUS in the freebsd versions.
problems with SB16 and GUS in the FreeBSD versions.
The DMA buffer allocation of the SCO version has been polished but
there could still be some problems. At least it hogs memory.
The DMA channel
configuration method used in the sco/System is a hack.
configuration method used in the SCO/System is a hack.
- Support for the MPU emulation of the SB16.
- Some big arrays are now allocated boot time. This makes the bss segment
- Some big arrays are now allocated boot time. This makes the BSS segment
smaller which makes it possible to use the full driver with
NetBSD. These arrays are not allocated if no suitable soundcard is available.
- Fixed a bug in the compute_and_set_volume in gus_wave.c
......@@ -308,7 +308,7 @@ Since 2.2
Since 2.1
- Preliminary support for SB16.
- The SB16 mixer is supported in it's native mode.
- The SB16 mixer is supported in its native mode.
- Digitized voice capability up to 44.1 kHz/8 bit/mono
(16 bit and stereo support coming in the next release).
- Fixed some bugs in the digitized voice driver for PAS16.
......
......@@ -2,10 +2,10 @@
# Sound driver configuration
#
#--------
# There is another confic script which is compatible with rest of
# There is another config script which is compatible with rest of
# the kernel. It can be activated by running 'make mkscript' in this
# directory. Please note that this is an _experimental_ feature which
# doesn't work with all cards (PSS, SM Wave, AudioTriX Pro, Maui).
# doesn't work with all cards (PSS, SM Wave, AudioTrix Pro, Maui).
#--------
#
$MAKE -C drivers/sound config || exit 1
......
......@@ -3,11 +3,11 @@ USS Lite version 3.5.4 release notes
Most up to date information about this driver is available from
http://www.4front-tech.com/usslite or http://personal.eunet.fi/pp/voxware
(european mirror).
(European mirror).
Please read the SOUND-HOWTO (available from sunsite.unc.edu and other Linux ftp
Please read the SOUND-HOWTO (available from sunsite.unc.edu and other Linux FTP
sites). It gives instructions about using sound with Linux. It's bit out of
date but still very useful. Information about bug fixes and such things
is available from the web page (see below).
......@@ -23,7 +23,7 @@ It's very likely that this driver version is incompatible with
Linux versions later than 2.0.x.
Packages "snd-util-3.5.tar.gz" and "snd-data-0.1.tar.Z"
contain usefull utilities to be used with this driver.
contain useful utilities to be used with this driver.
See http://www.4front-tech.com/usslite/getting.html for
download instructions.
......@@ -42,7 +42,7 @@ Contributors
------------
This driver contains code by several contributors. In addition several other
persons have given usefull suggestions. The following is a list of major
persons have given useful suggestions. The following is a list of major
contributors. (I could have forgotten some names.)
Craig Metz 1/2 of the PAS16 Mixer and PCM support
......@@ -54,7 +54,7 @@ contributors. (I could have forgotten some names.)
Andy Warner ISC port
Jim Lowe,
Amancio Hasty Jr FreeBSD/NetBSD port
Anders Baekgaard Bughunting and valuable suggestions.
Anders Baekgaard Bug hunting and valuable suggestions.
Joerg Schubert SB16 DSP support (initial version).
Andrew Robinson Improvements to the GUS driver
Megens SA MIDI recording for SB and SB Pro (initial version).
......@@ -76,7 +76,7 @@ contributors. (I could have forgotten some names.)
Please look at lowlevel/README for more contributors.
There are propably many other names missing. If you have sent me some
There are probably many other names missing. If you have sent me some
patches and your name is not in the above list, please inform me.
Sponsors etc.
......@@ -125,7 +125,7 @@ If you get an error message when trying to use the driver, please look
at /var/adm/messages for more verbose error message.
In general the easiest way to diagnoze problems is to do "cat /dev/sndstat".
In general the easiest way to diagnose problems is to do "cat /dev/sndstat".
If you get an error message, there are some problems with the driver setup:
......@@ -133,7 +133,7 @@ If you get an error message, there are some problems with the driver setup:
the sound driver are missing. Use the script at the end of
linux/drivers/sound/Readme.linux to create them.
- "No such device" telss that the sound driver is not in the kernel.
- "No such device" tells that the sound driver is not in the kernel.
You have to reconfigure and recompile the kernel to have the sound
driver. Compiling the driver doesn't help alone. You have to boot
with the newly compiled one before the driver becomes active.
......@@ -148,7 +148,7 @@ The following errors are likely with /dev/dsp and /dev/audio.
this particular device. For example /dev/audio and /dev/dsp will not
work if "digitized voice support" was not enabled during "make config".
- "Device or resource busy". Propably the IRQ (or DMA) channel
- "Device or resource busy". Probably the IRQ (or DMA) channel
required by the soundcard is in use by some other device/driver.
- "I/O error". Almost certainly (99%) it's an IRQ or DMA conflict.
......
This diff is collapsed.
......@@ -19,7 +19,7 @@ IMPORTANT! Read this if you are installing a separately
sources). Remove old version of linux/drivers/sound directory before
installing new files.
- To build the device files you need to run the enclosed shell scrip
- To build the device files you need to run the enclosed shell script
(see below). You need to do this only when installing sound driver
first time or when upgrading to much recent version than the earlier
one.
......@@ -27,13 +27,13 @@ IMPORTANT! Read this if you are installing a separately
- Configure and compile Linux as normally (remember to include the
sound support during "make config"). Please refer to kernel documentation
for instructions about configuring and compiling kernel. File Readme.cards
contains card spesific instructions for configuring this driver for
contains card specific instructions for configuring this driver for
use with various soundcards.
Boot time configuration (using lilo and insmod)
-----------------------------------------------
This information has been removed. Too many users did't believe
This information has been removed. Too many users didn't believe
that it's really not necessary to use this method. Please look at
Readme of sound driver version 3.0.1 if you still want to use this method.
......@@ -46,7 +46,7 @@ command:
cat /dev/sndstat
and look at the output. It should display some usefull info about the
and look at the output. It should display some useful info about the
driver configuration. If there is no /dev/sndstat
(/dev/sndstat: No such file or directory), ensure that you have executed the
soundinstall script (at the end of this file).
......
......@@ -45,10 +45,10 @@ For example:
insmod sound dma_buffsize=32768
Minimum buffer size is 4096 and the maximum depends on the DMA channe.
Minimum buffer size is 4096 and the maximum depends on the DMA channel.
For 8 bit channels (0 to 3) the limit is 64k and for 16 bit ones (5 to 7)
it's 128k. Driver selects a suitable buffer size automaticly in case
you try to spesify an invalid size.
it's 128k. Driver selects a suitable buffer size automatically in case
you try to specify an invalid size.
Q: What is the right DMA buffer size?
......@@ -58,17 +58,17 @@ audio or when there are other processes running on the same system. Also
recording to hard disk is likely to require large buffers.
Very small buffers are sufficient when you are just playing 8kHz audio files
on an empty P133 system. Using a 128k byffer just wastes 120k (or 250k)
on an empty P133 system. Using a 128k buffer just wastes 120k (or 250k)
of valuable physical RAM memory.
The right buffer sice can be easily found by making some experiments
The right buffer size can be easily found by making some experiments
with the dma_buffsize= parameter. I use usually 16k buffers on a DX4/100 system
and 64k on an old 386 system.
NOTE! DMA buffers are used only by /dev/audio# and /dev/dsp# devices.
Other device files don't use them but there are two exceptions:
GUS driver uses DMA buffers when loading samples to the card.
Ensoniq SoundScape driver uses them when doanloading the microcode
Ensoniq SoundScape driver uses them when downloading the microcode
file (sndscape.co[012]) to the card. Using large buffers doesn't
increase performance in these cases.
......
......@@ -18,7 +18,7 @@ applications like sequencers.
/dev/midi##
-----------
This interface should be usefull for applications like MIDI sysex librarians.
This interface should be useful for applications like MIDI sysex librarians.
There are (currently) no timing features so making music could be impossible.
There are as many /dev/midi## devices as there are MIDI ports in the system.
......@@ -53,7 +53,7 @@ It's not available for the so called MPU UART ports of some soundcards
If this ioctl is called with mode=1, the interface is put to the intelligent
(coprocessor) mode. NOTE! The MIDI port will be reset when this ioctl is called.
It could have some strange effects if not called immediately after open. This
vall returns EINVAL if the midi port doesn't support the MPU-401 intelligent
call returns EINVAL if the midi port doesn't support the MPU-401 intelligent
mode.
ioctl(fd, SNDCTL_MIDI_MPUCMD, &cmdstruct) is valid only if the MIDI port
......@@ -81,10 +81,10 @@ where:
data Buffer for the command arguments and returned
data.
Be extremely carefull with the nr_args and nr_returns fields. They
Be extremely careful with the nr_args and nr_returns fields. They
must match the command. An incorrect value will put the card and
the driver out of sync. Refer to the MPU-401/MQX-32M documentation for further
datails.
details.
......@@ -99,7 +99,7 @@ the result is somewhere between the MIDI specification and the synth devices of
/dev/sequencer. Both kind of devices are accessed using the SEQ_START_NOTE()
like macros. The voice number parameters of the API macros have been redefined
to denote MIDI channels. This means that the driver allocates voices for
the channels automaticly (this is a responsibility/right of an application
the channels automatically (this is a responsibility/right of an application
with /dev/sequencer). The result is that a SEQ_START_NOTE() macro has
similar effects for a synth channel than on a MIDI port. This kind of
solution provides better device independence than the /dev/sequencer. The
......@@ -116,15 +116,15 @@ return sum of internal synthesizers (GUS, OPL3) and MIDI ports in the systems.
- The new interface is used much like the ordinary /dev/sequencer. The
event format is new so you have to use the API macros defined in the
sys/soundcard.h. The interface is will propably change before the final 3.0
sys/soundcard.h. The interface is will probably change before the final 3.0
release but using the API macros should ensure compatibility in source level.
The new event format is not recognized by version 2.X so don't try to
distribute binaries compiled with soundcard.h of v3.X.
- The basic API useage is similar to the current one. There are some new
- The basic API usage is similar to the current one. There are some new
macros but the older ones should work as earlier. The most important
incompatibility is that the /dev/sequencer2 driver allocates voices itself.
The other one is that the application must send SEQ_START_TIMER() as it's
The other one is that the application must send SEQ_START_TIMER() as its
first event. Otherwise the timer is not started and the application waits
infinitely.
......
......@@ -523,8 +523,8 @@ ad1848_set_speed (int dev, int arg)
ad1848_info *devc = (ad1848_info *) audio_devs[dev]->devc;
/*
* The sampling speed is encoded in the least significant nible of I8. The
* LSB selects the clock source (0=24.576 MHz, 1=16.9344 Mhz) and other
* The sampling speed is encoded in the least significant nibble of I8. The
* LSB selects the clock source (0=24.576 MHz, 1=16.9344 MHz) and other
* three bits select the divisor (indirectly):
*
* The available speeds are in the following table. Keep the speeds in
......@@ -961,7 +961,7 @@ ad1848_prepare_for_IO (int dev, int bsize, int bcount)
ad_write (devc, 8, fs);
/*
* Write to I8 starts resyncronization. Wait until it completes.
* Write to I8 starts resynchronization. Wait until it completes.
*/
timeout = 10000;
while (timeout > 0 && inb (devc->base) == 0x80)
......@@ -975,7 +975,7 @@ ad1848_prepare_for_IO (int dev, int bsize, int bcount)
ad_write (devc, 28, fs);
/*
* Write to I28 starts resyncronization. Wait until it completes.
* Write to I28 starts resynchronization. Wait until it completes.
*/
timeout = 10000;
while (timeout > 0 && inb (devc->base) == 0x80)
......@@ -1183,7 +1183,7 @@ ad1848_detect (int io_base, int *ad_flags, int *osp)
* Check that the I/O address is in use.
*
* The bit 0x80 of the base I/O port is known to be 0 after the
* chip has performed it's power on initialization. Just assume
* chip has performed its power on initialization. Just assume
* this has happened before the OS is starting.
*
* If the I/O address is unused, it typically returns 0xff.
......@@ -1481,7 +1481,7 @@ ad1848_init (char *name, int io_base, int irq, int dma_playback, int dma_capture
ad_write (devc, 27, ad_read (devc, 27) | 0x08); /* Alternate freq select enabled */
if (devc->model == MD_IWAVE)
{ /* Some magic Interwave spesific initialization */
{ /* Some magic Interwave specific initialization */
ad_write (devc, 12, 0x6c); /* Select codec mode 3 */
ad_write (devc, 17, 0xc2); /* Alternate feature enable */
}
......@@ -1537,8 +1537,8 @@ ad1848_init (char *name, int io_base, int irq, int dma_playback, int dma_capture
devc->timer_ticks = 0;
ad_write (devc, 21, 0x00); /* Timer msb */
ad_write (devc, 20, 0x10); /* Timer lsb */
ad_write (devc, 21, 0x00); /* Timer MSB */
ad_write (devc, 20, 0x10); /* Timer LSB */
ad_write (devc, 16, tmp | 0x40); /* Enable timer */
for (x = 0; x < 100000 && devc->timer_ticks == 0; x++);
......@@ -1618,7 +1618,7 @@ ad1848_unload (int io_base, int irq, int dma_playback, int dma_capture, int shar
}
}
else
printk ("ad1848: Can't find device to be undoaded. Base=%x\n",
printk ("ad1848: Can't find device to be unloaded. Base=%x\n",
io_base);
}
......@@ -1816,7 +1816,7 @@ init_deskpro (struct address_info *hw_config)
/*
* I/O port 0xc45 FM Address Decode/MSS ID Register.
*
* bank=0, bits 0xfe: FM synthesis Decode Comare bits 7:1 (default=0x88)
* bank=0, bits 0xfe: FM synthesis Decode Compare bits 7:1 (default=0x88)
* bank=0, bit 0x01: SBIC Power Control Bit
* 0x00 = Powered up
* 0x01 = Powered down
......@@ -1880,7 +1880,7 @@ init_deskpro (struct address_info *hw_config)
/*
* I/O port 0xc47 FM Address Decode Register.
*
* bank=0, bits 0xff: Decode enble selection for various FM address bits
* bank=0, bits 0xff: Decode enable selection for various FM address bits
* bank=1, bits 0xff: Reserved
*/
......@@ -2152,7 +2152,7 @@ ad1848_tmr_start (int dev, unsigned int usecs)
{
unsigned long flags;
ad1848_info *devc = (ad1848_info *) audio_devs[dev]->devc;
unsigned long xtal_nsecs; /* nanoseconds per xtal oscillaror tick */
unsigned long xtal_nsecs; /* nanoseconds per xtal oscillator tick */
unsigned long divider;
save_flags (flags);
......
This diff is collapsed.
......@@ -25,7 +25,7 @@
#define OFF 0
static int audio_mode[MAX_AUDIO_DEV];
static int dev_nblock[MAX_AUDIO_DEV]; /* 1 if in noblocking mode */
static int dev_nblock[MAX_AUDIO_DEV]; /* 1 if in nonblocking mode */
#define AM_NONE 0
#define AM_WRITE 1
......
......@@ -68,8 +68,8 @@
B (OPT_MSS) | B (OPT_GUS16) | B (OPT_GUSMAX) | B (OPT_TRIX) | \
B (OPT_SSCAPE)| B(OPT_MAD16) | B(OPT_CS4232))
#define MPU_DEVS (B(OPT_PSS)|\
B(OPT_CS4232)|B(OPT_SPNP)|B(OPT_MAUI))
#define UART401_DEVS (SBDSP_DEVS|B(OPT_TRIX)|B(OPT_MAD16)|B(OPT_SSCAPE))
B(OPT_CS4232)|B(OPT_SPNP)|B(OPT_MAUI)|B(OPT_SSCAPE))
#define UART401_DEVS (SBDSP_DEVS|B(OPT_TRIX)|B(OPT_MAD16))
#define MIDI_CARDS (MPU_DEVS | UART401_DEVS | \
B (OPT_PSS) | B (OPT_SB) | B (OPT_PAS) | B (OPT_MPU401) | \
B (OPT_GUS) | B (OPT_TRIX) | B (OPT_SSCAPE)|B(OPT_MAD16) | \
......@@ -148,7 +148,7 @@ hw_entry hw_table[] =
char *questions[] =
{
"ProAudioSpectrum 16 support",
"SoundBlaster (SB, SBPro, SB16, clones) support",
"Sound Blaster (SB, SBPro, SB16, clones) support",
"Generic OPL2/OPL3 FM synthesizer support",
"Gravis Ultrasound support",
"MPU-401 support (NOT for SB16)",
......@@ -157,7 +157,7 @@ char *questions[] =
"16 bit sampling option of GUS (_NOT_ GUS MAX)",
"GUS MAX support",
"Microsoft Sound System support",
"Ensoniq Soundscape support",
"Ensoniq SoundScape support",
"MediaTrix AudioTrix Pro support",
"Support for MAD16 and/or Mozart based cards",
"Support for Crystal CS4232 based (PnP) cards",
......@@ -183,10 +183,10 @@ char *help[] =
"you have some other card made by MediaVision or Logitech as\n"
"they are not PAS16 compatible.\n",
"Enable this if you have an original SoundBlaster card made by\n"
"Enable this if you have an original Sound Blaster card made by\n"
"Creative Labs or a 100%% hardware compatible clone. For an\n"
"unknown card you may want to try this if it claims to be\n"
"SoundBlaster compatible.\n",
"Sound Blaster compatible.\n",
"Enable this option if your sound card has a Yamaha OPL2 or OPL3\n"
"FM synthesizer chip.\n",
......@@ -219,7 +219,7 @@ char *help[] =
"card made by Microsoft or the Aztech SG 16 Pro or NX16 Pro.\n",
"Enable this if you have a sound card based on the Ensoniq\n"
"Soundscape chipset. Such cards are being manufactured by Ensoniq,\n"
"SoundScape chipset. Such cards are being manufactured by Ensoniq,\n"
"Spea and Reveal (Reveal makes other cards as well).\n",
"Enable this option if you have the AudioTrix Pro sound card\n"
......@@ -240,10 +240,10 @@ char *help[] =
"Use this option to enable experimental support for cards that\n"
"use the Plug and Play protocol.\n",
"Enable this option if your card is a SoundBlaster Pro or\n"
"SoundBlaster 16. It also works with many SoundBlaster Pro clones.\n",
"Enable this option if your card is a Sound Blaster Pro or\n"
"Sound Blaster 16. It also works with many Sound Blaster Pro clones.\n",
"Enable this if you have a SoundBlaster 16, including the AWE32.\n",
"Enable this if you have a Sound Blaster 16, including the AWE32.\n",
"Enable this if you have an Audio Excel DSP16 card. See the file\n"
"Readme.aedsp16 for more information.\n",
......@@ -748,19 +748,19 @@ ask_parameters (void)
"Check from manual of the card");
ask_int_choice (B (OPT_SB), "SBC_IRQ",
"SoundBlaster IRQ",
"Sound Blaster IRQ",
FMT_INT,
7,
"Check from manual of the card");
ask_int_choice (B (OPT_SB), "SBC_DMA",
"SoundBlaster DMA",
"Sound Blaster DMA",
FMT_INT,
1,
"0, 1 or 3");
ask_int_choice (B (OPT_SB), "SB_DMA2",
"SoundBlaster 16 bit DMA (_REQUIRED_for SB16, Jazz16, SMW)",
"Sound Blaster 16 bit DMA (_REQUIRED_for SB16, Jazz16, SMW)",
FMT_INT,
5,
"5, 6 or 7 (use 1 for 8 bit cards)");
......@@ -775,7 +775,7 @@ ask_parameters (void)
"SB MPU401 IRQ (Jazz16, SM Wave and ES1688)",
FMT_INT,
-1,
"Check from manual of the card");
"Use -1 with SB16");
ask_int_choice (B (OPT_PAS), "PAS_IRQ",
"PAS16 IRQ",
......@@ -944,31 +944,31 @@ ask_parameters (void)
"0, 1 or 3");
ask_int_choice (B (OPT_SSCAPE), "SSCAPE_BASE",
"Soundscape MIDI I/O base",
"SoundScape MIDI I/O base",
FMT_HEX,
0x330,
"320, 330, 340 or 350");
ask_int_choice (B (OPT_SSCAPE), "SSCAPE_IRQ",
"Soundscape MIDI IRQ",
"SoundScape MIDI IRQ",
FMT_INT,
9,
"");
ask_int_choice (B (OPT_SSCAPE), "SSCAPE_DMA",
"Soundscape initialization DMA",
"SoundScape initialization DMA",
FMT_INT,
3,
"0, 1 or 3");
ask_int_choice (B (OPT_SSCAPE), "SSCAPE_MSS_BASE",
"Soundscape audio I/O base",
"SoundScape audio I/O base",
FMT_HEX,
0x534,
"534, 608, E84 or F44");
ask_int_choice (B (OPT_SSCAPE), "SSCAPE_MSS_IRQ",
"Soundscape audio IRQ",
"SoundScape audio IRQ",
FMT_INT,
11,
"7, 9, 10 or 11");
......@@ -1365,10 +1365,10 @@ main (int argc, char *argv[])
{
if (think_positively (
"Do you want support for the Audio Excel SoundBlaster Pro mode",
"Do you want support for the Audio Excel Sound Blaster Pro mode",
1,
"Enable this option if you want the Audio Excel sound card to operate\n"
"in SoundBlaster Pro mode.\n"))
"in Sound Blaster Pro mode.\n"))
{
printf ("#define AEDSP16_SBPRO\n");
sel1 = 1;
......@@ -1403,7 +1403,7 @@ main (int argc, char *argv[])
{
genld_again:
if (think_positively ("Do you wish to include an LD file", 1,
"If you want to emulate the SoundBlaster card and you have a DSPxxx.LD\n"
"If you want to emulate the Sound Blaster card and you have a DSPxxx.LD\n"
"file then you must include the LD in the kernel.\n"))
{
char path[512];
......@@ -1430,7 +1430,7 @@ main (int argc, char *argv[])
{
FILE *sf = fopen ("synth-ld.h", "w");
fprintf (sf, "/* automaticaly generated by configure */\n");
fprintf (sf, "/* automatically generated by configure */\n");
fprintf (sf, "unsigned char pss_synth[1];\n"
"#define pss_synthLen 0\n");
fclose (sf);
......@@ -1443,7 +1443,7 @@ main (int argc, char *argv[])
if (think_positively ("Do you want to include TRXPRO.HEX in your kernel",
1,
"The MediaTrix AudioTrix Pro has an onboard microcontroller which\n"
"The MediaTrix AudioTrix Pro has an on-board microcontroller which\n"
"needs to be initialized by downloading the code from the file TRXPRO.HEX\n"
"in the DOS driver directory. If you don't have the TRXPRO.HEX file handy\n"
"you may skip this step. However, the SB and MPU-401 modes of AudioTrix\n"
......
......@@ -5,7 +5,7 @@
* a PnP compatible chip which contains a CS4231A codec, SB emulation,
* a MPU401 compatible MIDI port, joystick and synthesizer and IDE CD-ROM
* interfaces. This is just a temporary driver until full PnP support
* gets inplemented. Just the WSS codec, FM synth and the MIDI ports are
* gets implemented. Just the WSS codec, FM synth and the MIDI ports are
* supported. Other interfaces are left uninitialized.
*/
/*
......@@ -142,14 +142,14 @@ probe_cs4232 (struct address_info *hw_config)
*/
CS_OUT2 (0x15, 0x00); /* Select logical device 0 (WSS/SB/FM) */
CS_OUT3 (0x47, (base >> 8) & 0xff, base & 0xff); /* WSSbase */
CS_OUT3 (0x47, (base >> 8) & 0xff, base & 0xff); /* WSS base */
if (check_region (0x388, 4)) /* Not free */
CS_OUT3 (0x48, 0x00, 0x00) /* FMbase off */
CS_OUT3 (0x48, 0x00, 0x00) /* FM base off */
else
CS_OUT3 (0x48, 0x03, 0x88); /* FMbase 0x388 */
CS_OUT3 (0x48, 0x03, 0x88); /* FM base 0x388 */
CS_OUT3 (0x42, 0x00, 0x00); /* SBbase off */
CS_OUT3 (0x42, 0x00, 0x00); /* SB base off */
CS_OUT2 (0x22, irq); /* SB+WSS IRQ */
CS_OUT2 (0x2a, dma1); /* SB+WSS DMA */
......@@ -186,7 +186,7 @@ probe_cs4232 (struct address_info *hw_config)
if (mpu_base != 0 && mpu_irq != 0)
{
CS_OUT2 (0x15, 0x03); /* Select logical device 3 (MPU) */
CS_OUT3 (0x47, (mpu_base >> 8) & 0xff, mpu_base & 0xff); /* MPUbase */
CS_OUT3 (0x47, (mpu_base >> 8) & 0xff, mpu_base & 0xff); /* MPU base */
CS_OUT2 (0x22, mpu_irq); /* MPU IRQ */
CS_OUT2 (0x33, 0x01); /* Activate logical dev 3 */
}
......
......@@ -34,7 +34,7 @@ extern int sound_started;
struct driver_info {
char *driver_id;
int card_subtype; /* Driver spesific. Usually 0 */
int card_subtype; /* Driver specific. Usually 0 */
int card_type; /* From soundcard.h */
char *name;
void (*attach) (struct address_info *hw_config);
......@@ -329,7 +329,7 @@ struct sound_timer_operations {
{"MIDI6850", 0, SNDCARD_UART6850,"6860 UART Midi", attach_uart6850, probe_uart6850, unload_uart6850},
#endif
#ifdef CONFIG_SB
{"SBLAST", 0, SNDCARD_SB, "SoundBlaster", attach_sb_card, probe_sb, unload_sb},
{"SBLAST", 0, SNDCARD_SB, "Sound Blaster", attach_sb_card, probe_sb, unload_sb},
#ifdef CONFIG_MIDI
{"UART401", 0, SNDCARD_UART401,"MPU-401 UART", attach_uart401, probe_uart401, unload_uart401},
#endif
......@@ -342,13 +342,13 @@ struct sound_timer_operations {
{"GUSPNP", 1, SNDCARD_GUSPNP, "GUS PnP", attach_gus_card, probe_gus, unload_gus},
#endif
#ifdef CONFIG_SSCAPE
{"SSCAPE", 0, SNDCARD_SSCAPE, "Ensoniq Soundscape", attach_sscape, probe_sscape, unload_sscape},
{"SSCAPE", 0, SNDCARD_SSCAPE, "Ensoniq SoundScape", attach_sscape, probe_sscape, unload_sscape},
{"SSCAPEMSS", 0, SNDCARD_SSCAPE_MSS, "MS Sound System (SoundScape)", attach_ss_ms_sound, probe_ss_ms_sound, unload_ss_ms_sound},
#endif
#ifdef CONFIG_TRIX
{"TRXPRO", 0, SNDCARD_TRXPRO, "MediaTriX AudioTriX Pro", attach_trix_wss, probe_trix_wss, unload_trix_wss},
{"TRXPROSB", 0, SNDCARD_TRXPRO_SB, "AudioTriX (SB mode)", attach_trix_sb, probe_trix_sb, unload_trix_sb},
{"TRXPROMPU", 0, SNDCARD_TRXPRO_MPU, "AudioTriX MIDI", attach_trix_mpu, probe_trix_mpu, unload_trix_mpu},
{"TRXPRO", 0, SNDCARD_TRXPRO, "MediaTrix AudioTrix Pro", attach_trix_wss, probe_trix_wss, unload_trix_wss},
{"TRXPROSB", 0, SNDCARD_TRXPRO_SB, "AudioTrix (SB mode)", attach_trix_sb, probe_trix_sb, unload_trix_sb},
{"TRXPROMPU", 0, SNDCARD_TRXPRO_MPU, "AudioTrix MIDI", attach_trix_mpu, probe_trix_mpu, unload_trix_mpu},
#endif
{NULL, 0, 0, "*?*", NULL, NULL, NULL}
};
......@@ -531,7 +531,7 @@ void sound_setup (char *str, int *ints);
int sound_alloc_dmap (int dev, struct dma_buffparms *dmap, int chan);
void sound_free_dmap (int dev, struct dma_buffparms *dmap);
extern int soud_map_buffer (int dev, struct dma_buffparms *dmap, buffmem_desc *info);
extern int sound_map_buffer (int dev, struct dma_buffparms *dmap, buffmem_desc *info);
void install_pnp_sounddrv(struct pnp_sounddev *drv);
int sndtable_probe (int unit, struct address_info *hw_config);
int sndtable_init_card (int unit, struct address_info *hw_config);
......
......@@ -83,7 +83,7 @@ reorganize_buffers (int dev, struct dma_buffparms *dmap, int recording)
sz /= 8; /* #bits -> #bytes */
/*
* Compute a buffer size for time not exeeding 1 second.
* Compute a buffer size for time not exceeding 1 second.
* Usually this algorithm gives a buffer size for 0.5 to 1.0 seconds
* of sound (using the current speed, sample size and #channels).
*/
......@@ -120,8 +120,8 @@ reorganize_buffers (int dev, struct dma_buffparms *dmap, int recording)
else
{
/*
* The process has specified the buffer sice with SNDCTL_DSP_SETFRAGMENT or
* the buffer sice computation has already been done.
* The process has specified the buffer size with SNDCTL_DSP_SETFRAGMENT or
* the buffer size computation has already been done.
*/
if (dmap->fragment_size > (audio_devs[dev]->buffsize / 2))
dmap->fragment_size = (audio_devs[dev]->buffsize / 2);
......@@ -661,7 +661,7 @@ dma_subdivide (int dev, struct dma_buffparms *dmap, caddr_t arg, int fact)
}
if (dmap->subdivision != 0 ||
dmap->fragment_size) /* Loo late to change */
dmap->fragment_size) /* Too late to change */
return -(EINVAL);
if (fact > MAX_REALTIME_FACTOR)
......@@ -683,7 +683,7 @@ dma_set_fragment (int dev, struct dma_buffparms *dmap, caddr_t arg, int fact)
return -(EIO);
if (dmap->subdivision != 0 ||
dmap->fragment_size) /* Loo late to change */
dmap->fragment_size) /* Too late to change */
return -(EINVAL);
bytes = fact & 0xffff;
......@@ -1273,7 +1273,7 @@ DMAbuf_start_output (int dev, int buff_no, int l)
restart = 1;
/*
* Bypass buffering if using mmaped access
* Bypass buffering if using mmapped access
*/
if (audio_devs[dev]->dmap_out->mapping_flags & DMA_MAP_MAPPED)
......
......@@ -57,7 +57,7 @@ for more details.
to cut data only at sample sizes, buffer size is now
a kernel runtime option, implemented fsync() & several
minor improvements
++Guenther: useful hints and bugfixes, cross-checked it for
++Guenther: useful hints and bug fixes, cross-checked it for
Falcons
1996/3/9 ++geert: support added for Amiga, A-law, 16-bit little endian.
......@@ -99,7 +99,7 @@ extern void atari_microwire_cmd(int cmd);
#ifdef CONFIG_AMIGA
/*
* The minimum period for audio depends on htotal (for OCS/ECS/AGA)
* The minimum period for audio depends on total (for OCS/ECS/AGA)
* (Imported from arch/m68k/amiga/amisound.c)
*/
......@@ -307,7 +307,7 @@ static char alaw2dma16[] = {
#ifdef HAS_14BIT_TABLES
/* 14 bit mu-law (lsb) */
/* 14 bit mu-law (LSB) */
static char alaw2dma14l[] = {
33, 33, 33, 33, 33, 33, 33, 33,
......@@ -344,7 +344,7 @@ static char alaw2dma14l[] = {
14, 12, 10, 8, 6, 4, 2, 0
};
/* 14 bit A-law (lsb) */
/* 14 bit A-law (LSB) */
static char alaw2dma14l[] = {
32, 32, 32, 32, 32, 32, 32, 32,
......
......@@ -81,7 +81,7 @@ gus_adagio_vol (int vel, int mainv, int xpn, int voicev)
return ((15 << 8) | 255);
/*
* Convert to gus's logarithmic form with 4 bit exponent i and 8 bit
* Convert to GUS's logarithmic form with 4 bit exponent i and 8 bit
* mantissa m.
*/
n = x;
......
......@@ -1666,7 +1666,7 @@ guswave_open (int dev, int mode)
if ((err = DMAbuf_open_dma (gus_devnum)) < 0)
{
/* printk ("GUS: Loading saples without DMA\n"); */
/* printk ("GUS: Loading samples without DMA\n"); */
gus_no_dma = 1; /* Upload samples using PIO */
}
else
......@@ -1788,7 +1788,7 @@ guswave_load_patch (int dev, int format, const char *addr,
if ((free_mem_ptr / GUS_BANK_SIZE) !=
((free_mem_ptr + patch.len) / GUS_BANK_SIZE))
{
unsigned long tmp_mem = /* Aling to 256K */
unsigned long tmp_mem = /* Align to 256K */
((free_mem_ptr / GUS_BANK_SIZE) + 1) * GUS_BANK_SIZE;
if ((tmp_mem + patch.len) > gus_mem_size)
......@@ -2514,7 +2514,7 @@ gus_transfer_output_block (int dev, unsigned long buf,
if (audio_devs[dev]->dmachan1 > 3)
dma_command |= 0x04; /* 16 bit DMA channel */
gus_write8 (0x41, dma_command); /* Kickstart */
gus_write8 (0x41, dma_command); /* Kick start */
if (chn == (gus_audio_channels - 1)) /* Last channel */
{
......@@ -2715,7 +2715,7 @@ guswave_setup_voice (int dev, int voice, int chn)
guswave_set_instr (dev, voice, info->pgm_num);
voices[voice].expression_vol =
info->controllers[CTL_EXPRESSION]; /* Just msb */
info->controllers[CTL_EXPRESSION]; /* Just MSB */
voices[voice].main_vol =
(info->controllers[CTL_MAIN_VOLUME] * 100) / (unsigned) 128;
voices[voice].panning =
......@@ -2862,7 +2862,7 @@ guswave_patchmgr (int dev, struct patmgr_info *rec)
*/
offs += sample_ptrs[sample]; /*
* Begin offsess + offset to DRAM
* Begin offsets + offset to DRAM
*/
for (n = 0; n < l; n++)
......@@ -2907,7 +2907,7 @@ guswave_patchmgr (int dev, struct patmgr_info *rec)
*/
offs += sample_ptrs[sample]; /*
* Begin offsess + offset to DRAM
* Begin offsets + offset to DRAM
*/
for (n = 0; n < l; n++)
......
......@@ -63,7 +63,7 @@
#undef DEBUG /* if defined, produce a verbose report via syslog */
int aci_port = 0x354; /* as determined by bit 4 in the Opti 929 MC4 register */
int aci_port = 0x354; /* as determined by bit 4 in the OPTi 929 MC4 register */
unsigned char aci_idcode[2] = {0, 0}; /* manufacturer and product ID */
unsigned char aci_version = 0; /* ACI firmware version */
int aci_solo; /* status bit of the card that can't be *
......@@ -129,7 +129,7 @@ static int read_general_status(void)
/*
* The four ACI command types (implied, write, read and indexed) can
* be sent to the microcontroller using the following four functions.
* If a problem occured, they return -1.
* If a problem occurred, they return -1.
*/
static int implied_cmd(unsigned char opcode)
......
......@@ -17,7 +17,7 @@
* OPTi 82C929 MAD16 Pro
* OPTi 82C930
*
* These audio interface chips don't prduce sound themselves. They just
* These audio interface chips don't produce sound themselves. They just
* connect some other components (OPL-[234] and a WSS compatible codec)
* to the PC bus and perform I/O, DMA and IRQ address decoding. There is
* also a UART for the MPU-401 mode (not 82C928/Mozart).
......@@ -33,7 +33,7 @@
* 0x00 - none
* 0x02 - Sony 31A
* 0x04 - Mitsumi
* 0x06 - Panasonic (type "LaserMate", not "SoundBlaster")
* 0x06 - Panasonic (type "LaserMate", not "Sound Blaster")
* 0x08 - Secondary IDE (address 0x170)
* 0x0a - Primary IDE (address 0x1F0)
*
......@@ -83,8 +83,8 @@ static int already_initialized = 0;
*/
#define MC0_PORT 0xf8c /* Dummy port */
#define MC1_PORT 0xf8d /* SB address, CDROM interface type, joystick */
#define MC2_PORT 0xf8e /* CDROM address, IRQ, DMA, plus OPL4 bit */
#define MC1_PORT 0xf8d /* SB address, CD-ROM interface type, joystick */
#define MC2_PORT 0xf8e /* CD-ROM address, IRQ, DMA, plus OPL4 bit */
#define MC3_PORT 0xf8f
#define PASSWD_REG 0xf8f
#define MC4_PORT 0xf90
......@@ -200,14 +200,14 @@ detect_c930 (void)
mad_write (MC7_PORT, 0);
if ((tmp = mad_read (MC7_PORT)) != 0)
{
DDB (printk ("MC7 not writeable (%x)\n", tmp));
DDB (printk ("MC7 not writable (%x)\n", tmp));
return 0;
}
mad_write (MC7_PORT, 0xcb);
if ((tmp = mad_read (MC7_PORT)) != 0xcb)
{
DDB (printk ("MC7 not writeable2 (%x)\n", tmp));
DDB (printk ("MC7 not writable2 (%x)\n", tmp));
return 0;
}
......@@ -248,7 +248,7 @@ detect_mad16 (void)
return 0;
}
mad_write (MC1_PORT, tmp ^ 0x80); /* Togge a bit */
mad_write (MC1_PORT, tmp ^ 0x80); /* Toggle a bit */
if ((tmp2 = mad_read (MC1_PORT)) != (tmp ^ 0x80)) /* Compare the bit */
{
mad_write (MC1_PORT, tmp); /* Restore */
......@@ -365,7 +365,7 @@ init_c930 (struct address_info *hw_config)
return 0;
/*
* A temporarary kludge which drops the device back to mode1.
* A temporary kludge which drops the device back to mode1.
* This removes problems with interrupts but disables full duplex.
* A better solution should be introduced later.
*/
......
......@@ -181,7 +181,7 @@ download_code (void)
if (c != 0x80)
{
printk ("Doanload not acknowledged\n");
printk ("Download not acknowledged\n");
return 0;
}
else if (!(lines++ % 10))
......@@ -452,7 +452,7 @@ attach_maui (struct address_info *hw_config)
struct synth_operations *synth;
/*
* Intercept patch loading calls so that they canbe handled
* Intercept patch loading calls so that they can be handled
* by the Maui driver.
*/
......
......@@ -728,7 +728,7 @@ midi_synth_send_sysex (int dev, unsigned char *bytes, int len)
if (!midi_devs[orig_dev]->putc (orig_dev, bytes[i]))
{
/*
* Hardware leve buffer is full. Abort the sysex message.
* Hardware level buffer is full. Abort the sysex message.
*/
int timeout = 0;
......
......@@ -506,7 +506,7 @@ mpu401_open (int dev, int mode,
* Verify that the device is really running.
* Some devices (such as Ensoniq SoundScape don't
* work before the on board processor (OBP) is initialized
* by downloadin it's microcode.
* by downloading its microcode.
*/
if (!devc->initialized)
......@@ -651,7 +651,7 @@ mpu401_command (int dev, mpu_command_rec * cmd)
ok = 1;
}
else
{ /* Device is not currently open. Use simplier method */
{ /* Device is not currently open. Use simpler method */
if (read_data (devc) == MPU_ACK)
ok = 1;
}
......@@ -878,7 +878,7 @@ mpu_synth_open (int dev, int mode)
* Verify that the device is really running.
* Some devices (such as Ensoniq SoundScape don't
* work before the on board processor (OBP) is initialized
* by downloadin it's microcode.
* by downloading its microcode.
*/
if (!devc->initialized)
......@@ -1334,7 +1334,7 @@ clocks2ticks (unsigned long clocks)
/*
* The MPU-401 supports just a limited set of possible timebase values.
* Since the applications require more choices, the driver has to
* program the HW to do it's best and to convert between the HW and
* program the HW to do its best and to convert between the HW and
* actual timebases.
*/
......
......@@ -158,7 +158,7 @@ int
opl3_detect (int ioaddr, int *osp)
{
/*
* This function returns 1 if the FM chicp is present at the given I/O port
* This function returns 1 if the FM chip is present at the given I/O port
* The detection algorithm plays with the timer built in the FM chip and
* looks for a change in the status register.
*
......@@ -238,7 +238,7 @@ opl3_detect (int ioaddr, int *osp)
}
/*
* There is a FM chicp in this address. Detect the type (OPL2 to OPL4)
* There is a FM chip in this address. Detect the type (OPL2 to OPL4)
*/
if (signature == 0x06 && !force_opl3_mode) /* OPL2 */
......@@ -252,7 +252,7 @@ opl3_detect (int ioaddr, int *osp)
detected_model = 3;
/*
* Detect availability of OPL4 (_experimental_). Works propably
* Detect availability of OPL4 (_experimental_). Works probably
* only after a cold boot. In addition the OPL4 port
* of the chip may not be connected to the PC bus at all.
*/
......
......@@ -18,7 +18,7 @@
*
* The percussive mode is implemented in the left side only.
*
* With the above exeptions the both sides can be operated independently.
* With the above exceptions the both sides can be operated independently.
*
* A 4 OP voice can be created by setting the corresponding
* bit at offset 4 of the right side.
......@@ -144,7 +144,7 @@
* register offset).
*
* For 4 OP voices the connection bit is used in the
* both halfs (gives 4 ways to connect the operators).
* both halves (gives 4 ways to connect the operators).
*/
#define FEEDBACK_CONNECTION 0xc0
#define FEEDBACK_MASK 0x0e /* Valid just for 1st OP of a voice */
......@@ -153,7 +153,7 @@
* In the 4 OP mode there is four possible configurations how the
* operators can be connected together (in 2 OP modes there is just
* AM or FM). The 4 OP connection mode is defined by the rightmost
* bit of the FEEDBACK_CONNECTION (0xC0-0xC8) on the both halfs.
* bit of the FEEDBACK_CONNECTION (0xC0-0xC8) on the both halves.
*
* First half Second half Mode
*
......
......@@ -25,7 +25,7 @@ static unsigned char sb_dma_bits[] =
* be relative to the given base -register
*/
int translat_code;
int translate_code;
static int pas_intr_mask = 0;
static int pas_irq = 0;
static int pas_sb_base = 0;
......@@ -46,13 +46,13 @@ extern void mix_write (unsigned char data, int ioaddr);
unsigned char
pas_read (int ioaddr)
{
return inb (ioaddr ^ translat_code);
return inb (ioaddr ^ translate_code);
}
void
pas_write (unsigned char data, int ioaddr)
{
outb (data, ioaddr ^ translat_code);
outb (data, ioaddr ^ translate_code);
}
/******************* Begin of the Interrupt Handler ********************/
......@@ -284,7 +284,7 @@ detect_pas_hw (struct address_info *hw_config)
outb (0xBC, 0x9A01); /* Activate first board */
outb (hw_config->io_base >> 2, 0x9A01); /* Set base address */
translat_code = 0x388 ^ hw_config->io_base;
translate_code = 0x388 ^ hw_config->io_base;
pas_write (1, 0xBF88); /* Select one wait states */
board_id = pas_read (0x0B8B);
......
......@@ -16,7 +16,7 @@
#define DEB(what) /* (what) */
#endif
extern int translat_code;
extern int translate_code;
extern char pas_model;
extern int *pas_osp;
extern int pas_audiodev;
......@@ -61,7 +61,7 @@ mix_write (unsigned char data, int ioaddr)
if (pas_model == 4)
{
outw (data | (data << 8), (ioaddr ^ translat_code) - 1);
outw (data | (data << 8), (ioaddr ^ translate_code) - 1);
outb (0x80, 0);
}
else
......
......@@ -62,7 +62,7 @@ pcm_set_speed (int arg)
tmp = pas_read (0x0B8A);
/*
* Set anti-aliasing filters according to sample rate. You reall *NEED*
* Set anti-aliasing filters according to sample rate. You really *NEED*
* to enable this feature for all normal recording unless you want to
* experiment with aliasing effects.
* These filters apply to the selected "recording" source.
......
/*
* sound/patmgr.c
*
* The patch maneger interface for the /dev/sequencer
* The patch manager interface for the /dev/sequencer
*/
/*
* Copyright (C) by Hannu Savolainen 1993-1996
......
......@@ -260,7 +260,7 @@ pss_download_boot (pss_confdata * devc, unsigned char *block, int size, int flag
break;
else
{
printk ("\nPSS: DownLoad timeout problems, byte %d=%d\n",
printk ("\nPSS: Download timeout problems, byte %d=%d\n",
count, size);
return 0;
}
......@@ -710,7 +710,7 @@ pss_coproc_ioctl (void *dev_info, unsigned int cmd, caddr_t arg, int local)
return -(EIO);
}
if (!pss_get_dspword (devc, &tmp)) /* Read msb */
if (!pss_get_dspword (devc, &tmp)) /* Read MSB */
{
restore_flags (flags);
return -(EIO);
......@@ -718,7 +718,7 @@ pss_coproc_ioctl (void *dev_info, unsigned int cmd, caddr_t arg, int local)
buf.parm1 = tmp << 8;
if (!pss_get_dspword (devc, &tmp)) /* Read lsb */
if (!pss_get_dspword (devc, &tmp)) /* Read LSB */
{
restore_flags (flags);
return -(EIO);
......@@ -800,7 +800,7 @@ probe_pss_mss (struct address_info *hw_config)
/*
* For some reason the card returns 0xff in the WSS status register
* immediately after boot. Propably MIDI+SB emulation algorithm
* immediately after boot. Probably MIDI+SB emulation algorithm
* downloaded to the ADSP2115 spends some time initializing the card.
* Let's try to wait until it finishes this task.
*/
......
......@@ -37,7 +37,7 @@
#define MDL_SBPRO 4 /* SB Pro */
#define MDL_SB16 5 /* SB16/32/AWE */
#define MDL_JAZZ 10 /* Media Vision Jazz16 */
#define MDL_SMW 11 /* Logitech Soundman Wave (Jazz16) */
#define MDL_SMW 11 /* Logitech SoundMan Wave (Jazz16) */
#define MDL_ESS 12 /* ESS ES688 and ES1688 */
#define MDL_AZTECH 13 /* Aztech Sound Galaxy family */
......
/*
* sound/sb_audio.c
*
* Audio routines for SoundBlaster compatible cards.
* Audio routines for Sound Blaster compatible cards.
*/
/*
* Copyright (C) by Hannu Savolainen 1993-1996
......@@ -399,7 +399,7 @@ sb20_audio_trigger (int dev, int bits)
}
/*
* SB2.01 spesific speed setup
* SB2.01 specific speed setup
*/
static int
......@@ -433,7 +433,7 @@ sb201_audio_set_speed (int dev, int speed)
}
/*
* SB Pro spesific routines
* SB Pro specific routines
*/
static int
......@@ -575,7 +575,7 @@ jazz16_audio_set_speed (int dev, int speed)
}
/*
* ESS spesific routines
* ESS specific routines
*/
static void
......@@ -607,7 +607,7 @@ ess_speed (sb_devc * devc)
* Set filter divider register
*/
speed = (speed * 9) / 20; /* Set filter rolloff to 90% of speed/2 */
speed = (speed * 9) / 20; /* Set filter roll-off to 90% of speed/2 */
divider = 256 - 7160000 / (speed * 82);
ess_write (devc, 0xa2, divider);
......@@ -798,7 +798,7 @@ ess_audio_trigger (int dev, int bits)
}
/*
* SB16 spesific routines
* SB16 specific routines
*/
static int
......
/*
* sound/sb_card.c
*
* Detection routine for the SoundBlaster cards.
* Detection routine for the Sound Blaster cards.
*/
/*
* Copyright (C) by Hannu Savolainen 1993-1996
......
/*
* sound/sb_common.c
*
* Common routines for SoundBlaster compatible cards.
* Common routines for Sound Blaster compatible cards.
*/
/*
* Copyright (C) by Hannu Savolainen 1993-1996
......@@ -25,7 +25,7 @@
#include "sb.h"
static sb_devc *detected_devc = NULL; /* For communication from probe to init */
static sb_devc *last_devc = NULL; /* For MPU401 initalization */
static sb_devc *last_devc = NULL; /* For MPU401 initialization */
static sb_devc *irq2devc[16] =
{NULL};
static unsigned char jazz_irq_bits[] =
......@@ -34,14 +34,14 @@ static unsigned char jazz_dma_bits[] =
{0, 1, 0, 2, 0, 3, 0, 4};
/*
* Jazz16 chipset spesific control variables
* Jazz16 chipset specific control variables
*/
static int jazz16_base = 0; /* Not detected */
static unsigned char jazz16_bits = 0; /* I/O relocation bits */
/*
* Logitech Soundman Wave spesific initialization code
* Logitech SoundMan Wave specific initialization code
*/
#ifdef SMW_MIDI0001_INCLUDED
......@@ -59,7 +59,7 @@ sb_dsp_command (sb_devc * devc, unsigned char val)
unsigned long limit;
limit = jiffies + HZ / 10; /*
* The timeout is 0.1 secods
* The timeout is 0.1 seconds
*/
/*
......@@ -79,7 +79,7 @@ sb_dsp_command (sb_devc * devc, unsigned char val)
}
}
printk ("SoundBlaster: DSP Command(%x) Timeout.\n", val);
printk ("Sound Blaster: DSP Command(%x) Timeout.\n", val);
return 0;
}
......@@ -173,7 +173,7 @@ sbintr (int irq, void *dev_id, struct pt_regs *dummy)
break;
default:
printk ("SoundBlaster: Unexpected interrupt\n");
printk ("Sound Blaster: Unexpected interrupt\n");
}
/*
* Acknowledge interrupts
......@@ -345,7 +345,7 @@ init_Jazz16 (sb_devc * devc, struct address_info *hw_config)
return 0;
/*
* OK so far. Now configure the IRQ and DMA channel used by the acrd.
* OK so far. Now configure the IRQ and DMA channel used by the card.
*/
if (hw_config->irq < 1 || hw_config->irq > 15 ||
jazz_irq_bits[hw_config->irq] == 0)
......@@ -501,7 +501,7 @@ ess_init (sb_devc * devc, struct address_info *hw_config)
* Set DMA configuration register
*/
cfg = 0x50; /* Extended mode DMA ebable */
cfg = 0x50; /* Extended mode DMA enable */
if (devc->dma8 > 3 || devc->dma8 < 0 || devc->dma8 == 2)
{
......@@ -649,7 +649,7 @@ sb_dsp_init (struct address_info *hw_config)
devc->caps = hw_config->driver_use_1;
if (snd_set_irq_handler (hw_config->irq,
sbintr, "soundblaster", devc->osp) < 0)
sbintr, "sound blaster", devc->osp) < 0)
{
printk ("SB: Can't allocate IRQ%d\n", hw_config->irq);
return;
......@@ -696,7 +696,7 @@ sb_dsp_init (struct address_info *hw_config)
DDB (printk ("IRQ test OK (IRQ%d)\n", devc->irq));
}
request_region (hw_config->io_base, 16, "soundblaster");
request_region (hw_config->io_base, 16, "sound blaster");
switch (devc->major)
{
......@@ -758,12 +758,12 @@ sb_dsp_init (struct address_info *hw_config)
if (!(devc->caps & SB_NO_AUDIO))
{
if (sound_alloc_dma (devc->dma8, "SoundBlaster8"))
if (sound_alloc_dma (devc->dma8, "Sound Blaster8"))
{
printk ("SB: Can't allocate 8 bit DMA channel %d\n", devc->dma8);
}
if (devc->dma16 >= 0 && devc->dma16 != devc->dma8)
if (sound_alloc_dma (devc->dma16, "SoundBlaster16"))
if (sound_alloc_dma (devc->dma16, "Sound Blaster16"))
{
printk ("SB: Can't allocate 16 bit DMA channel %d\n", devc->dma16);
}
......@@ -958,7 +958,7 @@ smw_midi_init (sb_devc * devc, struct address_info *hw_config)
* Set the SCSI interrupt (IRQ2/9, IRQ3 or IRQ10). The SCSI interrupt
* is disabled by default.
*
* Btw the Zilog 5380 SCSI controller is located at MPU base + 0x10.
* BTW the Zilog 5380 SCSI controller is located at MPU base + 0x10.
*/
{
static unsigned char scsi_irq_bits[] =
......
/*
* sound/sb_dsp.c
*
* The low level driver for the SoundBlaster DS chips.
* The low level driver for the Sound Blaster DS chips.
*/
/*
* Copyright (C) by Hannu Savolainen 1993-1996
......@@ -147,13 +147,13 @@ sb_midi_interrupt (sb_devc * devc)
restore_flags (flags);
}
#define MIDI_SYNTH_NAME "SoundBlaster Midi"
#define MIDI_SYNTH_NAME "Sound Blaster Midi"
#define MIDI_SYNTH_CAPS 0
#include "midi_synth.h"
static struct midi_operations sb_midi_operations =
{
{"SoundBlaster", 0, 0, SNDCARD_SB},
{"Sound Blaster", 0, 0, SNDCARD_SB},
&std_midi_synth,
{0},
sb_midi_open,
......
......@@ -2,7 +2,7 @@
/*
* sound/sb_mixer.c
*
* The low level mixer driver for the SoundBlaster compatible cards.
* The low level mixer driver for the Sound Blaster compatible cards.
*/
/*
* Copyright (C) by Hannu Savolainen 1993-1996
......@@ -352,7 +352,7 @@ sb_mixer_ioctl (int dev, unsigned int cmd, caddr_t arg)
static struct mixer_operations sb_mixer_operations =
{
"SB",
"SoundBlaster",
"Sound Blaster",
sb_mixer_ioctl
};
......
......@@ -35,7 +35,7 @@ static int max_synthdev = 0;
/*
* The seq_mode gives the operating mode of the sequencer:
* 1 = level1 (the default)
* 2 = level2 (extended capabilites)
* 2 = level2 (extended capabilities)
*/
#define SEQ_1 1
......@@ -69,7 +69,7 @@ static volatile int qhead = 0, qtail = 0, qlen = 0;
static volatile int iqhead = 0, iqtail = 0, iqlen = 0;
static volatile int seq_playing = 0;
static volatile int sequencer_busy = 0;
static int output_treshold;
static int output_threshold;
static int pre_event_timeout;
static unsigned synth_open_mask;
......@@ -688,7 +688,7 @@ seq_timing_event (unsigned char *event_rec)
if ((ret = tmr->event (tmr_no, event_rec)) == TIMER_ARMED)
{
if ((SEQ_MAX_QUEUE - qlen) >= output_treshold)
if ((SEQ_MAX_QUEUE - qlen) >= output_threshold)
{
unsigned long flags;
......@@ -728,7 +728,7 @@ seq_timing_event (unsigned char *event_rec)
request_sound_timer (time);
if ((SEQ_MAX_QUEUE - qlen) >= output_treshold)
if ((SEQ_MAX_QUEUE - qlen) >= output_threshold)
{
unsigned long flags;
......@@ -864,7 +864,7 @@ play_event (unsigned char *q)
request_sound_timer (time);
if ((SEQ_MAX_QUEUE - qlen) >= output_treshold)
if ((SEQ_MAX_QUEUE - qlen) >= output_threshold)
{
unsigned long flags;
......@@ -1003,7 +1003,7 @@ seq_startplay (void)
seq_playing = 0;
if ((SEQ_MAX_QUEUE - qlen) >= output_treshold)
if ((SEQ_MAX_QUEUE - qlen) >= output_threshold)
{
unsigned long flags;
......@@ -1203,7 +1203,7 @@ sequencer_open (int dev, struct fileinfo *file)
seq_sleep_flag.flags = WK_NONE;
midi_sleep_flag.flags = WK_NONE;
output_treshold = SEQ_MAX_QUEUE / 2;
output_threshold = SEQ_MAX_QUEUE / 2;
for (i = 0; i < num_synths; i++)
if (pmgr_present[i])
......@@ -1373,7 +1373,7 @@ midi_outc (int dev, unsigned char data)
/*
* This routine sends one byte to the Midi channel.
* If the output Fifo is full, it waits until there
* If the output FIFO is full, it waits until there
* is space in the queue
*/
......@@ -1843,7 +1843,7 @@ sequencer_ioctl (int dev, struct fileinfo *file,
tmp = 1;
if (tmp >= SEQ_MAX_QUEUE)
tmp = SEQ_MAX_QUEUE - 1;
output_treshold = tmp;
output_threshold = tmp;
return 0;
}
break;
......@@ -1908,7 +1908,7 @@ sequencer_select (int dev, struct fileinfo *file, int sel_type, select_table_han
case SEL_OUT:
save_flags (flags);
cli ();
if ((SEQ_MAX_QUEUE - qlen) < output_treshold)
if ((SEQ_MAX_QUEUE - qlen) < output_threshold)
{
seq_sleep_flag.flags = WK_SLEEP;
......
......@@ -34,7 +34,7 @@
/************* PCM DMA buffer sizes *******************/
/* If you are using high playback or recording speeds, the default buffersize
/* If you are using high playback or recording speeds, the default buffer size
is too small. DSP_BUFFSIZE must be 64k or less.
A rule of thumb is 64k for PAS16, 32k for PAS+, 16k for SB Pro and
......@@ -97,7 +97,7 @@
#define SND_DEV_DSP16 5 /* Like /dev/dsp but 16 bits/sample */
#define SND_DEV_STATUS 6 /* /dev/sndstat */
#define SND_DEV_AWFM 7 /* Reserved */
#define SND_DEV_SEQ2 8 /* /dev/sequecer, level 2 interface */
#define SND_DEV_SEQ2 8 /* /dev/sequencer, level 2 interface */
#define SND_DEV_SNDPROC 9 /* /dev/sndproc for programmable devices */
#define SND_DEV_PSS SND_DEV_SNDPROC
......@@ -127,8 +127,8 @@ struct address_info {
char *name;
int driver_use_1; /* Driver defined field 1 */
int driver_use_2; /* Driver defined field 2 */
int *osp; /* OS spesific info */
int card_subtype; /* Driver spesific. Usually 0 */
int *osp; /* OS specific info */
int card_subtype; /* Driver specific. Usually 0 */
};
#define SYNTH_MAX_VOICES 32
......
......@@ -98,7 +98,7 @@ sound_open (inode_handle * inode, file_handle * file)
if (!soundcard_configured && dev != SND_DEV_CTL && dev != SND_DEV_STATUS)
{
printk ("SoundCard Error: The soundcard system has not been configured\n");
printk ("Sound Card Error: The soundcard system has not been configured\n");
return -(ENXIO);
}
......@@ -734,7 +734,7 @@ sound_free_dmap (int dev, struct dma_buffparms *dmap)
}
int
soud_map_buffer (int dev, struct dma_buffparms *dmap, buffmem_desc * info)
sound_map_buffer (int dev, struct dma_buffparms *dmap, buffmem_desc * info)
{
printk ("Entered sound_map_buffer()\n");
printk ("Exited sound_map_buffer()\n");
......
/*
* sound/sscape.c
*
* Low level driver for Ensoniq Soundscape
* Low level driver for Ensoniq SoundScape
*/
/*
* Copyright (C) by Hannu Savolainen 1993-1996
......@@ -304,10 +304,10 @@ sscapeintr (int irq, void *dev_id, struct pt_regs *dummy)
printk ("SSCAPE: Host interrupt, data=%02x\n", host_read (devc));
}
#if defined(CONFIG_UART401) && defined(CONFIG_MIDI)
#if defined(CONFIG_MPU401) && defined(CONFIG_MIDI)
if (bits & 0x01)
{
uart401intr (irq, NULL, NULL);
mpuintr (irq, NULL, NULL);
if (debug++ > 10) /* Temporary debugging hack */
{
sscape_write (devc, GA_INTENA_REG, 0x00); /* Disable all interrupts */
......@@ -436,8 +436,10 @@ sscape_download_boot (struct sscape_info *devc, unsigned char *block, int size,
save_flags (flags);
cli ();
codec_dma_bits = sscape_read (devc, GA_CDCFG_REG);
#if 0
sscape_write (devc, GA_CDCFG_REG,
codec_dma_bits & ~0x08); /* Disable codec DMA */
#endif
if (devc->dma_allocated == 0)
{
......@@ -716,10 +718,10 @@ attach_sscape (struct address_info *hw_config)
if (old_hardware)
{
valid_interrupts = valid_interrupts_old;
conf_printf ("Ensoniq Soundscape (old)", hw_config);
conf_printf ("Ensoniq SoundScape (old)", hw_config);
}
else
conf_printf ("Ensoniq Soundscape", hw_config);
conf_printf ("Ensoniq SoundScape", hw_config);
for (i = 0; i < sizeof (valid_interrupts); i++)
if (hw_config->irq == valid_interrupts[i])
......@@ -785,17 +787,17 @@ attach_sscape (struct address_info *hw_config)
}
#endif
#if defined(CONFIG_MIDI) && defined(CONFIG_UART401)
if (probe_uart401 (hw_config))
#if defined(CONFIG_MIDI) && defined(CONFIG_MPU401)
if (probe_mpu401 (hw_config))
hw_config->always_detect = 1;
{
int prev_devs;
prev_devs = num_midis;
hw_config->name = "Soundscape";
hw_config->name = "SoundScape";
hw_config->irq *= -1; /* Negative value signals IRQ sharing */
attach_uart401 (hw_config);
attach_mpu401 (hw_config);
hw_config->irq *= -1; /* Restore it */
if (num_midis == (prev_devs + 1)) /* The MPU driver installed itself */
......@@ -824,7 +826,7 @@ probe_sscape (struct address_info *hw_config)
/*
* First check that the address register of "ODIE" is
* there and that it has exactly 4 writeable bits.
* there and that it has exactly 4 writable bits.
* First 4 bits
*/
if ((save = inb (PORT (ODIE_ADDR))) & 0xf0)
......@@ -938,7 +940,7 @@ attach_ss_ms_sound (struct address_info *hw_config)
sscape_write (devc, GA_DMACFG_REG, 0x50);
/*
* Take the gate-arry off of the DMA channel.
* Take the gate-array off of the DMA channel.
*/
sscape_write (devc, GA_DMAB_REG, 0x20);
......@@ -988,8 +990,8 @@ attach_ss_ms_sound (struct address_info *hw_config)
void
unload_sscape (struct address_info *hw_config)
{
#if defined(CONFIG_UART401) && defined(CONFIG_MIDI)
unload_uart401 (hw_config);
#if defined(CONFIG_MPU401) && defined(CONFIG_MIDI)
unload_mpu401 (hw_config);
#endif
snd_release_irq (hw_config->irq);
}
......
......@@ -90,7 +90,7 @@ trix_set_wss_port (struct address_info *hw_config)
if (kilroy_was_here) /* Already initialized */
return 0;
if (trix_read (0x15) != 0x71) /* No asic signature */
if (trix_read (0x15) != 0x71) /* No ASIC signature */
{
DDB (printk ("No AudioTrix ASIC signature found\n"));
return 0;
......
......@@ -57,7 +57,7 @@ typedef struct {
#define __FD_ZERO(fdsetp) \
__asm__ __volatile__("cld ; rep ; stosl" \
:"=m" (*(__kernel_fd_set *) (fdsetp)) \
:"a" (0), "c" (__FDSET_INTS), \
:"a" (0), "c" (__FDSET_LONGS), \
"D" ((__kernel_fd_set *) (fdsetp)) :"cx","di")
#endif
......@@ -125,6 +125,7 @@ enum scsi_directory_inos {
PROC_SCSI_SEAGATE,
PROC_SCSI_T128,
PROC_SCSI_NCR53C7xx,
PROC_SCSI_NCR53C8XX,
PROC_SCSI_ULTRASTOR,
PROC_SCSI_7000FASST,
PROC_SCSI_EATA2X,
......
......@@ -1863,7 +1863,7 @@ int tcp_rcv(struct sk_buff *skb, struct device *dev, struct options *opt,
* handle them locally, due to transparent proxying.
* Thus, narrow down the test to what is really meant.
*/
if(th->rst || !th->syn || th->ack || (r = ip_chk_addr(daddr) == IS_BROADCAST || r == IS_MULTICAST))
if(th->rst || !th->syn || th->ack || (r = ip_chk_addr(daddr)) == IS_BROADCAST || r == IS_MULTICAST)
#else
if(th->rst || !th->syn || th->ack || ip_chk_addr(daddr)!=IS_MYADDR)
#endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment