projects/linux·commit 8f0cb147

Merge master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa

8f0cb147 · Linus Torvalds <[email protected]> · 2005-11-07 08:09:02 -08:00

Commit
8f0cb147b2fb12427bf6abef7fed2b604557a41e
Parents
8e33ba49 · b00e8443

Merge commit. Changes below are compared with the first parent: 8e33ba49.

Changes

165 files changed · +3682 −3019

FileStatusAddDelContent
Documentation/sound/alsa/ALSA-Configuration.txtmodified+20−9View file
Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmplmodified+15−41View file
drivers/char/rtc.cmodified+38−27View file
include/sound/ac97_codec.hmodified+0−10View file
include/sound/core.hmodified+14−80View file
include/sound/driver.hmodified+0−17View file
include/sound/emu10k1.hmodified+2−1View file
include/sound/minors.hmodified+3−5View file
include/sound/pcm.hmodified+1−2View file
include/sound/timer.hmodified+1−0View file
include/sound/version.hmodified+2−2View file
sound/Kconfigmodified+8−0View file
sound/core/Kconfigmodified+0−6View file
sound/core/Makefilemodified+1−2View file
sound/core/control.cmodified+9−9View file
sound/core/hwdep.cmodified+3−7View file
sound/core/info.cmodified+0−2View file
sound/core/init.cmodified+4−3View file
sound/core/memory.cmodified+2−214View file
sound/core/misc.cmodified+6−8View file
sound/core/oss/mixer_oss.cmodified+43−19View file
sound/core/oss/pcm_oss.cmodified+17−3View file
sound/core/pcm.cmodified+2−1View file
sound/core/pcm_lib.cmodified+2−3View file
sound/core/pcm_native.cmodified+6−12View file
sound/core/rawmidi.cmodified+4−8View file
sound/core/rtctimer.cmodified+7−17View file
sound/core/seq/seq_instr.cmodified+4−8View file
sound/core/seq/seq_lock.cmodified+1−2View file
sound/core/seq/seq_memory.cmodified+1−2View file
sound/core/seq/seq_midi.cmodified+0−2View file
sound/core/seq/seq_timer.cmodified+21−8View file
sound/core/sound.cmodified+3−21View file
sound/core/timer.cmodified+222−158View file
sound/core/wrappers.cdeleted+0−50View before deletion
sound/drivers/mpu401/mpu401_uart.cmodified+1−4View file
sound/drivers/mtpav.cmodified+1−4View file
sound/drivers/opl3/opl3_lib.cmodified+2−8View file
sound/drivers/opl4/opl4_lib.cmodified+2−8View file
sound/drivers/serial-u16550.cmodified+1−4View file
sound/drivers/vx/vx_pcm.cmodified+2−2View file
sound/i2c/cs8427.cmodified+8−9View file
sound/i2c/other/ak4114.cmodified+3−3View file
sound/i2c/other/ak4117.cmodified+4−4View file
sound/i2c/tea6330t.cmodified+1−1View file
sound/isa/ad1816a/ad1816a_lib.cmodified+1−4View file
sound/isa/ad1848/ad1848_lib.cmodified+11−16View file
sound/isa/cs423x/cs4231_lib.cmodified+2−8View file
sound/isa/cs423x/cs4236.cmodified+2−6View file
sound/isa/cs423x/cs4236_lib.cmodified+4−1View file
sound/isa/es1688/es1688_lib.cmodified+1−2View file
sound/isa/es18xx.cmodified+22−27View file
sound/isa/gus/gus_dma.cmodified+1−1View file
sound/isa/gus/gus_io.cmodified+47−47View file
sound/isa/gus/gus_main.cmodified+8−17View file
sound/isa/gus/gus_mem.cmodified+1−1View file
sound/isa/gus/gus_pcm.cmodified+2−3View file
sound/isa/gus/gus_reset.cmodified+2−2View file
sound/isa/gus/gus_simple.cmodified+1−1View file
sound/isa/gus/gus_uart.cmodified+2−2View file
sound/isa/gus/gus_volume.cmodified+3−3View file
sound/isa/gus/interwave.cmodified+3−6View file
sound/isa/opl3sa2.cmodified+1−4View file
sound/isa/opti9xx/opti92x-ad1848.cmodified+7−18View file
sound/isa/sb/emu8000.cmodified+6−18View file
sound/isa/sb/emu8000_patch.cmodified+1−2View file
sound/isa/sb/emu8000_pcm.cmodified+1−2View file
sound/isa/sb/emu8000_synth.cmodified+1−1View file
sound/isa/sb/sb16.cmodified+1−4View file
sound/isa/sb/sb16_main.cmodified+4−4View file
sound/isa/sb/sb8.cmodified+1−4View file
sound/isa/sb/sb8_main.cmodified+0−3View file
sound/isa/sb/sb_common.cmodified+5−7View file
sound/isa/sb/sb_mixer.cmodified+2−2View file
sound/isa/sscape.cmodified+4−19View file
sound/isa/wavefront/wavefront.cmodified+1−4View file
sound/isa/wavefront/wavefront_synth.cmodified+2−4View file
sound/mips/au1x00.cmodified+5−8View file
sound/pci/Kconfigmodified+1−8View file
sound/pci/ac97/ac97_codec.cmodified+9−47View file
sound/pci/ac97/ac97_patch.cmodified+52−28View file
sound/pci/ac97/ac97_pcm.cmodified+9−0View file
sound/pci/ad1889.cmodified+2−3View file
sound/pci/ali5451/ali5451.cmodified+41−51View file
sound/pci/als4000.cmodified+3−5View file
sound/pci/atiixp.cmodified+20−30View file
sound/pci/atiixp_modem.cmodified+14−23View file
sound/pci/au88x0/au8810.hmodified+0−5View file
sound/pci/au88x0/au8820.hmodified+0−5View file
sound/pci/au88x0/au8830.hmodified+0−5View file
sound/pci/au88x0/au88x0.cmodified+1−1View file
sound/pci/au88x0/au88x0.hmodified+8−0View file
sound/pci/au88x0/au88x0_a3d.cmodified+1−1View file
sound/pci/au88x0/au88x0_core.cmodified+6−4View file
sound/pci/au88x0/au88x0_eq.cmodified+1−1View file
sound/pci/au88x0/au88x0_synth.cmodified+4−4View file
sound/pci/azt3328.cmodified+667−338View file
sound/pci/azt3328.hmodified+72−63View file
sound/pci/ca0106/Makefilemodified+1−1View file
sound/pci/ca0106/ca0106.hmodified+23−4View file
sound/pci/ca0106/ca0106_main.cmodified+116−7View file
sound/pci/ca0106/ca_midi.cadded+306−0View file
sound/pci/ca0106/ca_midi.hadded+69−0View file
sound/pci/cmipci.cmodified+71−55View file
sound/pci/cs4281.cmodified+2−4View file
sound/pci/cs46xx/cs46xx_lib.cmodified+20−23View file
sound/pci/emu10k1/emu10k1.cmodified+1−1View file
sound/pci/emu10k1/emu10k1_callback.cmodified+2−2View file
sound/pci/emu10k1/emu10k1x.cmodified+2−4View file
sound/pci/emu10k1/emufx.cmodified+44−15View file
sound/pci/emu10k1/emupcm.cmodified+2−1View file
sound/pci/emu10k1/irq.cmodified+1−1View file
sound/pci/emu10k1/memory.cmodified+3−3View file
sound/pci/emu10k1/p16v.cmodified+1−1View file
sound/pci/ens1370.cmodified+8−9View file
sound/pci/es1938.cmodified+25−13View file
sound/pci/es1968.cmodified+10−12View file
sound/pci/fm801.cmodified+11−14View file
sound/pci/hda/hda_codec.cmodified+52−0View file
sound/pci/hda/hda_codec.hmodified+2−0View file
sound/pci/hda/hda_intel.cmodified+40−32View file
sound/pci/hda/hda_local.hmodified+22−0View file
sound/pci/hda/hda_proc.cmodified+5−0View file
sound/pci/hda/patch_analog.cmodified+101−32View file
sound/pci/hda/patch_realtek.cmodified+178−96View file
sound/pci/hda/patch_si3054.cmodified+1−1View file
sound/pci/ice1712/aureon.cmodified+3−3View file
sound/pci/ice1712/delta.cmodified+1−1View file
sound/pci/ice1712/ews.cmodified+3−3View file
sound/pci/ice1712/ice1712.cmodified+5−5View file
sound/pci/ice1712/ice1724.cmodified+30−13View file
sound/pci/ice1712/pontis.cmodified+1−2View file
sound/pci/ice1712/revo.cmodified+0−13View file
sound/pci/ice1712/vt1720_mobo.cmodified+18−2View file
sound/pci/intel8x0.cmodified+86−74View file
sound/pci/intel8x0m.cmodified+23−32View file
sound/pci/maestro3.cmodified+9−12View file
sound/pci/mixart/mixart.cmodified+1−2View file
sound/pci/nm256/nm256.cmodified+75−70View file
sound/pci/rme32.cmodified+2−2View file
sound/pci/rme96.cmodified+2−2View file
sound/pci/rme9652/hdsp.cmodified+217−371View file
sound/pci/rme9652/hdspm.cmodified+1−2View file
sound/pci/rme9652/rme9652.cmodified+3−3View file
sound/pci/sonicvibes.cmodified+9−15View file
sound/pci/trident/trident_main.cmodified+9−9View file
sound/pci/trident/trident_memory.cmodified+2−2View file
sound/pci/via82xx.cmodified+254−121View file
sound/pci/via82xx_modem.cmodified+20−29View file
sound/pci/ymfpci/ymfpci.cmodified+5−13View file
sound/pci/ymfpci/ymfpci_main.cmodified+36−39View file
sound/pcmcia/pdaudiocf/pdaudiocf_pcm.cmodified+3−3View file
sound/ppc/beep.cmodified+0−2View file
sound/ppc/pmac.cmodified+10−6View file
sound/sparc/dbri.cmodified+1−4View file
sound/synth/emux/emux_synth.cmodified+0−1View file
sound/usb/usbaudio.cmodified+75−69View file
sound/usb/usbaudio.hmodified+0−8View file
sound/usb/usbmidi.cmodified+46−52View file
sound/usb/usbmixer.cmodified+1−1View file
sound/usb/usbquirks.hmodified+39−1View file
sound/usb/usx2y/usX2Yhwdep.cmodified+5−5View file
sound/usb/usx2y/usbusx2y.cmodified+2−3View file
sound/usb/usx2y/usbusx2yaudio.cmodified+11−12View file
sound/usb/usx2y/usx2yhwdeppcm.cmodified+2−2View file

