提交 9fb5430c 编写于 作者: T Takashi Iwai

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

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.
......@@ -80,7 +80,7 @@ Notes:
additional features.
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
by other operating systems.
......
......@@ -280,7 +280,7 @@ static void wait_for_calibration(ad1848_info * devc)
while (timeout > 0 && (ad_read(devc, 11) & 0x20))
timeout--;
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");
}
......@@ -2107,7 +2107,7 @@ int ad1848_control(int cmd, int arg)
switch (cmd)
{
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;
spin_lock_irqsave(&devc->lock,flags);
ad_enter_MCE(devc);
......
......@@ -439,7 +439,7 @@ int DMAbuf_sync(int dev)
DMAbuf_launch_output(dev, dmap);
adev->dmap_out->flags |= DMA_SYNCING;
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) {
long t = dmabuf_timeout(dmap);
spin_unlock_irqrestore(&dmap->lock,flags);
......
......@@ -156,9 +156,7 @@ static int __init config_pas_hw(struct address_info *hw_config)
* 0x80
*/ , 0xB88);
pas_write(0x80
| joystick?0x40:0
,0xF388);
pas_write(0x80 | (joystick ? 0x40 : 0), 0xF388);
if (pas_irq < 0 || pas_irq > 15)
{
......
......@@ -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 volume;
unsigned int left, volume;
if (get_user(volume, p))
return -EFAULT;
......@@ -471,10 +470,11 @@ static int set_volume_mono(unsigned __user *p, int *aleft)
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 volume;
unsigned int left, right, volume;
if (get_user(volume, p))
return -EFAULT;
......
......@@ -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;
int p = 0, c, ev_size;
int err;
int mode = translate_mode(file);
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]])
{
int mode;
int err, mode;
int dev = event_rec[2];
if (dev >= max_mididev || midi_devs[dev]==NULL)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册