pandora-kernel.git
13 years agoALSA: ctxfi - Fix microphone boost codes/comments
Przemyslaw Bruski [Sun, 13 Mar 2011 15:18:55 +0000 (16:18 +0100)]
ALSA: ctxfi - Fix microphone boost codes/comments

microphone boost was set at +12dB, not +20dB (like in Windows driver
and in adc_conf structure declaration), some comments added.

Signed-off-by: Przemyslaw Bruski <pbruskispam@op.pl>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: atiixp - Fix wrong time-out checks during ac-link reset
Takashi Iwai [Fri, 11 Mar 2011 14:45:32 +0000 (15:45 +0100)]
ALSA: atiixp - Fix wrong time-out checks during ac-link reset

The time-out in snd_atiixp_aclink_reset() is wrongly checked, and
it resulted in exiting from the loop at the first iteration.

Reported-by: Amir Shamsuddin <AmirS2+alsa@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: intel8x0m: append 'm' to "r_intel8x0"
Paul Bolle [Fri, 11 Mar 2011 10:41:06 +0000 (11:41 +0100)]
ALSA: intel8x0m: append 'm' to "r_intel8x0"

Appending an 'm' will distinguish it from a similar struct in intel8x0.c

Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: intel8x0m: add 'm' as "suffix" to static functions
Paul Bolle [Fri, 11 Mar 2011 10:37:55 +0000 (11:37 +0100)]
ALSA: intel8x0m: add 'm' as "suffix" to static functions

Adding an 'm' will distinguish them from identical names in intel8x0.c.

Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: intel8x0m: wait a bit before warm reset check
Paul Bolle [Fri, 11 Mar 2011 10:24:52 +0000 (11:24 +0100)]
ALSA: intel8x0m: wait a bit before warm reset check

At every resume a laptop I use prints this message (at KERN_ERR level):
    ALSA sound/pci/intel8x0m.c:904: AC'97 warm reset still in progress? [0x2]

The thing to note here is that 0x2 corresponds to ICH_AC97COLD. Ie, what
seems to be happening is that the register involved indicated a warm
reset for some time (as the ICH_AC97WARM bit was set) but by the time
the warning is printed, and that same register is checked again, that
bit is already cleared and only the ICH_AC97COLD bit is still set.

It turns out a warm reset needs some time to settle, but it is currently
checked right away. The test therefore fails the first time it is done
and schedule_timeout_uninterruptible() will be called. Once we return
from that jiffies is already (far) past end_time on this laptop, so we
exit the loop, print a warning, and exit the function while the warm
reset actually succeeded.