Only the first 600 diff lines are shown. Download the complete patch.

Documentation/sound/alsa/ALSA-Configuration.txt

View file
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt
index 13cba95..2f27f39 100644
--- a/Documentation/sound/alsa/ALSA-Configuration.txt
+++ b/Documentation/sound/alsa/ALSA-Configuration.txt
@@ -167,7 +167,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
spdif - Support SPDIF I/O
- Default: disabled
- Module supports autoprobe and multiple chips (max 8).
+ This module supports one chip and autoprobe.
The power-management is supported.
@@ -206,7 +206,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
See "AC97 Quirk Option" section below.
spdif_aclink - S/PDIF transfer over AC-link (default = 1)
- This module supports up to 8 cards and autoprobe.
+ This module supports one card and autoprobe.
ATI IXP has two different methods to control SPDIF output. One is
over AC-link and another is over the "direct" SPDIF output. The
@@ -218,7 +218,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
Module for ATI IXP 150/200/250 AC97 modem controllers.
- Module supports up to 8 cards.
+ This module supports one card and autoprobe.
Note: The default index value of this module is -2, i.e. the first
slot is excluded.
@@ -637,7 +637,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
model - force the model name
position_fix - Fix DMA pointer (0 = auto, 1 = none, 2 = POSBUF, 3 = FIFO size)
- Module supports up to 8 cards.
+ This module supports one card and autoprobe.
Each codec may have a model table for different configurations.
If your machine isn't listed there, the default (usually minimal)
@@ -663,6 +663,10 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
adjusted. Appearing only when compiled with
$CONFIG_SND_DEBUG=y
+ ALC260
+ hp HP machines
+ fujitsu Fujitsu S7020
+
CMI9880
minimal 3-jack in back
min_fp 3-jack in back, 2-jack in front
@@ -811,7 +815,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
semaphores (e.g. on some ASUS laptops)
(default off)
- Module supports autoprobe and multiple bus-master chips (max 8).
+ This module supports one chip and autoprobe.
Note: the latest driver supports auto-detection of chip clock.
if you still encounter too fast playback, specify the clock
@@ -830,7 +834,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
ac97_clock - AC'97 codec clock base (0 = auto-detect)
- This module supports up to 8 cards and autoprobe.
+ This module supports one card and autoprobe.
Note: The default index value of this module is -2, i.e. the first
slot is excluded.
@@ -950,8 +954,10 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
use_cache - 0 or 1 (disabled by default)
vaio_hack - alias buffer_top=0x25a800
reset_workaround - enable AC97 RESET workaround for some laptops
+ reset_workaround2 - enable extended AC97 RESET workaround for some
+ other laptops
- Module supports autoprobe and multiple chips (max 8).
+ This module supports one chip and autoprobe.
The power-management is supported.
@@ -980,6 +986,11 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
workaround is enabled automatically. For other laptops with a
hard freeze, you can try reset_workaround=1 option.
+ Note: Dell Latitude CSx laptops have another problem regarding
+ AC97 RESET. On these laptops, reset_workaround2 option is
+ turned on as default. This option is worth to try if the
+ previous reset_workaround option doesn't help.
+
Note: This driver is really crappy. It's a porting from the
OSS driver, which is a result of black-magic reverse engineering.
The detection of codec will fail if the driver is loaded *after*
@@ -1310,7 +1321,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
ac97_quirk - AC'97 workaround for strange hardware
See "AC97 Quirk Option" section below.
- Module supports autoprobe and multiple bus-master chips (max 8).
+ This module supports one chip and autoprobe.
Note: on some SMP motherboards like MSI 694D the interrupts might
not be generated properly. In such a case, please try to
@@ -1352,7 +1363,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
ac97_clock - AC'97 codec clock base (default 48000Hz)
- Module supports up to 8 cards.
+ This module supports one card and autoprobe.
Note: The default index value of this module is -2, i.e. the first
slot is excluded.

Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl

