mirror of
https://github.com/joel16/android_kernel_sony_msm8994_rework.git
synced 2024-12-28 23:35:17 +00:00
Merge branch 'topic/oss-fix' into for-linus
This commit is contained in:
commit
9fb5430c3d
@ -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.
|
|
@ -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.
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
@ -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)
|
||||||
{
|
{
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user