A way to fix this is to call usleep_range() after writing to the
register involved. A handful of tests suggest 500 usecs is a safe value.
(This might punish the "finish cold reset" case, but on this laptop such
a cold reset apparently never happens, so I can't say for sure.)

While we're at it drop the extra single tick from end_time, as it looks
rather silly.

Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: usbaudio: implement USB autosuspend
Oliver Neukum [Fri, 11 Mar 2011 13:51:12 +0000 (14:51 +0100)]
ALSA: usbaudio: implement USB autosuspend

Devices are autosuspended if no pcm nor midi channel is open
Mixer devices may be opened. This way they are active when
in use to play or record sound, but can be suspended while
users have a mixer application running.

[Small clean-ups using static inline by tiwai]

Signed-off-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: usbaudio: fix suspend/resume
Oliver Neukum [Fri, 11 Mar 2011 12:19:43 +0000 (13:19 +0100)]
ALSA: usbaudio: fix suspend/resume

- ESHUTDOWN must be correctly handled
- the optional interrupt endpoint's URB must be stopped and restarted

Signed-off-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoMerge branch 'fix/misc' into topic/misc
Takashi Iwai [Fri, 11 Mar 2011 13:48:09 +0000 (14:48 +0100)]
Merge branch 'fix/misc' into topic/misc

13 years agoALSA: usb-audio - Add "cval->res = 384" quirk for Logitech Webcam C600
Alexey Fisher [Thu, 10 Mar 2011 13:53:39 +0000 (14:53 +0100)]
ALSA: usb-audio - Add "cval->res = 384" quirk for Logitech Webcam C600

One more affected devices: Logitech Webcam C600 (046d:0808)

Volume range before quirk is 6400, after (also real) is 16.

Signed-off-by: Alexey Fisher <bug-track@fisher-privat.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: usb-audio - Add volume range check and warn if it too big
Alexey Fisher [Thu, 10 Mar 2011 13:53:38 +0000 (14:53 +0100)]
ALSA: usb-audio - Add volume range check and warn if it too big

Signed-off-by: Alexey Fisher <bug-track@fisher-privat.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agosound: Use sound_register_*() for additional OSS minor devices
Takashi Iwai [Wed, 9 Mar 2011 16:33:48 +0000 (17:33 +0100)]
sound: Use sound_register_*() for additional OSS minor devices

Since OSS driver creates the device entries for /dev/audio* and
/dev/dspW* by itself without coping with sound_core, it leads to
conflicts with others and let sysfs spewing warnings.

This patch rewrites the registration part of OSS driver to use
the standard method also for additional minor devices.

Reported-by: Steven Rostedt <rostedt@goodmis.org> (with ktest.pl)
Tested-by: Steven Rostedt <rostedt@goodmis.org> (with ktest.pl)
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - Use %zd for size_t argument in error message
Takashi Iwai [Tue, 8 Mar 2011 17:20:46 +0000 (18:20 +0100)]
ALSA: asihpi - Use %zd for size_t argument in error message

Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: control: clean up snd_ctl_hole_check()
Clemens Ladisch [Mon, 7 Mar 2011 12:24:30 +0000 (13:24 +0100)]
ALSA: control: clean up snd_ctl_hole_check()

The return value of snd_ctl_hole_check() is used only to detect whether
to continue the loop in snd_ctl_find_hole() or not, so we can simplify
the code by changing this return type to a boolean.  Also rename this
function to better show what it actually does.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: control: fix numid conflict check for new controls
Clemens Ladisch [Mon, 7 Mar 2011 12:22:50 +0000 (13:22 +0100)]
ALSA: control: fix numid conflict check for new controls

The purpose of the snd_ctl_hole_check() function is to find conflicts
between the numerical IDs of the new control and those of any existing
controls.  However, it would fail to detect an existing control whose
count is smaller than the new control's count and whose interval of IDs
is entirely contained in the interval of the new control's IDs.

To fix this, use the correct formula to detect overlapping intervals,
which happens to simplify the condition.

This problem was not encountered so far because ALSA does not yet allow
drivers to allocate specific control IDs.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: hdspm - Add firmware ID for older AES32 cards.
Adrian Knoth [Mon, 7 Mar 2011 18:10:11 +0000 (19:10 +0100)]
ALSA: hdspm - Add firmware ID for older AES32 cards.

The current AES32 firmware revision ID is 234, however, a user confirmed
that everything works fine with the previous revision, too.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: hdspm - Fix midi port initialization
Adrian Knoth [Mon, 28 Feb 2011 14:14:50 +0000 (15:14 +0100)]
ALSA: hdspm - Fix midi port initialization

Depending on the model and the presence of a TCO module, the number of
midi ports varies. Some have 1 port (MADIface), some have 2 (default),
with TCO, there are 3.

Don't hardcode the number of midi ports to initialize.

This patch also fixes a boot lockup on MADIface.

[Coding-style fixes by tiwai]

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: hdspm - Abort on unknown firmware revision
Adrian Knoth [Mon, 28 Feb 2011 14:14:49 +0000 (15:14 +0100)]
ALSA: hdspm - Abort on unknown firmware revision

Don't continue if we cannot detect the real card type, otherwise, all
subsequent functions, especially strcpy(), would fail, leaving the whole
driver in an unusable state.

Without such a protection, dmesg would look like this:

Pid: 1525, comm: modprobe Not tainted 2.6.38-rc6 #1 MSI MS-7250/MS-7250
EIP: 0060:[<c114e700>] EFLAGS: 00010296 CPU: 1
EIP is at strcpy+0x10/0x30
EAX: f4d33e58 EBX: f5990800 ECX: f4d33e58 EDX: 00000000
ESI: 00000000 EDI: f4d33e58 EBP: f5990930 ESP: f3dd3e0c
DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
f53d4204 00000000 f90bfc03 00000001 00000001 f3dd3e64 c10fedff f3dd3e7c
f3d854e4 f53d4000 c10307b8 00000001 c10307b8 f5990860 c10307b8 00000001
c10332e5 f59908bc c12f4339 f59908bc f5990860 c11ef207 f4d33e00 f53d4000
[<f90bfc03>] ? snd_hdspm_probe+0x7e7/0x1166 [snd_hdspm]
[<c10fedff>] ? __sysfs_add_one+0x1f/0xf0
[<c10307b8>] ? get_parent_ip+0x8/0x20
[<c10307b8>] ? get_parent_ip+0x8/0x20
[<c10307b8>] ? get_parent_ip+0x8/0x20
[<c10332e5>] ? add_preempt_count+0xa5/0xd0
[<c12f4339>] ? _raw_spin_lock_irqsave+0x19/0x40
[<c11ef207>] ? pm_runtime_enable+0x17/0x80
[<c1160172>] ? local_pci_probe+0x42/0xb0
[<c1161091>] ? pci_device_probe+0x61/0x80
[<c11e9587>] ? driver_probe_device+0x77/0x180
[<c11600f0>] ? pci_match_device+0xa0/0xc0
[<c11e9709>] ? __driver_attach+0x79/0x80
[<c11e9690>] ? __driver_attach+0x0/0x80
[<c11e8e32>] ? bus_for_each_dev+0x52/0x80
[<c11e9416>] ? driver_attach+0x16/0x20
[<c11e9690>] ? __driver_attach+0x0/0x80
[<c11e8771>] ? bus_add_driver+0xa1/0x220
[<c1160f20>] ? pci_device_remove+0x0/0xf0
[<c11e99a3>] ? driver_register+0x63/0x120
[<c11612bd>] ? __pci_register_driver+0x3d/0xb0
[<c1001132>] ? do_one_initcall+0x32/0x160
[<f90d6000>] ? alsa_card_hdspm_init+0x0/0x14 [snd_hdspm]
[<c10676a9>] ? sys_init_module+0x99/0x1e0
[<c10ade3d>] ? sys_close+0x6d/0xc0
[<c1002c90>] ? sysenter_do_call+0x12/0x26
---[ end trace 239f0661c558378b ]---

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: hdspm - Add updated firmware revision for AES32
Adrian Knoth [Mon, 28 Feb 2011 14:14:48 +0000 (15:14 +0100)]
ALSA: hdspm - Add updated firmware revision for AES32

In contrast to the PCIe version (RME AES), the PCI version (RME AES32)
has a different firmware revision.

This patch adds the missing PCI revision.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: hdspm - AES32: Use define instead of hardcoded channel count
Adrian Knoth [Mon, 28 Feb 2011 14:14:47 +0000 (15:14 +0100)]
ALSA: hdspm - AES32: Use define instead of hardcoded channel count

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: powermac - Allow input from microphone on Tumbler
Risto Suominen [Mon, 28 Feb 2011 08:38:45 +0000 (10:38 +0200)]
ALSA: powermac - Allow input from microphone on Tumbler

Allow input from microphone on remaining PowerBooks and iBooks with Tumbler.
Tested only with PowerBook G4 Gigabit Ethernet (PowerBook3,3).

[Fixed to use of_machine_is_compatible by tiwai]

Signed-off-by: Risto Suominen <Risto.Suominen@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agosound:core:seq:seq_ports.c Remove one to many n's in a word.
Justin P. Mattock [Sun, 27 Feb 2011 04:34:10 +0000 (20:34 -0800)]
sound:core:seq:seq_ports.c Remove one to many n's in a word.

The Patch below removes one to many "n's" in a word..

Signed-off-by: Justin P. Mattock <justinmattock@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: emu10k1 - emu10k1_main.c remove one to many l's in the word.
Justin P. Mattock [Fri, 25 Feb 2011 06:15:42 +0000 (22:15 -0800)]
ALSA: emu10k1 - emu10k1_main.c remove one to many l's in the word.

The patch below removes an extra "l" in the word.

Signed-off-by: Justin P. Mattock <justinmattock@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: hda - patch_realtek.c remove one to many l's in the word.
Justin P. Mattock [Fri, 25 Feb 2011 06:16:02 +0000 (22:16 -0800)]
ALSA: hda - patch_realtek.c remove one to many l's in the word.

The patch below removes an extra "l" in the word.

Signed-off-by: Justin P. Mattock <justinmattock@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: hdspm - Fix lock/sync reporting on MADI and AES32
Adrian Knoth [Wed, 23 Feb 2011 10:43:15 +0000 (11:43 +0100)]
ALSA: hdspm - Fix lock/sync reporting on MADI and AES32

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: hdspm - prevent reading unitialized stack memory
Adrian Knoth [Wed, 23 Feb 2011 10:43:14 +0000 (11:43 +0100)]
ALSA: hdspm - prevent reading unitialized stack memory

Original patch by Dan Rosenberg <drosenberg@vsecurity.com> under commit
e68d3b316ab7b02a074edc4f770e6a746390cb7d. I'm copying his text here:

The SNDRV_HDSPM_IOCTL_GET_CONFIG_INFO ioctl in hdspm.c allow unprivileged
users to read uninitialized kernel stack memory, because several fields
of the hdspm_config struct declared on the stack are not altered
or zeroed before being copied back to the user.  This patch takes care
of it.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: hdspm - fix sync check on AES32
Adrian Knoth [Wed, 23 Feb 2011 10:43:13 +0000 (11:43 +0100)]
ALSA: hdspm - fix sync check on AES32

Fredrik Lingvall <fredrik.lingvall@gmail.com> has discovered wrong
frequency and sync detection on AES32. According to him, the provided
patch fixes these issues.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: hdspm - Remove input selector on MADIface
Adrian Knoth [Wed, 23 Feb 2011 10:43:12 +0000 (11:43 +0100)]
ALSA: hdspm - Remove input selector on MADIface

In contrast to the RME MADI card, coax/optical selection on the MADIface
is done via a physical switch located at the breakout box. Obviously,
the driver cannot switch ports in software.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: hdspm - Fix DS/QS output channel mappings on RME MADI/MADIface
Adrian Knoth [Wed, 23 Feb 2011 10:43:11 +0000 (11:43 +0100)]
ALSA: hdspm - Fix DS/QS output channel mappings on RME MADI/MADIface

Caused by two typos, no output channel mappings were assigned for
MADI/MADIface at double/quad speed.

The channel mapping is indeed identical to the single speed mapping, the
cards will simply use the first N channels.

Signed-off-by: Florian Faber <faber@faberman.de>
Signed-off-by: Fredrik Lingvall <fredrik.lingvall@gmail.com>
Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: hdspm - Restrict channel count on RME AES/AES32
Adrian Knoth [Wed, 23 Feb 2011 10:43:10 +0000 (11:43 +0100)]
ALSA: hdspm - Restrict channel count on RME AES/AES32

Without calling an appropriate rule, AES/AES32 cards would announce a
theoretical channel count of 64 (HDSPM_MAX_CHANNELS), leading to the
already known bug:

[37422.640481] ------------[ cut here ]------------
[37422.640487] WARNING: at sound/pci/rme9652/hdspm.c:5449
snd_hdspm_ioctl+0x18f/0x202 [snd_hdspm]()
[37422.640489] Hardware name: PRIMERGY RX100 S6
[37422.640490] BUG? (info->channel >= hdspm->max_channels_in)
[37422.640492] Modules linked in: snd_hdspm snd_seq_midi ipmi_watchdog
ipmi_poweroff ipmi_si ipmi_devintf ipmi_msghandler i2c_i801 e1000e
snd_rawmidi power_meter [last unloaded: snd_hdspm]
[37422.640501] Pid: 22231, comm: jackd Tainted: G      D W
2.6.36-gentoo-r5 #5
[37422.640502] Call Trace:
[37422.640508]  [<ffffffff8103db3a>] warn_slowpath_common+0x80/0x98
[37422.640511]  [<ffffffff8103dbe6>] warn_slowpath_fmt+0x41/0x43
[37422.640514]  [<ffffffff81034306>] ? get_parent_ip+0x11/0x42
[37422.640518]  [<ffffffffa0055763>] snd_hdspm_ioctl+0x18f/0x202
[snd_hdspm]
[37422.640522]  [<ffffffff813fd626>] snd_pcm_channel_info+0x73/0x7c
[37422.640525]  [<ffffffff814001e9>] snd_pcm_common_ioctl1+0x326/0xb01
[37422.640527]  [<ffffffff81034306>] ? get_parent_ip+0x11/0x42
[37422.640531]  [<ffffffff8105be6c>] ? __srcu_read_unlock+0x3b/0x59
[37422.640533]  [<ffffffff81400bce>] snd_pcm_capture_ioctl1+0x20a/0x227
[37422.640537]  [<ffffffff811e599c>] ? file_has_perm+0x90/0x9e
[37422.640540]  [<ffffffff81400c15>] snd_pcm_capture_ioctl+0x2a/0x2e
[37422.640543]  [<ffffffff810f2c69>] do_vfs_ioctl+0x404/0x453
[37422.640546]  [<ffffffff810f2d09>] sys_ioctl+0x51/0x74
[37422.640549]  [<ffffffff81002aab>] system_call_fastpath+0x16/0x1b
[37422.640552] ---[ end trace 0cd919cd68118082 ]---

We already have all the right values in place, we simply have to inform
the upper layers about this restriction.

Note that snd_hdspm_hw_rule_rate_out_channels and
snd_hdspm_hw_rule_rate_in_channels must not be called on AES32, because
the channel count is always 16, no matter of the samplerate in use.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: hdspm - Fix buffer handling on RME MADI/MADIface/AES(32)
Adrian Knoth [Wed, 23 Feb 2011 10:43:09 +0000 (11:43 +0100)]
ALSA: hdspm - Fix buffer handling on RME MADI/MADIface/AES(32)

Only RayDAT and AIO provide sane buffer pointers that can be used with
HDSPM_BufferPositionMask, on all other cards, this would result in a
wrong HW pointer leading to xruns and these messages:

[260808.916788] BUG: pcmC0D0p:0, pos = 2976, buffer size = 1024, period size = 512
[260808.961124] BUG: pcmC0D0c:0, pos = 4944, buffer size = 1024, period size = 512

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: hpdsm - RME AES(32): Fix missing channel mappings
Adrian Knoth [Wed, 23 Feb 2011 10:43:08 +0000 (11:43 +0100)]
ALSA: hpdsm - RME AES(32): Fix missing channel mappings

On RME AES and AES(32), none of the required information
(max_channels_in, max_channels_out, channel mappings, port names) was
set, leading to the BUG below.

This patch adds the missing bits, thus fixing the bug.

125.058768] ------------[ cut here ]------------
[  125.058773] WARNING: at sound/pci/rme9652/hdspm.c:5389
snd_hdspm_ioctl+0x10c/0x1d8 [snd_hdspm]()
[  125.058775] Hardware name: PRIMERGY RX100 S6
[  125.058777] BUG? (info->channel >= hdspm->max_channels_out)
[  125.058778] Modules linked in: ipmi_watchdog ipmi_poweroff ipmi_si
ipmi_devintf ipmi_msghandler snd_hdspm power_meter e1000e snd_rawmidi
i2c_i801
[  125.058787] Pid: 3652, comm: audacity Tainted: G        W
2.6.36-gentoo-r5 #5
[  125.058788] Call Trace:
[  125.058792]  [<ffffffff8103db3a>] warn_slowpath_common+0x80/0x98
[  125.058796]  [<ffffffff8103dbe6>] warn_slowpath_fmt+0x41/0x43
[  125.058800]  [<ffffffffa006761a>] snd_hdspm_ioctl+0x10c/0x1d8
[snd_hdspm]
[  125.058803]  [<ffffffff813fd626>] snd_pcm_channel_info+0x73/0x7c
[  125.058806]  [<ffffffff814001e9>] snd_pcm_common_ioctl1+0x326/0xb01
[  125.058809]  [<ffffffff810c604c>] ? __do_fault+0x361/0x3a6
[  125.058812]  [<ffffffff81400e23>] snd_pcm_playback_ioctl1+0x20a/0x227
[  125.058815]  [<ffffffff811e599c>] ? file_has_perm+0x90/0x9e
[  125.058818]  [<ffffffff81400e6a>] snd_pcm_playback_ioctl+0x2a/0x2e
[  125.058821]  [<ffffffff810f2c69>] do_vfs_ioctl+0x404/0x453
[  125.058824]  [<ffffffff810f2d09>] sys_ioctl+0x51/0x74
[  125.058827]  [<ffffffff81002aab>] system_call_fastpath+0x16/0x1b
[  125.058830] ---[ end trace 5bddb08e5d4cbeb1 ]---

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Florian Faber <faber@faberman.de>
Signed-off-by: Fredrik Lingvall <fredrik.lingvall@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: usb-audio: fix oops due to cleanup race when disconnecting
Takashi Iwai [Tue, 22 Feb 2011 09:21:18 +0000 (10:21 +0100)]
ALSA: usb-audio: fix oops due to cleanup race when disconnecting