View file
diff --git a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
index 24e8552..260334c 100644
--- a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
+++ b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
@@ -18,8 +18,8 @@
</affiliation>
</author>
- <date>March 6, 2005</date>
- <edition>0.3.4</edition>
+ <date>October 6, 2005</date>
+ <edition>0.3.5</edition>
<abstract>
<para>
@@ -30,7 +30,7 @@
<legalnotice>
<para>
- Copyright (c) 2002-2004 Takashi Iwai <email>[email protected]</email>
+ Copyright (c) 2002-2005 Takashi Iwai <email>[email protected]</email>
</para>
<para>
@@ -1433,25 +1433,10 @@
<informalexample>
<programlisting>
<![CDATA[
- if (chip->res_port) {
- release_resource(chip->res_port);
- kfree_nocheck(chip->res_port);
- }
+ release_and_free_resource(chip->res_port);
]]>
</programlisting>
</informalexample>
-
- As you can see, the resource pointer is also to be freed
- via <function>kfree_nocheck()</function> after
- <function>release_resource()</function> is called. You
- cannot use <function>kfree()</function> here, because on ALSA,
- <function>kfree()</function> may be a wrapper to its own
- allocator with the memory debugging. Since the resource pointer
- is allocated externally outside the ALSA, it must be released
- via the native
- <function>kfree()</function>.
- <function>kfree_nocheck()</function> is used for that; it calls
- the native <function>kfree()</function> without wrapper.
</para>
<para>
@@ -2190,8 +2175,7 @@ struct _snd_pcm_runtime {
unsigned int rate_den;
/* -- SW params -- */
- int tstamp_timespec; /* use timeval (0) or timespec (1) */
- snd_pcm_tstamp_t tstamp_mode; /* mmap timestamp is updated */
+ struct timespec tstamp_mode; /* mmap timestamp is updated */
unsigned int period_step;
unsigned int sleep_min; /* min ticks to sleep */
snd_pcm_uframes_t xfer_align; /* xfer size need to be a multiple */
@@ -3709,8 +3693,7 @@ struct _snd_pcm_runtime {
<para>
Here, the chip instance is retrieved via
<function>snd_kcontrol_chip()</function> macro. This macro
- converts from kcontrol-&gt;private_data to the type defined by
- <type>chip_t</type>. The
+ just accesses to kcontrol-&gt;private_data. The
kcontrol-&gt;private_data field is
given as the argument of <function>snd_ctl_new()</function>
(see the later subsection
@@ -5998,32 +5981,23 @@ struct _snd_pcm_runtime {
The first argument is the expression to evaluate, and the
second argument is the action if it fails. When
<constant>CONFIG_SND_DEBUG</constant>, is set, it will show an
- error message such as <computeroutput>BUG? (xxx) (called from
- yyy)</computeroutput>. When no debug flag is set, this is
- ignored.
+ error message such as <computeroutput>BUG? (xxx)</computeroutput>
+ together with stack trace.
</para>
- </section>
-
- <section id="useful-functions-snd-runtime-check">
- <title><function>snd_runtime_check()</function></title>
<para>
- This macro is quite similar with
- <function>snd_assert()</function>. Unlike
- <function>snd_assert()</function>, the expression is always
- evaluated regardless of
- <constant>CONFIG_SND_DEBUG</constant>. When
- <constant>CONFIG_SND_DEBUG</constant> is set, the macro will
- show a message like <computeroutput>ERROR (xx) (called from
- yyy)</computeroutput>.
+ When no debug flag is set, this macro is ignored.
</para>
</section>
<section id="useful-functions-snd-bug">
<title><function>snd_BUG()</function></title>
<para>
- It calls <function>snd_assert(0,)</function> -- that is, just
- prints the error message at the point. It's useful to show that
- a fatal error happens there.
+ It shows <computeroutput>BUG?</computeroutput> message and
+ stack trace as well as <function>snd_assert</function> at the point.
+ It's useful to show that a fatal error happens there.
+ </para>
+ <para>
+ When no debug flag is set, this macro is ignored.
</para>
</section>
</chapter>

drivers/char/rtc.c

View file
diff --git a/drivers/char/rtc.c b/drivers/char/rtc.c
index 63fff7c..a7f099f 100644
--- a/drivers/char/rtc.c
+++ b/drivers/char/rtc.c
@@ -149,8 +149,22 @@ static void get_rtc_alm_time (struct rtc_time *alm_tm);
#ifdef RTC_IRQ
static void rtc_dropped_irq(unsigned long data);
-static void set_rtc_irq_bit(unsigned char bit);
-static void mask_rtc_irq_bit(unsigned char bit);
+static void set_rtc_irq_bit_locked(unsigned char bit);
+static void mask_rtc_irq_bit_locked(unsigned char bit);
+
+static inline void set_rtc_irq_bit(unsigned char bit)
+{
+ spin_lock_irq(&rtc_lock);
+ set_rtc_irq_bit_locked(bit);
+ spin_unlock_irq(&rtc_lock);
+}
+
+static void mask_rtc_irq_bit(unsigned char bit)
+{
+ spin_lock_irq(&rtc_lock);
+ mask_rtc_irq_bit_locked(bit);
+ spin_unlock_irq(&rtc_lock);
+}
#endif
static int rtc_proc_open(struct inode *inode, struct file *file);
@@ -401,18 +415,19 @@ static int rtc_do_ioctl(unsigned int cmd, unsigned long arg, int kernel)
}
case RTC_PIE_OFF: /* Mask periodic int. enab. bit */
{
- mask_rtc_irq_bit(RTC_PIE);
+ unsigned long flags; /* can be called from isr via rtc_control() */
+ spin_lock_irqsave (&rtc_lock, flags);
+ mask_rtc_irq_bit_locked(RTC_PIE);
if (rtc_status & RTC_TIMER_ON) {
- spin_lock_irq (&rtc_lock);
rtc_status &= ~RTC_TIMER_ON;
del_timer(&rtc_irq_timer);
- spin_unlock_irq (&rtc_lock);
}
+ spin_unlock_irqrestore (&rtc_lock, flags);
return 0;
}
case RTC_PIE_ON: /* Allow periodic ints */
{
-
+ unsigned long flags; /* can be called from isr via rtc_control() */
/*
* We don't really want Joe User enabling more
* than 64Hz of interrupts on a multi-user machine.
@@ -421,14 +436,14 @@ static int rtc_do_ioctl(unsigned int cmd, unsigned long arg, int kernel)
(!capable(CAP_SYS_RESOURCE)))
return -EACCES;
+ spin_lock_irqsave (&rtc_lock, flags);
if (!(rtc_status & RTC_TIMER_ON)) {
- spin_lock_irq (&rtc_lock);
rtc_irq_timer.expires = jiffies + HZ/rtc_freq + 2*HZ/100;
add_timer(&rtc_irq_timer);
rtc_status |= RTC_TIMER_ON;
- spin_unlock_irq (&rtc_lock);
}
- set_rtc_irq_bit(RTC_PIE);
+ set_rtc_irq_bit_locked(RTC_PIE);
+ spin_unlock_irqrestore (&rtc_lock, flags);
return 0;
}
case RTC_UIE_OFF: /* Mask ints from RTC updates. */
@@ -609,6 +624,7 @@ static int rtc_do_ioctl(unsigned int cmd, unsigned long arg, int kernel)
{
int tmp = 0;
unsigned char val;
+ unsigned long flags; /* can be called from isr via rtc_control() */
/*
* The max we can do is 8192Hz.
@@ -631,9 +647,9 @@ static int rtc_do_ioctl(unsigned int cmd, unsigned long arg, int kernel)
if (arg != (1<<tmp))
return -EINVAL;
- spin_lock_irq(&rtc_lock);
+ spin_lock_irqsave(&rtc_lock, flags);
if (hpet_set_periodic_freq(arg)) {
- spin_unlock_irq(&rtc_lock);
+ spin_unlock_irqrestore(&rtc_lock, flags);
return 0;
}
rtc_freq = arg;
@@ -641,7 +657,7 @@ static int rtc_do_ioctl(unsigned int cmd, unsigned long arg, int kernel)
val = CMOS_READ(RTC_FREQ_SELECT) & 0xf0;
val |= (16 - tmp);
CMOS_WRITE(val, RTC_FREQ_SELECT);
- spin_unlock_irq(&rtc_lock);
+ spin_unlock_irqrestore(&rtc_lock, flags);
return 0;
}
#endif
@@ -844,12 +860,15 @@ int rtc_control(rtc_task_t *task, unsigned int cmd, unsigned long arg)
#ifndef RTC_IRQ
return -EIO;
#else
- spin_lock_irq(&rtc_task_lock);
+ unsigned long flags;
+ if (cmd != RTC_PIE_ON && cmd != RTC_PIE_OFF && cmd != RTC_IRQP_SET)
+ return -EINVAL;
+ spin_lock_irqsave(&rtc_task_lock, flags);
if (rtc_callback != task) {
- spin_unlock_irq(&rtc_task_lock);
+ spin_unlock_irqrestore(&rtc_task_lock, flags);
return -ENXIO;
}
- spin_unlock_irq(&rtc_task_lock);
+ spin_unlock_irqrestore(&rtc_task_lock, flags);
return rtc_do_ioctl(cmd, arg, 1);
#endif
}
@@ -1306,40 +1325,32 @@ static void get_rtc_alm_time(struct rtc_time *alm_tm)
* meddles with the interrupt enable/disable bits.
*/
-static void mask_rtc_irq_bit(unsigned char bit)
+static void mask_rtc_irq_bit_locked(unsigned char bit)
{
unsigned char val;
- spin_lock_irq(&rtc_lock);
- if (hpet_mask_rtc_irq_bit(bit)) {
- spin_unlock_irq(&rtc_lock);
+ if (hpet_mask_rtc_irq_bit(bit))
return;
- }
val = CMOS_READ(RTC_CONTROL);
val &= ~bit;
CMOS_WRITE(val, RTC_CONTROL);
CMOS_READ(RTC_INTR_FLAGS);
rtc_irq_data = 0;
- spin_unlock_irq(&rtc_lock);
}
-static void set_rtc_irq_bit(unsigned char bit)
+static void set_rtc_irq_bit_locked(unsigned char bit)
{
unsigned char val;
- spin_lock_irq(&rtc_lock);
- if (hpet_set_rtc_irq_bit(bit)) {
- spin_unlock_irq(&rtc_lock);
+ if (hpet_set_rtc_irq_bit(bit))
return;
- }
val = CMOS_READ(RTC_CONTROL);
val |= bit;
CMOS_WRITE(val, RTC_CONTROL);
CMOS_READ(RTC_INTR_FLAGS);
rtc_irq_data = 0;
- spin_unlock_irq(&rtc_lock);
}
#endif

include/sound/ac97_codec.h

View file
diff --git a/include/sound/ac97_codec.h b/include/sound/ac97_codec.h
index d11f348..7f0ca79 100644
--- a/include/sound/ac97_codec.h
+++ b/include/sound/ac97_codec.h
@@ -387,15 +387,6 @@
#define AC97_RATES_MIC_ADC 4
#define AC97_RATES_SPDIF 5
-/* shared controllers */
-enum {
- AC97_SHARED_TYPE_NONE,
- AC97_SHARED_TYPE_ICH,
- AC97_SHARED_TYPE_ATIIXP,
- AC97_SHARED_TYPE_VIA,
- AC97_SHARED_TYPES
-};
-
/*
*
*/
@@ -468,7 +459,6 @@ struct _snd_ac97_bus {
unsigned short used_slots[2][4]; /* actually used PCM slots */
unsigned short pcms_count; /* count of PCMs */
struct ac97_pcm *pcms;
- unsigned int shared_type; /* type of shared controller betwen audio and modem */
ac97_t *codec[4];
snd_info_entry_t *proc;
};

include/sound/core.h

View file
diff --git a/include/sound/core.h b/include/sound/core.h
index 6d971a4..2be65ad 100644
--- a/include/sound/core.h
+++ b/include/sound/core.h
@@ -29,7 +29,6 @@
#include <linux/pm.h> /* pm_message_t */
/* Typedef's */
-typedef struct timespec snd_timestamp_t;
typedef struct sndrv_interval snd_interval_t;
typedef enum sndrv_card_type snd_card_type;
typedef struct sndrv_xferi snd_xferi_t;
@@ -256,6 +255,7 @@ typedef struct _snd_minor snd_minor_t;
/* sound.c */
+extern int snd_major;
extern int snd_ecards_limit;
void snd_request_card(int card);
@@ -285,39 +285,6 @@ int snd_oss_init_module(void);
/* memory.c */
-#ifdef CONFIG_SND_DEBUG_MEMORY
-void snd_memory_init(void);
-void snd_memory_done(void);
-int snd_memory_info_init(void);
-int snd_memory_info_done(void);
-void *snd_hidden_kmalloc(size_t size, gfp_t flags);
-void *snd_hidden_kzalloc(size_t size, gfp_t flags);
-void *snd_hidden_kcalloc(size_t n, size_t size, gfp_t flags);
-void snd_hidden_kfree(const void *obj);
-void *snd_hidden_vmalloc(unsigned long size);
-void snd_hidden_vfree(void *obj);
-char *snd_hidden_kstrdup(const char *s, gfp_t flags);
-#define kmalloc(size, flags) snd_hidden_kmalloc(size, flags)
-#define kzalloc(size, flags) snd_hidden_kzalloc(size, flags)
-#define kcalloc(n, size, flags) snd_hidden_kcalloc(n, size, flags)
-#define kfree(obj) snd_hidden_kfree(obj)
-#define vmalloc(size) snd_hidden_vmalloc(size)
-#define vfree(obj) snd_hidden_vfree(obj)
-#define kmalloc_nocheck(size, flags) snd_wrapper_kmalloc(size, flags)
-#define vmalloc_nocheck(size) snd_wrapper_vmalloc(size)
-#define kfree_nocheck(obj) snd_wrapper_kfree(obj)
-#define vfree_nocheck(obj) snd_wrapper_vfree(obj)
-#define kstrdup(s, flags) snd_hidden_kstrdup(s, flags)
-#else
-#define snd_memory_init() /*NOP*/
-#define snd_memory_done() /*NOP*/
-#define snd_memory_info_init() /*NOP*/
-#define snd_memory_info_done() /*NOP*/
-#define kmalloc_nocheck(size, flags) kmalloc(size, flags)
-#define vmalloc_nocheck(size) vmalloc(size)
-#define kfree_nocheck(obj) kfree(obj)
-#define vfree_nocheck(obj) vfree(obj)
-#endif
int copy_to_user_fromio(void __user *dst, const volatile void __iomem *src, size_t count);
int copy_from_user_toio(volatile void __iomem *dst, const void __user *src, size_t count);
@@ -373,8 +340,9 @@ unsigned int snd_dma_pointer(unsigned long dma, unsigned int size);
#endif
/* misc.c */
+struct resource;
+void release_and_free_resource(struct resource *res);
-int snd_task_name(struct task_struct *task, char *name, size_t size);
#ifdef CONFIG_SND_VERBOSE_PRINTK
void snd_verbose_printk(const char *file, int line, const char *format, ...)
__attribute__ ((format (printf, 3, 4)));
@@ -429,34 +397,24 @@ void snd_verbose_printd(const char *file, int line, const char *format, ...)
* When CONFIG_SND_DEBUG is not set, the expression is executed but
* not checked.
*/
-#define snd_assert(expr, args...) do {\
- if (unlikely(!(expr))) { \
- snd_printk(KERN_ERR "BUG? (%s) (called from %p)\n", __ASTRING__(expr), __builtin_return_address(0));\
- args;\
- }\
+#define snd_assert(expr, args...) do { \
+ if (unlikely(!(expr))) { \
+ snd_printk(KERN_ERR "BUG? (%s)\n", __ASTRING__(expr)); \
+ dump_stack(); \
+ args; \
+ } \
} while (0)
-/**
- * snd_runtime_check - run-time assertion macro
- * @expr: expression
- * @args...: the action
- *
- * This macro checks the expression in run-time and invokes the commands
- * given in the rest arguments if the assertion is failed.
- * Unlike snd_assert(), the action commands are executed even if
- * CONFIG_SND_DEBUG is not set but without any error messages.
- */
-#define snd_runtime_check(expr, args...) do {\
- if (unlikely(!(expr))) { \
- snd_printk(KERN_ERR "ERROR (%s) (called from %p)\n", __ASTRING__(expr), __builtin_return_address(0));\
- args;\
- }\
+
+#define snd_BUG() do { \
+ snd_printk(KERN_ERR "BUG?\n"); \
+ dump_stack(); \
} while (0)
#else /* !CONFIG_SND_DEBUG */
#define snd_printd(fmt, args...) /* nothing */
#define snd_assert(expr, args...) (void)(expr)
-#define snd_runtime_check(expr, args...) do { if (!(expr)) { args; } } while (0)
+#define snd_BUG() /* nothing */
#endif /* CONFIG_SND_DEBUG */
@@ -473,30 +431,6 @@ void snd_verbose_printd(const char *file, int line, const char *format, ...)
#define snd_printdd(format, args...) /* nothing */
#endif
-#define snd_BUG() snd_assert(0, )
-
-
-static inline void snd_timestamp_now(struct timespec *tstamp, int timespec)
-{
- struct timeval val;
- /* FIXME: use a linear time source */
- do_gettimeofday(&val);
- tstamp->tv_sec = val.tv_sec;
- tstamp->tv_nsec = val.tv_usec;
- if (timespec)
- tstamp->tv_nsec *= 1000L;
-}
-
-static inline void snd_timestamp_zero(struct timespec *tstamp)
-{
- tstamp->tv_sec = 0;
- tstamp->tv_nsec = 0;
-}
-
-static inline int snd_timestamp_null(struct timespec *tstamp)
-{
- return tstamp->tv_sec == 0 && tstamp->tv_nsec == 0;
-}
#define SNDRV_OSS_VERSION ((3<<16)|(8<<8)|(1<<4)|(0)) /* 3.8.1a */

include/sound/driver.h

View file
diff --git a/include/sound/driver.h b/include/sound/driver.h
index 1ec2fae..3f0416a 100644
--- a/include/sound/driver.h
+++ b/include/sound/driver.h
@@ -44,21 +44,4 @@
#include <linux/module.h>
-/*
- * ==========================================================================
- */
-
-#ifdef CONFIG_SND_DEBUG_MEMORY
-#include <linux/slab.h>
-#include <linux/vmalloc.h>
-void *snd_wrapper_kmalloc(size_t, gfp_t);
-#undef kmalloc
-void snd_wrapper_kfree(const void *);
-#undef kfree
-void *snd_wrapper_vmalloc(size_t);
-#undef vmalloc
-void snd_wrapper_vfree(void *);
-#undef vfree
-#endif
-
#endif /* __SOUND_DRIVER_H */

include/sound/emu10k1.h

View file
diff --git a/include/sound/emu10k1.h b/include/sound/emu10k1.h
index 46e3c0b..8411c7e 100644
--- a/include/sound/emu10k1.h
+++ b/include/sound/emu10k1.h
@@ -48,7 +48,8 @@
/* FIXME? - according to the OSS driver the EMU10K1 needs a 29 bit DMA mask */
#define EMU10K1_DMA_MASK 0x7fffffffUL /* 31bit */
-#define AUDIGY_DMA_MASK 0xffffffffUL /* 32bit */
+#define AUDIGY_DMA_MASK 0x7fffffffUL /* 31bit FIXME - 32 should work? */

This diff is incomplete. Download the complete patch.

include/sound/minors.h

View file

This diff is incomplete. Download the complete patch.

include/sound/pcm.h

View file

This diff is incomplete. Download the complete patch.

include/sound/timer.h

View file

This diff is incomplete. Download the complete patch.

include/sound/version.h

View file

This diff is incomplete. Download the complete patch.

sound/Kconfig

View file

This diff is incomplete. Download the complete patch.

sound/core/Kconfig

View file

This diff is incomplete. Download the complete patch.

sound/core/Makefile

View file

This diff is incomplete. Download the complete patch.

sound/core/control.c

View file

This diff is incomplete. Download the complete patch.

sound/core/hwdep.c

View file

This diff is incomplete. Download the complete patch.

sound/core/info.c

View file

This diff is incomplete. Download the complete patch.

sound/core/init.c

View file

This diff is incomplete. Download the complete patch.

sound/core/memory.c

View file

This diff is incomplete. Download the complete patch.

sound/core/misc.c

View file

This diff is incomplete. Download the complete patch.

sound/core/oss/mixer_oss.c

View file

This diff is incomplete. Download the complete patch.

sound/core/oss/pcm_oss.c

View file

This diff is incomplete. Download the complete patch.

sound/core/pcm.c

View file

This diff is incomplete. Download the complete patch.

sound/core/pcm_lib.c

View file

This diff is incomplete. Download the complete patch.

sound/core/pcm_native.c

View file

This diff is incomplete. Download the complete patch.

sound/core/rawmidi.c

View file

This diff is incomplete. Download the complete patch.

sound/core/rtctimer.c

View file

This diff is incomplete. Download the complete patch.

sound/core/seq/seq_instr.c

View file

This diff is incomplete. Download the complete patch.

sound/core/seq/seq_lock.c

View file

This diff is incomplete. Download the complete patch.

sound/core/seq/seq_memory.c

View file

This diff is incomplete. Download the complete patch.

sound/core/seq/seq_midi.c

View file

This diff is incomplete. Download the complete patch.

sound/core/seq/seq_timer.c

View file

This diff is incomplete. Download the complete patch.

sound/core/sound.c

View file

This diff is incomplete. Download the complete patch.

sound/core/timer.c

View file

This diff is incomplete. Download the complete patch.

sound/core/wrappers.c

View before deletion

This diff is incomplete. Download the complete patch.

sound/drivers/mpu401/mpu401_uart.c

View file

This diff is incomplete. Download the complete patch.

sound/drivers/mtpav.c

View file

This diff is incomplete. Download the complete patch.

sound/drivers/opl3/opl3_lib.c

View file

This diff is incomplete. Download the complete patch.

sound/drivers/opl4/opl4_lib.c

View file

This diff is incomplete. Download the complete patch.

sound/drivers/serial-u16550.c

View file

This diff is incomplete. Download the complete patch.

sound/drivers/vx/vx_pcm.c

View file

This diff is incomplete. Download the complete patch.

sound/i2c/cs8427.c

View file

This diff is incomplete. Download the complete patch.

sound/i2c/other/ak4114.c

View file

This diff is incomplete. Download the complete patch.

sound/i2c/other/ak4117.c

View file

This diff is incomplete. Download the complete patch.

sound/i2c/tea6330t.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/ad1816a/ad1816a_lib.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/ad1848/ad1848_lib.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/cs423x/cs4231_lib.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/cs423x/cs4236.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/cs423x/cs4236_lib.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/es1688/es1688_lib.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/es18xx.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/gus/gus_dma.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/gus/gus_io.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/gus/gus_main.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/gus/gus_mem.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/gus/gus_pcm.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/gus/gus_reset.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/gus/gus_simple.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/gus/gus_uart.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/gus/gus_volume.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/gus/interwave.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/opl3sa2.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/opti9xx/opti92x-ad1848.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/sb/emu8000.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/sb/emu8000_patch.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/sb/emu8000_pcm.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/sb/emu8000_synth.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/sb/sb16.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/sb/sb16_main.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/sb/sb8.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/sb/sb8_main.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/sb/sb_common.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/sb/sb_mixer.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/sscape.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/wavefront/wavefront.c

View file

This diff is incomplete. Download the complete patch.

sound/isa/wavefront/wavefront_synth.c

View file

This diff is incomplete. Download the complete patch.

sound/mips/au1x00.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/Kconfig

View file

This diff is incomplete. Download the complete patch.

sound/pci/ac97/ac97_codec.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/ac97/ac97_patch.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/ac97/ac97_pcm.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/ad1889.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/ali5451/ali5451.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/als4000.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/atiixp.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/atiixp_modem.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/au88x0/au8810.h

View file

This diff is incomplete. Download the complete patch.

sound/pci/au88x0/au8820.h

View file

This diff is incomplete. Download the complete patch.

sound/pci/au88x0/au8830.h

View file

This diff is incomplete. Download the complete patch.

sound/pci/au88x0/au88x0.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/au88x0/au88x0.h

View file

This diff is incomplete. Download the complete patch.

sound/pci/au88x0/au88x0_a3d.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/au88x0/au88x0_core.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/au88x0/au88x0_eq.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/au88x0/au88x0_synth.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/azt3328.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/azt3328.h

View file

This diff is incomplete. Download the complete patch.

sound/pci/ca0106/Makefile

View file

This diff is incomplete. Download the complete patch.

sound/pci/ca0106/ca0106.h

View file

This diff is incomplete. Download the complete patch.

sound/pci/ca0106/ca0106_main.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/ca0106/ca_midi.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/ca0106/ca_midi.h

View file

This diff is incomplete. Download the complete patch.

sound/pci/cmipci.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/cs4281.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/cs46xx/cs46xx_lib.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/emu10k1/emu10k1.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/emu10k1/emu10k1_callback.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/emu10k1/emu10k1x.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/emu10k1/emufx.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/emu10k1/emupcm.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/emu10k1/irq.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/emu10k1/memory.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/emu10k1/p16v.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/ens1370.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/es1938.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/es1968.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/fm801.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/hda/hda_codec.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/hda/hda_codec.h

View file

This diff is incomplete. Download the complete patch.

sound/pci/hda/hda_intel.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/hda/hda_local.h

View file

This diff is incomplete. Download the complete patch.

sound/pci/hda/hda_proc.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/hda/patch_analog.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/hda/patch_realtek.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/hda/patch_si3054.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/ice1712/aureon.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/ice1712/delta.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/ice1712/ews.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/ice1712/ice1712.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/ice1712/ice1724.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/ice1712/pontis.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/ice1712/revo.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/ice1712/vt1720_mobo.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/intel8x0.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/intel8x0m.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/maestro3.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/mixart/mixart.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/nm256/nm256.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/rme32.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/rme96.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/rme9652/hdsp.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/rme9652/hdspm.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/rme9652/rme9652.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/sonicvibes.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/trident/trident_main.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/trident/trident_memory.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/via82xx.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/via82xx_modem.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/ymfpci/ymfpci.c

View file

This diff is incomplete. Download the complete patch.

sound/pci/ymfpci/ymfpci_main.c

View file

This diff is incomplete. Download the complete patch.

sound/pcmcia/pdaudiocf/pdaudiocf_pcm.c

View file

This diff is incomplete. Download the complete patch.

sound/ppc/beep.c

View file

This diff is incomplete. Download the complete patch.

sound/ppc/pmac.c

View file

This diff is incomplete. Download the complete patch.

sound/sparc/dbri.c

View file

This diff is incomplete. Download the complete patch.

sound/synth/emux/emux_synth.c

View file

This diff is incomplete. Download the complete patch.

sound/usb/usbaudio.c

View file

This diff is incomplete. Download the complete patch.

sound/usb/usbaudio.h

View file

This diff is incomplete. Download the complete patch.

sound/usb/usbmidi.c

View file

This diff is incomplete. Download the complete patch.

sound/usb/usbmixer.c

View file

This diff is incomplete. Download the complete patch.

sound/usb/usbquirks.h

View file

This diff is incomplete. Download the complete patch.

sound/usb/usx2y/usX2Yhwdep.c

View file

This diff is incomplete. Download the complete patch.

sound/usb/usx2y/usbusx2y.c

View file

This diff is incomplete. Download the complete patch.

sound/usb/usx2y/usbusx2yaudio.c

View file

This diff is incomplete. Download the complete patch.

sound/usb/usx2y/usx2yhwdeppcm.c

View file

This diff is incomplete. Download the complete patch.