CS4236+ driver
Background: The card/chipset supports an external MIDI interrupt. By
default, this interrupt isn't used (because the isapnp mechanism chooses a
configuration without an assigned interrupt). If the user wishes to
explicitly select an interrupt via the mpu_irq parameter for such a
configured device, it doesn't work: The driver always shows:
isapnp MPU: port=0x330, irq=-1
(note the 'irq=-1')
Problem: The driver only allows to set the irq if pnp_irq_valid returns
true for this particular pnp device. This, however, is only true if an
interrupt has already been assigned (pnp_valid_irq returns true if the flag
IORESOURCE_IRQ is set and IORESOURCE_UNSET is not set). If no interrupt
has been assigned so far, IORESOURCE_UNSET is set and pnp_irq_valid returns
false, thereby inhibiting the selection of a valid irq.
Solution: Don't check for a valid (= already assigned) irq at the point of
calling pnp_resource_change.
Tested successfully on Linux 2.6.11.
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
ALSA<-OSS emulation
The problem was negative/wrong result (info.bytes) in a specific condition at
playback startup.
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
ALSA<-OSS emulation
The problem was negative result (info.bytes) in a specific condition at
playback startup.
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Documentation,Memalloc module,RME HDSP driver,RME9652 driver
Add the write support to snd-page-alloc proc file for buffer pre-allocation.
Removed the pre-allocation codes via module options.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Timer Midlevel,ALSA sequencer,ALSA<-OSS sequencer,Digigram VX core
I2C tea6330t,GUS Library,VIA82xx driver,VIA82xx-modem driver
CA0106 driver,CS46xx driver,EMU10K1/EMU10K2 driver,YMFPCI driver
Digigram VX Pocket driver,Common EMU synth,USB generic driver,USB USX2Y
Checking a pointer for NULL before calling kfree() on it is redundant,
kfree() deals with NULL pointers just fine.
This patch removes such checks from sound/
This patch also makes another, but closely related, change.
It avoids casting pointers about to be kfree()'ed.
Signed-off-by: Jesper Juhl <juhl-lkml@dif.dk>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Intel8x0 driver
To avoid confusion, the structure members vendor/device were renamed
to subvendor/subdevice, because we compare them with PCI subsystem vendor
and subsystem device.
Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
AC97 Codec,ATIIXP driver,VIA82xx driver
To avoid confusion, the structure members vendor/device were renamed
to subvendor/subdevice, because we compare them with PCI subsystem vendor
and subsystem device.
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
ALI5451 driver
This patch adds modem support for ali5451. Since it is same pci device
all is done in ali5451.c.
Signed-off-by: Sasha Khapyorsky <sashak@smlink.com>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
CA0106 driver
Use the DMA_32BIT_MASK constant from dma-mapping.h
when calling pci_set_dma_mask() or pci_set_consistent_dma_mask()
See http://marc.theaimsgroup.com/?t=108001993000001&r=1&w=2 for details
Signed-off-by: Tobias Klauser <tklauser@nuerscht.ch>
Signed-off-by: Domen Puncer <domen@coderock.org>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
AC97 Codec
Simple MC97 modem mixer with two common controls: Off-hook and CID,
and Si3056 MC specific control: Modem Speaker.
Signed-off-by: Sasha Khapyorsky <sashak@smlink.com>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
rme96xx busmaster_malloc miscalculates and fails to set PageReserved on any
page of char *buf; but busmaster_free does it right, so do the same (I
don't have the card, just noticed this while sifting for rmap BUGs).
Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Without this patch, some usb kobjects, which are parents to the usx2y's
kobjects can be freed before the usx2y's. This led to an oops in
get_kobj_path_length() and a dead keyboard, when the usx2y's kobjects
were freed. The patch ensures the correct sequence. Tested ok on
kernel 2.6.12-rc2.
Present in ALSA cvs
Signed-off-by: Karsten Wiese <annabellesgarden@yahoo.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Chris Wright <chrisw@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Without this patch, some usb kobjects, which are parents to the usx2y's
kobjects can be freed before the usx2y's. This led to an oops in
get_kobj_path_length() and a dead keyboard, when the usx2y's kobjects
were freed. The patch ensures the correct sequence. Tested ok on
kernel 2.6.12-rc2.
Present in ALSA cvs
Signed-off-by: Karsten Wiese <annabellesgarden@yahoo.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Chris Wright <chrisw@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Documentation,ICE1724 driver
Add the support of Chaintech AV-710 to ice1724 driver.
The patch includes the WM-codec initialization fix by
Jaanus Kivistik <jaanus@no.spam.ee>.
Since both AV-710 and AMP Audio2000 have the same SSID, initialize
WM codecs as default for both devices. In case it breaks Audio2000,
you can pass 'model=amp2000' option to avoid WM codec initialization.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
ALSA<-OSS emulation
Added bytes variable and do not use the frames argument as a temporaly
storage for the byte counter.
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
ALSA<-OSS emulation
This reverts the last patch which wrongly mixes bytes and frames.
The real culprit might be the 32-bit overflow, so the return expression uses
64-bit values now in snd_pcm_oss_bytes().
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
ALSA<-OSS emulation
This patch changes snd_pcm_oss_bytes() by adding a local variable
for the frames -> bytes conversion, which means that the frame count
is no longer corrupted by this conversion.
Signed-off-by: Roger Mach <bigmach@us.ibm.com>
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
HDA Codec driver
Fixed the capture on some ALC880 devices.
The node 0x07 is sometimes invalid as an ADC. Also, the intialization
of ADC nodes are fixed on some models.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Sound Core
Added (minimal) comments for in Kconfig, so that
configurators can choose this entry explicitly.
A more descriptive comment by someone else is appreciated...
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Documentation,ICE1712 driver
Updated the documentation for ice1712 and ice1724 drivers.
Added the device description for shuttle SN25P missing in the last patch.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
CA0106 driver
This fixes a bug whereby when the snd-ca0106 module first loads,
alsamixer says 'SPDIF Out [Off]' but no analog sound comes from the speakers.
This covers any bug reports that said things like
'mixer fails to remember analog output on, when the system is rebooted.'
Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
Maestro3 driver
Add a hardware volume quirk list to the maestro3 driver. Details were
taken from the Windows driver. Hardware volume control is enabled only for
the systems in the list.
Signed-off-by: Ville Syrjala <syrjala@sci.fi>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
PCM Midlevel,ALSA Core,Timer Midlevel,ALSA sequencer,Virtual Midi
This patch contains the following possible cleanups:
- make needlessly global code static
- #if 0 the following unused global functions
- remove the following unneeded EXPORT_SYMBOL's
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
PPC PMAC driver
The g5 support code broke some earlier models unfortunately as those
bail out early from the detect function, before the point where I added
the code to locate the PCI device for use with DMA allocations.
This patch fixes it.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
PCM Midlevel
Export snd_pcm_format_size(). This function is used by some out-of-kernel
drivers.
Make snd_pcm_format_cpu_endian() macro for optimization.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
USB generic driver
When a device does not provide the bRefresh field in its audio endpoint
descriptors, use the bInterval field instead.
Furthermore, increase the number of sync URBs for better queueing.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
USB generic driver
Many Roland USB MIDI devices have two interfaces that are currently not
used by the driver; claim them anyway.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Timer Midlevel,ALSA Core
Change values of some timer ioctls to avoid confliction with FIO* ioctls.
The protocol version is increased to indicate this change.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
HDA Codec driver
Suppressing the error message regarding no AFG.
This is often harmless (e.g. probing a modem codec).
Signed-off-by: Takashi Iwai <tiwai@suse.de>
CA0106 driver,HDA Codec driver
This patch makes needlessly global code static.
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
USB generic driver
When a USB packet boundary falls exactly on a buffer boundary, hwptr
remains at the end of the buffer which causes an overflow in the next
iteration and triggers double buffering although the next packet would
actually be contiguous.
This patch ensures that hwptr is always smaller than buffer_size.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
USB generic driver
Check that the synchronization feedback frequency values returned by the
device are more or less near the nominal frequency.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Documentation,HDA Intel driver
Added the support of VIA VT8251/VT8237A HD-Audio controllers.
They are (almost) compatible with Intel ICH6/7.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Documentation,HDA Intel driver
This patch changes the Intel HD Audio device driver to include
the support of HD Audio device embedded in ATI south bridge
IXP450. Because the design of ATI chipset follows intel HD Audio
specification 1.0, the programming method is the same as that
of intel HD Audio device exception one minor change which requires
to enable snoop for DMA transport. There are 3 changes that have been
made to hda_intel.c file.
1. Added device ID for ATI HD Audio device;
2. Increase maximum CODEC supported to 4;
3. Enable snoop during the driver initialization.
Signed-off-by: Frederick Li <fli@ati.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
HDA Codec driver
Added 'test' model for testing/debugging the devices with ALC880 codec.
This model is built only when CONFIG_SND_DEBUG is set.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Documentation,HDA Intel driver
Added position_fix module option to HDA-intel driver for fixing up
the DMA position (possibly hardware-) bugs.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Maestro3 driver
Some HP OmniBook laptops (500 and 6000 at least) require some GPIO magic
before the HW volume buttons work. This patch makes them work mostly.
Something is still missing to make them work perfectly. However I have been
unable to figure out what exactly.
Signed-off-by: Ville Syrjala <syrjala@sci.fi>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Maestro3 driver
Due to a typo interrupts were never actually acked or disabled.
Signed-off-by: Ville Syrjala <syrjala@sci.fi>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
ARM,/arm/Makefile,ARM AACI PL041 driver
Add support for the ARM AACI Primecell, which provides an AC'97
based interface. This driver only provides playback support.
This has been extensively tested with an LM4549 AC'97 codec.
Signed-off-by: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
ARM DMA routines
The patch below adds a convenient re-usable shim around the extended
ARM DMA API, and is used by several ARM ALSA drivers.
Signed-off-by: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
EMU10K1/EMU10K2 driver
The following patch adds SB0060 to emu_chip_details.
Signed-off-by: Mikael Magnusson <mikaelmagnusson@glocalnet.net>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
USB generic driver
Bind the device files to the (first) audio control interface instead of
the entire USB device.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
AC97 Codec
The code for AD1980/AD1985/AD1986 codecs forgot to enable the code to
switch the jack sharing bits on AD1888-compatible codecs.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
AC97 Codec
The code for modifying the center/LFE disable bit on AD1888 codecs
accidentally toggled the mute split bit instead.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
USB generic driver
This patch adds a proc file for the SB Audigy 2 NX which shows the
connection status of the various jacks. Unfortunately, no SPDIF input
frequency (yet).
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
USB generic driver
The ioctls for LIRC compatibility can be removed because the
infrastructure and detection stuff is better done in user space.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
USB generic driver
The SB Audigy 2 NX needs a special boot-up command before it works in
high speed mode.
However, we don't actually enable it yet because high speed
synchronization doesn't seem to work with this device.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
CS4281 driver
Reset the FPDN bit of the EPPMC register if needed.
Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
EMU10K1/EMU10K2 driver
e.g. When HD Capture source is set to SPDIF,
setting HD Capture channel to 0 captures from CDROM digital input.
setting HD Capture channel to 1 captures from SPDIF in.
Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
EMU10K1/EMU10K2 driver
The capture rate does in fact vary, but it only captures anything if
the HD Capture source is set to I2S or AC97. I have not tested if the sound
is actually captured from an physical input of some type or not.
TODO: Get SPDIF capture working.
Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
USB generic driver
The SB Audigy 2 NX does not advertise the sample rate attribute in its
endpoint descriptors although it supports it.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
USB generic driver
Adds mixer controls for the CMSS/Dolby Digital/Power LEDs
on the SB Audigy 2 NX.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
USB generic driver
Add ioctls to the Sound Blaster remote control hwdep device so that it
can be used with LIRC.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
USB generic driver
Do not use more than one packet in synchronization feedback URBs because
it would be pointless to send or receive more than one value at the same
time.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
USB generic driver
Add sanity checks when reading the bRefresh value, and actually use it
for the synchronization packets instead of polling at 1000 Hz.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
USB generic driver
Extension units can have type 0, so do not ignore them when constructing
mixer controls.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
USB generic driver
Cache the decoded values of idVendor/idProduct to get rid of most of
those ugly le16_to_cpu() calls.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
ALSA Core,USB generic driver
Add an hwdep interface that supports reading remote control data from
Sound Blaster Extigy and Audigy 2 NX devices.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
USB generic driver
Add support for the optional status interrupt endpoint in audio control
interfaces, and translate USB status notifications into ALSA mixer
control notifications.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
USB generic driver
Move all data related to audio control interfaces into a separate struct
local to usbmixer.c.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
USB generic driver
Unit/terminal IDs are 8-bit integers, so the unitbitmap
variable does not need to be bigger than 256 bits.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
USB generic driver
On the SB Audigy 2 NX, frequency feedback doesn't quite work
when playing at 44.1 kHz, so temporarily disable this frequency.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
AC97 Codec
Add the 'Mic Front Input Switch' control to the mixer for ALC850.
Enabling this input is required for using the front panel microphone
connector with ASUS A8V motherboard.
Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
AC97 Codec
ac97_enum mixer elements (e.g., 'Capture Source') did not work because
of wrong bitmask calculation in snd_ac97_get_enum_double() and
snd_ac97_put_enum_double().
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=1072
Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
USB generic driver,USB USX2Y
This patch removes the superfluous driver parameter from the
disconnect functions.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
USB generic driver
Add a mechanism to specify source names of selector units,
and add such names for the SB Audigy 2 NX.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
USB generic driver
In the streamX proc file, show the exact number of samples per
USB frame as 16.16 hexadecimal floating point value.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
USB generic driver
Add a mixer control map for the SB Audigy 2 NX so
that we get meaningful mixer control names.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
HDA Codec driver
Fix and cleanup of CM9880 automatic PIN configuration.
snd_hda_codec_setup_stream() doesn't do anything when NID is 0.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
USB generic driver,USB USX2Y
Without this patch, some usb kobjects, which are parents to
the usx2y's kobjects can be freed before the usx2y's.
This led to an oops in get_kobj_path_length() and a dead
keyboard, when the usx2y's kobjects were freed.
The patch ensures the correct sequence.
Tested ok on kernel 2.6.12-rc2.
Signed-off-by: Karsten Wiese <annabellesgarden@yahoo.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
EMU10K1/EMU10K2 driver
When building with gcc -W sound/pci/emu10k1/emupcm.c produces this little
warning in 2.6.12-rc2-mm3 :
sound/pci/emu10k1/emupcm.c:265: warning: 'inline' is not at beginning of
declaration
No big deal, but trivial to fix.
Signed-off-by: Jesper Juhl <juhl-lkml@dif.dk>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
HDA generic driver,HDA Codec driver
Add initial SigmaTel codec support for 9200 and 922x. Note that
this hda patch relies on the configuration default registers to
be set correctly (normally by BIOS/firmware) in order for it to
set up pin widgets properly. There's a test switch in the patch
so it will work with the SigmaTel reference boards that are usually
plugged into a system that doesn't set the configuration default
registers. It supports 2 channel analog out and line/mic in. I
plan to add >2 channel support and spdif support shortly.
Please apply.
Signed-off-by: Matt <matt@embeddedalley.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
HDA Codec driver,HDA generic driver
Fix some vref defines so they are valid for the different bits in
the pin cap and pin control registers. Please apply.
Signed-off-by: Matt <matt@embeddedalley.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
AC97 Codec
The handling of shared surround/clfe output jacks with line/mic-in
on some AC97 codecs is improved.
Instead of 'Line-In As Surround' or 'Mic As Center/LFE' switch, two
new enum controls are introduced: 'Channel Mode' and 'Surround Jack Mode'.
The formar changes the current output mode among 2, 4 and 6-channels.
The latter controls whether the jacks are shared or independent.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
ALSA<-OSS emulation
Fix the noisy capture on some hardwares over OSS emulation.
Change back to avail_min = period_size for capture direction.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
PCM Midlevel,CA0106 driver,EMU10K1/EMU10K2 driver
Fix by Guillaume Chazarain <guichaz@yahoo.fr>:
Some tunables in /proc have a write() function, but as their
permission does not reflect it, it can be confusing to the user.
So here is a patch that corrects the mode of those files. Note that I
have only tested the 'xrun_debug' entry.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Documentation,VIA82xx driver
Add support for full sample rate conversion capabilities of DXS
channels present in VIA VT8233/5/7 controllers:
- any sample rate in the 8000 ... 48000 Hz range is supported even if
the AC'97 codec supports only 48000 Hz output;
- different DXS channels can use different sample rates at the same
time (the controller performs required sample rate conversion and
mixing in hardware).
Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
FM801 driver
The Gallant Odyssey Sound 4 card is based on the ForteMedia FM801
chip, but has a different PCI ID.
Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
YMFPCI driver
This patch removes some dead code found by the Coverity checker.
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
ICE1712 driver
Provides preliminary support for the Terratec Phase 28 card.
Not extensively tested and probably buggy, but it seems to work.
Signed-off-by: Simone Zinanni <simone@develer.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
EMU10K1/EMU10K2 driver
Although we can set 44100 as the output rate, the SPDIF can do it, but the Analog output cannot.
The SPDIF has the bug, whereby the Left channel arrives one sample late, so although we don't do any resampling,
it is not good for AC3 non-audio output.
Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
HDA Codec driver
Patch by C.L. Tien <cltien@cmedia.com.tw>:
The patch makes cm9880 to choose multi-channel jacks automatically.
1. I found the current code has basic_init, which already includes
necessary controls for 6-stack initialization, so I don't need
another model.
2. I add a new model 'auto' to let the driver find a. if there are
option real panel/front panel, b. the jacks to be used for multichannel.
Because the jack color are based on MS's channel sequence, so the 'auto'
model will pick the same jacks for multichannel MS uses. I did this to
hope to minimize users questions. These code can also be applied to other
codecs but I don't have any to test.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
ALSA sequencer
The last change to reduce stack usage did not adjust the parameter to
SNDRV_SEQ_IOCTL_SET_CLIENT_IOCTL which resulted in passing the address
of the pointer instead of the structure.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>