When a USB audio device is disconnected, snd_usb_audio_disconnect()
kills all audio URBs.  At the same time, the application, after being
notified of the disconnection, might close the device, in which case
ALSA calls the .hw_free callback, which should free the URBs too.

Commit de1b8b93a0ba "[ALSA] Fix hang-up at disconnection of usb-audio"
prevented snd_usb_hw_free() from freeing the URBs to avoid a hang that
resulted from this race, but this introduced another race because the
URB callbacks could now be executed after snd_usb_hw_free() has
returned, and try to access already freed data.

Fix the first race by introducing a mutex to serialize the disconnect
callback and all PCM callbacks that manage URBs (hw_free and hw_params).

Reported-and-tested-by: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
Cc: <stable@kernel.org>
[CL: also serialize hw_params callback]
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: HDA: Fix mic initialization in VIA auto parser
David Henningsson [Mon, 21 Feb 2011 09:23:18 +0000 (10:23 +0100)]
ALSA: HDA: Fix mic initialization in VIA auto parser

This typo caused some microphone inputs not to be correctly
initialized on VIA codecs.

Reported-By: Mark Goldstein <goldstein.mark@gmail.com>
Cc: stable@kernel.org
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: fix one memory leak in sound jack
Lu Guanqun [Mon, 21 Feb 2011 05:45:04 +0000 (13:45 +0800)]
ALSA: fix one memory leak in sound jack

