Merge branch 'topic/oss-fix' into for-linus

This commit is contained in:
Takashi Iwai 2009-03-24 00:36:16 +01:00
commit 9fb5430c3d
7 changed files with 12 additions and 38 deletions

View File

@ -1,23 +0,0 @@
To configure the Crystal CS423x sound chip and activate its DSP functions,
modules may be loaded in this order:
modprobe sound
insmod ad1848
insmod uart401
insmod cs4232 io=* irq=* dma=* dma2=*
This is the meaning of the parameters:
io--I/O address of the Windows Sound System (normally 0x534)
irq--IRQ of this device
dma and dma2--DMA channels (DMA2 may be 0)
On some cards, the board attempts to do non-PnP setup, and fails. If you
have problems, use Linux' PnP facilities.
To get MIDI facilities add
insmod opl3 io=*
where "io" is the I/O address of the OPL3 synthesizer. This will be shown
in /proc/sys/pnp and is normally 0x388.

View File

@ -80,7 +80,7 @@ Notes:
additional features. additional features.
2. The commercial OSS driver may be obtained from the site: 2. The commercial OSS driver may be obtained from the site:
http://www/opensound.com. This may be used for cards that http://www.opensound.com. This may be used for cards that
are unsupported by the kernel driver, or may be used are unsupported by the kernel driver, or may be used
by other operating systems. by other operating systems.

View File

@ -280,7 +280,7 @@ static void wait_for_calibration(ad1848_info * devc)
while (timeout > 0 && (ad_read(devc, 11) & 0x20)) while (timeout > 0 && (ad_read(devc, 11) & 0x20))
timeout--; timeout--;
if (ad_read(devc, 11) & 0x20) if (ad_read(devc, 11) & 0x20)
if ( (devc->model != MD_1845) || (devc->model != MD_1845_SSCAPE)) if ((devc->model != MD_1845) && (devc->model != MD_1845_SSCAPE))
printk(KERN_WARNING "ad1848: Auto calibration timed out(3).\n"); printk(KERN_WARNING "ad1848: Auto calibration timed out(3).\n");
} }
@ -2107,7 +2107,7 @@ int ad1848_control(int cmd, int arg)
switch (cmd) switch (cmd)
{ {
case AD1848_SET_XTAL: /* Change clock frequency of AD1845 (only ) */ case AD1848_SET_XTAL: /* Change clock frequency of AD1845 (only ) */
if (devc->model != MD_1845 || devc->model != MD_1845_SSCAPE) if (devc->model != MD_1845 && devc->model != MD_1845_SSCAPE)
return -EINVAL; return -EINVAL;
spin_lock_irqsave(&devc->lock,flags); spin_lock_irqsave(&devc->lock,flags);
ad_enter_MCE(devc); ad_enter_MCE(devc);

View File

@ -439,7 +439,7 @@ int DMAbuf_sync(int dev)
DMAbuf_launch_output(dev, dmap); DMAbuf_launch_output(dev, dmap);
adev->dmap_out->flags |= DMA_SYNCING; adev->dmap_out->flags |= DMA_SYNCING;
adev->dmap_out->underrun_count = 0; adev->dmap_out->underrun_count = 0;
while (!signal_pending(current) && n++ <= adev->dmap_out->nbufs && while (!signal_pending(current) && n++ < adev->dmap_out->nbufs &&
adev->dmap_out->qlen && adev->dmap_out->underrun_count == 0) { adev->dmap_out->qlen && adev->dmap_out->underrun_count == 0) {
long t = dmabuf_timeout(dmap); long t = dmabuf_timeout(dmap);
spin_unlock_irqrestore(&dmap->lock,flags); spin_unlock_irqrestore(&dmap->lock,flags);

View File

@ -156,9 +156,7 @@ static int __init config_pas_hw(struct address_info *hw_config)
* 0x80 * 0x80
*/ , 0xB88); */ , 0xB88);
pas_write(0x80 pas_write(0x80 | (joystick ? 0x40 : 0), 0xF388);
| joystick?0x40:0
,0xF388);
if (pas_irq < 0 || pas_irq > 15) if (pas_irq < 0 || pas_irq > 15)
{ {

View File

@ -457,10 +457,9 @@ static void pss_mixer_reset(pss_confdata *devc)
} }
} }
static int set_volume_mono(unsigned __user *p, int *aleft) static int set_volume_mono(unsigned __user *p, unsigned int *aleft)
{ {
int left; unsigned int left, volume;
unsigned volume;
if (get_user(volume, p)) if (get_user(volume, p))
return -EFAULT; return -EFAULT;
@ -471,10 +470,11 @@ static int set_volume_mono(unsigned __user *p, int *aleft)
return 0; return 0;
} }
static int set_volume_stereo(unsigned __user *p, int *aleft, int *aright) static int set_volume_stereo(unsigned __user *p,
unsigned int *aleft,
unsigned int *aright)
{ {
int left, right; unsigned int left, right, volume;
unsigned volume;
if (get_user(volume, p)) if (get_user(volume, p))
return -EFAULT; return -EFAULT;

View File

@ -212,7 +212,6 @@ int sequencer_write(int dev, struct file *file, const char __user *buf, int coun
{ {
unsigned char event_rec[EV_SZ], ev_code; unsigned char event_rec[EV_SZ], ev_code;
int p = 0, c, ev_size; int p = 0, c, ev_size;
int err;
int mode = translate_mode(file); int mode = translate_mode(file);
dev = dev >> 4; dev = dev >> 4;
@ -285,7 +284,7 @@ int sequencer_write(int dev, struct file *file, const char __user *buf, int coun
{ {
if (!midi_opened[event_rec[2]]) if (!midi_opened[event_rec[2]])
{ {
int mode; int err, mode;
int dev = event_rec[2]; int dev = event_rec[2];
if (dev >= max_mididev || midi_devs[dev]==NULL) if (dev >= max_mididev || midi_devs[dev]==NULL)