Signed-off-by: Lu Guanqun <guanqun.lu@intel.com>
Reviewed-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA - au88x0 - add Playback Volume to 10 bands Equalizer Controls
Raymond Yau [Sun, 20 Feb 2011 07:55:14 +0000 (15:55 +0800)]
ALSA - au88x0 - add Playback Volume to 10 bands Equalizer Controls

Add " Playback Volume" to 10 bands Equalizer Controls of au88x0 so that
alsa-lib won't regard them as "Capture Volume".

Signed-off-by: Raymond Yau <superquad.vortex2@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: HDA: Do not announce false surround in Conexant auto
David Henningsson [Wed, 16 Feb 2011 20:34:04 +0000 (21:34 +0100)]
ALSA: HDA: Do not announce false surround in Conexant auto

Without this patch, one line-out and one speaker and
Conexant's auto parser would announce (non-working) surround
capabilities.

BugLink: http://bugs.launchpad.net/bugs/721126
Cc: stable@kernel.org
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: HDA: Conexant auto: Handle multiple connections to ADC node
David Henningsson [Tue, 15 Feb 2011 18:57:09 +0000 (19:57 +0100)]
ALSA: HDA: Conexant auto: Handle multiple connections to ADC node

Conexant 20641 has several inputs to its ADC node, with one selector
and individual amps for all inputs. This patch adds support in the
Conexant auto parser to handle that case.

It also means that the pin node's volume is being renamed to "Boost"
to avoid name clash with the new volume controls on the ADC node.

BugLink: http://bugs.launchpad.net/bugs/719524
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: azt3328: hook up new emulated AC97 on AC97 patch side
Andreas Mohr [Fri, 18 Feb 2011 23:49:48 +0000 (00:49 +0100)]
ALSA: azt3328: hook up new emulated AC97 on AC97 patch side

Make newly created AC97 emulation of azt3328 known to the AC97 layer
side.
- relocate common functions to the top (due to definition after use)
- rename control names
- adjust 3D settings to the card's custom layout of this register

Signed-off-by: Andreas Mohr <andi@lisas.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: azt3328: add custom AC97 semi-emulation use standard ALSA AC97 layer
Andreas Mohr [Fri, 18 Feb 2011 23:49:32 +0000 (00:49 +0100)]
ALSA: azt3328: add custom AC97 semi-emulation use standard ALSA AC97 layer

Make use of the very flexible ALSA ac97 layer (hooks for custom I/O!)
on this weird AC97 copycat hardware,
via semi-extended I/O translation/emulation.

Some 5kB binary/loaded size saved (well... additional huge AC97 module
penalty not factored in, of course ;-P).
Given that the driver previously had 20kB that's not bad,
but the much more important thing is to have AC97 layer stress-tested
with a thoroughly weird AC97 copycat (or, simply put, if it were not for
this AC97 test aspect, this effort would merely have been a nut job ;).

Signed-off-by: Andreas Mohr <andi@lisas.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: ac97: replace open-coded, error-prone stuff with AC97 bit defines
Andreas Mohr [Wed, 16 Feb 2011 23:17:53 +0000 (00:17 +0100)]
ALSA: ac97: replace open-coded, error-prone stuff with AC97 bit defines

Use AC97 macros (sometimes already existing, or newly added)
instead of error-prone repetition of open-coded values.

Signed-off-by: Andreas Mohr <andi@lisas.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: HDA: Add position_fix quirk for an Asus device
David Henningsson [Mon, 14 Feb 2011 19:27:44 +0000 (20:27 +0100)]
ALSA: HDA: Add position_fix quirk for an Asus device

The bug reporter claims that position_fix=1 is needed for his
microphone to work. The controller PCI vendor-id is [1002:4383] (rev 40).

Reported-by: Kjell L.
BugLink: http://bugs.launchpad.net/bugs/718402
Cc: stable@kernel.org
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: caiaq - Fix possible string-buffer overflow
Takashi Iwai [Mon, 14 Feb 2011 21:45:59 +0000 (22:45 +0100)]
ALSA: caiaq - Fix possible string-buffer overflow

Use strlcpy() to assure not to overflow the string array sizes by
too long USB device name string.

Reported-by: Rafa <rafa@mwrinfosecurity.com>
Cc: stable <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: au88x0 - Modify pointer callback to give accurate playback position
Raymond Yau [Sun, 13 Feb 2011 23:33:24 +0000 (07:33 +0800)]
ALSA: au88x0 - Modify pointer callback to give accurate playback position

Signed-off-by: Raymond Yau <superquad.vortex2@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: usb-audio: reconstruct some dispatcher functions to use switch-case
Daniel Mack [Fri, 11 Feb 2011 11:34:12 +0000 (11:34 +0000)]
ALSA: usb-audio: reconstruct some dispatcher functions to use switch-case

The number of cases has increased so use switch-case rather than
if-statements.

Signed-off-by: Daniel Mack <daniel@caiaq.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: usb-audio: add support for Native Instruments MK2 devices
Daniel Mack [Fri, 11 Feb 2011 11:08:06 +0000 (11:08 +0000)]
ALSA: usb-audio: add support for Native Instruments MK2 devices

The MK2 generation of Native Instruments' sound cards are in fact
compliant to the USB audio standard of version 2 and other approved USB
standards. However, they come up as vendor-specific device when first
connected but can be told to come up with a new set of descriptors
upon their next enumeration. The interfaces announced by the new
descriptors will be handled by the kernel's class drivers. This is done
by issuing a vendor specific device request and sending the device to
reset.

There are also some vendor-specific USB requests for some mixer elements
that can't be exported in a standard compliant way. The driver now
supports them with quirks handling mechanisms.

Signed-off-by: Daniel Mack <daniel@caiaq.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: snd-usb-caiaq: Add support for Traktor Audio 2
Daniel Mack [Wed, 1 Sep 2010 08:23:46 +0000 (16:23 +0800)]
ALSA: snd-usb-caiaq: Add support for Traktor Audio 2

Signed-off-by: Daniel Mack <daniel@caiaq.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: core: sparse cleanups
Clemens Ladisch [Mon, 14 Feb 2011 10:00:47 +0000 (11:00 +0100)]
ALSA: core: sparse cleanups

Change the core code where sparse complains.  In most cases, this means
just adding annotations to confirm that we indeed want to do the dirty
things we're doing.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoMerge branch 'fix/asoc' into for-linus
Takashi Iwai [Sun, 13 Feb 2011 09:05:30 +0000 (10:05 +0100)]
Merge branch 'fix/asoc' into for-linus

13 years agoALSA: hda - add quirk for Ordissimo EVE using a realtek ALC662
Anisse Astier [Thu, 10 Feb 2011 12:14:44 +0000 (13:14 +0100)]
ALSA: hda - add quirk for Ordissimo EVE using a realtek ALC662

This netbook has a only one jack output and an internal mic.

By default, mic and jack sense aren't working. Using lenovo-101e
parameters makes both work.

The device seems based on a Sharetronic Q70, so this should fix audio for
this model too.

Signed-off-by: Anisse Astier <anisse@astier.eu>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: hrtimer: remove superfluous tasklet invocation
Clemens Ladisch [Thu, 10 Feb 2011 15:16:32 +0000 (16:16 +0100)]
ALSA: hrtimer: remove superfluous tasklet invocation

Commit bb758e9637e5ddc removed snd_hrtimer_callback() from the hardware
interrupt handler, thus moving it into a tasklet, but did not tell the
ALSA timer framework about this, so the timer handling would now be done
in the ALSA timer tasklet scheduled from another tasklet.

To fix this, add the flag to tell the ALSA timer framework that the
timer handler is already being invoked in a tasklet.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: hrtimer: handle delayed timer interrupts
Clemens Ladisch [Thu, 10 Feb 2011 15:15:44 +0000 (16:15 +0100)]
ALSA: hrtimer: handle delayed timer interrupts

If a timer interrupt was delayed too much, hrtimer_forward_now() will
forward the timer expiry more than once.  When this happens, the
additional number of elapsed ALSA timer ticks must be passed to
snd_timer_interrupt() to prevent the ALSA timer from falling behind.

This mostly fixes MIDI slowdown problems on highly-loaded systems with
badly behaved interrupt handlers.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Reported-and-tested-by: Arthur Marsh <arthur.marsh@internode.on.net>
Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - HPI v4.06
Eliot Blennerhassett [Thu, 10 Feb 2011 04:26:21 +0000 (17:26 +1300)]
ALSA: asihpi - HPI v4.06

Firmware version check depends on hpi version. Update so correct firmware
is accepted.

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - Fix outstream start trigger for non-mmap adapters.
Eliot Blennerhassett [Thu, 10 Feb 2011 04:26:20 +0000 (17:26 +1300)]
ALSA: asihpi - Fix outstream start trigger for non-mmap adapters.

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - Tighten firmware version requirements.
Eliot Blennerhassett [Thu, 10 Feb 2011 04:26:19 +0000 (17:26 +1300)]
ALSA: asihpi - Tighten firmware version requirements.

Difference in major.minor between driver and firmware is an error now.
Release version mismatch give a warning.

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - Ensure all adapter data is cleared on device removal.
Eliot Blennerhassett [Thu, 10 Feb 2011 04:26:18 +0000 (17:26 +1300)]
ALSA: asihpi - Ensure all adapter data is cleared on device removal.

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - Minor define updates
Eliot Blennerhassett [Thu, 10 Feb 2011 04:26:17 +0000 (17:26 +1300)]
ALSA: asihpi - Minor define updates

HPI version 4.05.32
Tweak HPI error code for backward compatibility.
Add BUILD to build-related defines.

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - New functions prep for interrupt driven streams.
Eliot Blennerhassett [Thu, 10 Feb 2011 04:26:16 +0000 (17:26 +1300)]
ALSA: asihpi - New functions prep for interrupt driven streams.

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - Use consistent err return variable, change some bad variable names.
Eliot Blennerhassett [Thu, 10 Feb 2011 04:26:15 +0000 (17:26 +1300)]
ALSA: asihpi - Use consistent err return variable, change some bad variable names.

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - Remove unused code and data.
Eliot Blennerhassett [Thu, 10 Feb 2011 04:26:14 +0000 (17:26 +1300)]
ALSA: asihpi - Remove unused code and data.

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - Clarify firmware id selection.
Eliot Blennerhassett [Thu, 10 Feb 2011 04:26:13 +0000 (17:26 +1300)]
ALSA: asihpi - Clarify firmware id selection.

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - Allow adapters with duplicate index jumpers to be discovered.
Eliot Blennerhassett [Thu, 10 Feb 2011 04:26:12 +0000 (17:26 +1300)]
ALSA: asihpi - Allow adapters with duplicate index jumpers to be discovered.

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - Add volume mute control.
Eliot Blennerhassett [Thu, 10 Feb 2011 04:26:11 +0000 (17:26 +1300)]
ALSA: asihpi - Add volume mute control.

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - Add snd_card_set_dev to init.
Eliot Blennerhassett [Thu, 10 Feb 2011 04:26:10 +0000 (17:26 +1300)]
ALSA: asihpi - Add snd_card_set_dev to init.

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - Replace adapter list with single item in subsys response.
Eliot Blennerhassett [Thu, 10 Feb 2011 04:26:09 +0000 (17:26 +1300)]
ALSA: asihpi - Replace adapter list with single item in subsys response.

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - Cosmetic + a minor comments.
Eliot Blennerhassett [Thu, 10 Feb 2011 04:26:08 +0000 (17:26 +1300)]
ALSA: asihpi - Cosmetic + a minor comments.

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - Remove int flag polling code preparing for stream interrupts.
Eliot Blennerhassett [Thu, 10 Feb 2011 04:26:07 +0000 (17:26 +1300)]
ALSA: asihpi - Remove int flag polling code preparing for stream interrupts.

Interrupt flag used for message handshake will be required for
stream interrupts, so conditionally compiled code without
HPI6205_NO_HSR_POLL defined can never be used;  removing it.

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - Code cleanup.
Eliot Blennerhassett [Thu, 10 Feb 2011 04:26:06 +0000 (17:26 +1300)]
ALSA: asihpi - Code cleanup.

Remove unused function.
Simplify hpi_alloc_control_cache.
Remove useless assignment to struct subsequently freed.

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - Reduce number of error codes returned to upper layers.
Eliot Blennerhassett [Thu, 10 Feb 2011 04:26:05 +0000 (17:26 +1300)]
ALSA: asihpi - Reduce number of error codes returned to upper layers.

Create and use HPI_ERROR_DSP_COMMUNICATION _DSP_BOOTLOAD, rather than
backend-specific error codes (now returned as data with the error).

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - Remove unused subsys pointer from all HPI functions.
Eliot Blennerhassett [Thu, 10 Feb 2011 04:26:04 +0000 (17:26 +1300)]
ALSA: asihpi - Remove unused subsys pointer from all HPI functions.

asihpi.c don't link playback and capture streams, there is too much
offset between them.

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - Update error codes.
Eliot Blennerhassett [Thu, 10 Feb 2011 04:26:03 +0000 (17:26 +1300)]
ALSA: asihpi - Update error codes.

Some error codes had duplicate meanings. Just use one.

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - Checkpatch line lengths etc.
Eliot Blennerhassett [Thu, 10 Feb 2011 04:26:02 +0000 (17:26 +1300)]
ALSA: asihpi - Checkpatch line lengths etc.

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - Add include guard.
Eliot Blennerhassett [Thu, 10 Feb 2011 04:26:01 +0000 (17:26 +1300)]
ALSA: asihpi - Add include guard.

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - Add adapter index to cache info for debug.
Eliot Blennerhassett [Thu, 10 Feb 2011 04:26:00 +0000 (17:26 +1300)]
ALSA: asihpi - Add adapter index to cache info for debug.

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - Rewrite PCM timer function. Update control names.
Eliot Blennerhassett [Thu, 10 Feb 2011 04:25:59 +0000 (17:25 +1300)]
ALSA: asihpi - Rewrite PCM timer function. Update control names.

Reported samples_played from card may be inaccurate, so don't use it.
Update control names to be closer to alsa standard practice.
Also fixed some accidentally lowercased strings.

[Removed adriver.h inclusion for external module builds by tiwai]

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - Interrelated HPI tidy up.
Eliot Blennerhassett [Thu, 10 Feb 2011 04:25:58 +0000 (17:25 +1300)]
ALSA: asihpi - Interrelated HPI tidy up.

Remove many unused functions.
Update some message and cache structs.
Use pci info directly from pci_dev.
Allow control cache elements with variable size, and handle
large message/response from dsp.
hpi6000 and hpi6205: fix error path when adapter bootload fails.
hpimsgx.c get rid of code duplicated in hpicmn.c

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - HPI 4.05.14
Eliot Blennerhassett [Thu, 10 Feb 2011 04:25:57 +0000 (17:25 +1300)]
ALSA: asihpi - HPI 4.05.14

All enum values numeric for easier finding, particularly error codes.
Remove many unused declarations.

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - Simplify debug logging.
Eliot Blennerhassett [Thu, 10 Feb 2011 04:25:56 +0000 (17:25 +1300)]
ALSA: asihpi - Simplify debug logging.

Log HPI messages and responses in consistent numeric format,
which can be post-processed to get strings.

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - Poison adapter_index in message. Remove unused function.
Eliot Blennerhassett [Thu, 10 Feb 2011 04:25:55 +0000 (17:25 +1300)]
ALSA: asihpi - Poison adapter_index in message. Remove unused function.

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: asihpi - Switch to dev_printk.
Eliot Blennerhassett [Thu, 10 Feb 2011 04:25:54 +0000 (17:25 +1300)]
ALSA: asihpi - Switch to dev_printk.

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: HDA: Add subwoofer quirk for Acer Aspire 8942G
David Henningsson [Thu, 10 Feb 2011 14:39:19 +0000 (15:39 +0100)]
ALSA: HDA: Add subwoofer quirk for Acer Aspire 8942G

According to the reporter, node 0x15 needs to be muted for subwoofer
to stop sounding. This pin is marked as unused by BIOS, so fix that.

BugLink: http://bugs.launchpad.net/bugs/715877
Cc: stable@kernel.org (2.6.37+)
Reported-by: Hans Peter
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: hda - Don't handle empty patch files
Takashi Iwai [Thu, 10 Feb 2011 16:39:20 +0000 (17:39 +0100)]
ALSA: hda - Don't handle empty patch files

When an empty string is passed to patch option, the driver should
ignore it.  Otherwise it gets an error by trying to load it.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: hda - Fix missing CA initialization for HDMI/DP
Takashi Iwai [Tue, 8 Feb 2011 16:25:49 +0000 (17:25 +0100)]
ALSA: hda - Fix missing CA initialization for HDMI/DP

The commit 53d7d69d8ffdfa60c5b66cc2e9ee0774aaaef5c0
    ALSA: hdmi - support infoframe for DisplayPort
dropped the initialization of CA field accidentally.
This resulted in only two-channel LPCM mode on Nvidia machines.

Reference: kernel bug 28592
https://bugzilla.kernel.org/show_bug.cgi?id=28592

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Cc: <stable@kernel.org>
13 years agoALSA: usbaudio - Enable the E-MU 0204 USB
Joseph Teichman [Tue, 8 Feb 2011 06:22:36 +0000 (01:22 -0500)]
ALSA: usbaudio - Enable the E-MU 0204 USB

Signed-off-by: Joseph Teichman <josteich@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: USB: 6fire: signedness bug in usb6fire_pcm_prepare()
Dan Carpenter [Mon, 7 Feb 2011 17:25:19 +0000 (20:25 +0300)]
ALSA: USB: 6fire: signedness bug in usb6fire_pcm_prepare()

rt->rate is an unsigned char so it's never equal to -1.  It's not a huge
problem because the invalid rate is caught inside the call to
usb6fire_pcm_set_rate() which returns -EINVAL.  But if we fix the test
then it prints out the correct error message so that's good.

Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: hda - switch lfe with side in mixer for 4930g
Łukasz Wojniłowicz [Mon, 7 Feb 2011 12:13:27 +0000 (13:13 +0100)]
ALSA: hda - switch lfe with side in mixer for 4930g

Built-in sub-woofer can now be controlled by lfe slider instead of
side slider on Acer Aspire 5930g

Signed-off-by: Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoMerge branch 'fix/asoc' into for-linus
Takashi Iwai [Fri, 4 Feb 2011 16:08:53 +0000 (17:08 +0100)]
Merge branch 'fix/asoc' into for-linus

13 years agoASoC: Improve WM8994 digital power sequencing
Mark Brown [Thu, 3 Feb 2011 16:27:35 +0000 (16:27 +0000)]
ASoC: Improve WM8994 digital power sequencing

On WM8994 revision D and earlier ensure optimal sequencing with
simultaneous usage of AIF1 and AIF2 by tying the signals together
so if paths through both are connected the streams are started
simultaneously.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Cc: stable@kernel.org
13 years agoASoC: Create an AIF1ADCDAT signal widget to match AIF2
Mark Brown [Thu, 3 Feb 2011 16:27:34 +0000 (16:27 +0000)]
ASoC: Create an AIF1ADCDAT signal widget to match AIF2

Due to the different routing for AIF1 and AIF2 we weren't using a
single widget to represent the ADCDAT signal. For consistency add
one.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Cc: stable@kernel.org
13 years agoasoc: davinci: da830/omap-l137: correct cpu_dai_name
Vaibhav Bedia [Thu, 3 Feb 2011 11:12:25 +0000 (16:42 +0530)]
asoc: davinci: da830/omap-l137: correct cpu_dai_name

McASP1 is used on the DA830/OMAP-L137 platform for the codec.
This is different from the DA850/OMAP-L138 platform which uses McASP0.

This is fixed by adding a new snd_soc_dai_link struct.

Signed-off-by: Vaibhav Bedia <vaibhav.bedia@ti.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: fill in snd_soc_pcm_runtime.card before calling snd_soc_dai_link.init()
Janusz Krzysztofik [Wed, 2 Feb 2011 20:11:41 +0000 (21:11 +0100)]
ASoC: fill in snd_soc_pcm_runtime.card before calling snd_soc_dai_link.init()

The .card member of the snd_soc_pcm_runtime structure pointed to by the
snd_soc_dai_link.init() argument used to be initialized before the
function being called. This has changed, probably unintentionally,
after recent refactorings. Since the function implementations are free
to make use of this pointer, move its assignment back before the
function is called to avoid NULL pointer dereferences.

Created and tested on Amstrad Delta againts linux-2.6.38-rc2

Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoALSA: use linux/io.h to fix compile warnings
Takashi Iwai [Wed, 2 Feb 2011 16:49:53 +0000 (17:49 +0100)]
ALSA: use linux/io.h to fix compile warnings

For helping to reduce Greert's regression list...
  src/sound/drivers/mtpav.c: error: implicit declaration of function 'inb'
  src/sound/drivers/mtpav.c: error: implicit declaration of function 'outb'
  ...

Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoALSA: hda - Fix memory leaks in conexant jack arrays
Takashi Iwai [Wed, 2 Feb 2011 16:16:38 +0000 (17:16 +0100)]
ALSA: hda - Fix memory leaks in conexant jack arrays

The Conexant codec driver adds the jack arrays in init callback which
may be called also in each PM resume.  This results in the addition of
new jack element at each time.

The fix is to check whether the requested jack is already present in
the array.

Reference: Novell bug 668929
https://bugzilla.novell.com/show_bug.cgi?id=668929

Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoASoC: CX20442: fix NULL pointer dereference
Janusz Krzysztofik [Tue, 1 Feb 2011 12:01:17 +0000 (13:01 +0100)]
ASoC: CX20442: fix NULL pointer dereference

The CX20442 codec driver never provided the snd_soc_codec_driver's
.reg_cache_default member. With the latest ASoC framework changes, it
seems to be referred unconditionally, resulting in a NULL pointer
dereference if missing. Provide it.

Created and tested on Amstrad Delta against linux-2.6.38-rc2

Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Amstrad Delta: fix const related build error
Janusz Krzysztofik [Tue, 1 Feb 2011 10:11:55 +0000 (11:11 +0100)]
ASoC: Amstrad Delta: fix const related build error

The Amstrad Delta ASoC driver used to override the digital_mute()
callback, expected to be not provided by the on-board CX20442 CODEC
driver, with its own implementation. While this is still posssible when
substituting the whole empty snd_soc_dai_driver.ops member (the CX20442
case), replacing snd_soc_dai_ops.digital_mute only is no longer correct
after the snd_soc_dai_driver.ops member has been constified, and results
in build error.

Drop this actually not used code path in hope the CX20442 driver never
provides its own snd_soc_dai_ops structure.

Created and tested against linux-2.6.38-rc2

Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoMerge branch 'topic/hda' into fix/hda
Takashi Iwai [Mon, 31 Jan 2011 11:04:50 +0000 (12:04 +0100)]
Merge branch 'topic/hda' into fix/hda

13 years agoALSA: oxygen: fix output routing on Xonar DG
Clemens Ladisch [Mon, 31 Jan 2011 10:47:52 +0000 (11:47 +0100)]
ALSA: oxygen: fix output routing on Xonar DG

This card uses separate I2S outputs for the front speakers and
headphones, and reverses the order of the three speaker outputs.
To work around this, add a model-specific callback to adjust the
controller's playback routing.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agosound: silent echo'ed messages in Makefile
Amerigo Wang [Fri, 28 Jan 2011 08:52:00 +0000 (16:52 +0800)]
sound: silent echo'ed messages in Makefile

Silent these echo's, please.

Signed-off-by: WANG Cong <amwang@redhat.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoASoC: Fix mask/val_mask confusion snd_soc_dapm_put_volsw()
Stephen Warren [Thu, 27 Jan 2011 21:54:05 +0000 (14:54 -0700)]
ASoC: Fix mask/val_mask confusion snd_soc_dapm_put_volsw()

snd_soc_dapm_put_volsw() has variables for both the unshifted and
shifted mask for updates commit 97404f (ASoC: Do DAPM control updates in
the middle of DAPM sequences) got confused between the two of these.
Since there's no need to keep a copy of the unshifted mask fix this and
simplify the code by using only one mask variable.

[Completely rewrote the changelog to describe the issue -- broonie.]

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: DaVinci: fix kernel panic due to uninitialized platform_data
Manjunathappa, Prakash [Thu, 27 Jan 2011 13:47:43 +0000 (19:17 +0530)]
ASoC: DaVinci: fix kernel panic due to uninitialized platform_data

This patch fixes the Kernel panic issue on accessing davinci_vc in
cq93vc_probe function. struct davinci_vc is part of platform device's
private driver data(codec->dev->p->driver_data) and this is populated
by DaVinci Voice Codec MFD driver.

Signed-off-by: Manjunathappa, Prakash <prakash.pm@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoALSA: HDA: Fix microphone(s) on Lenovo Edge 13
David Henningsson [Thu, 27 Jan 2011 09:28:46 +0000 (10:28 +0100)]
ALSA: HDA: Fix microphone(s) on Lenovo Edge 13

BugLink: http://bugs.launchpad.net/bugs/708521
This Edge 13 model has an internal mic at 0x1a and should
therefore use the asus quirk.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>