Takashi Iwai [Fri, 11 Dec 2009 11:51:05 +0000 (12:51 +0100)]
ALSA: hrtimer - Fix lock-up
The timer stop callback can be called from snd_timer_interrupt(), which
is called from the hrtimer callback. Since hrtimer_cancel() waits for
the callback completion, this eventually results in a lock-up.
This patch fixes the problem by just toggling a flag at stop callback
and call hrtimer_cancel() later.
The volume levels in original implementation are incorrect and does
not match the dB scale. The real range is linear (in the sense of
the dB scale) from 0dB to -100dB. Remove logaritmic table and make
all volumes from range 0dB..100dB.
The tests are in RedHat's bugzilla #540817.
Signed-off-by: Jaroslav Kysela <perex@perex.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
miropcm20 uses ALSA (snd_) interfaces from the SND_MIRO
driver, so it should depend on SND.
(selecting SND_MIRO when CONFIG_SND is not enabled is a
problem.)
drivers/built-in.o: In function `vidioc_s_ctrl':
radio-miropcm20.c:(.text+0x227499): undefined reference to `snd_aci_cmd'
drivers/built-in.o: In function `vidioc_s_frequency':
radio-miropcm20.c:(.text+0x227574): undefined reference to `snd_aci_cmd'
radio-miropcm20.c:(.text+0x227588): undefined reference to `snd_aci_cmd'
drivers/built-in.o: In function `pcm20_init':
radio-miropcm20.c:(.init.text+0x2a784): undefined reference to `snd_aci_get_aci'
miropcm20 selects SND_MIRO but SND_ISA may be not enabled, so
also select SND_ISA so that the snd-miro driver will be built.
Otherwise there are missing symbols:
Tobias Hansen [Mon, 7 Dec 2009 18:08:19 +0000 (19:08 +0100)]
ALSA: snd-usb-us122l: add product IDs of US-122MKII and US-144MKII
I added the product IDs of the new revisions of the devices, so owners
can test whether this suffices to make them work. Patched against ALSA
snapshot 20091207.
Signed-off-by: Tobias Hansen <Tobias.Hansen at physik.uni-hamburg.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 8 Dec 2009 11:52:47 +0000 (12:52 +0100)]
ALSA: hda - Exclude unusable ADCs for ALC88x
On Realtek codecs, a digital mic pin is connected often only to a single
ADC. But the parser tries to set up all ADCs no matter whether the
digital mic is available, and results in non-selectable input source.
This patch adds a check of input-source availability of each ADC, and
excludes ones that don't support all input sources.
This is an updated patch for the Apple iMac 9,1 model to add sound.
Original patch posted here:
http://article.gmane.org/gmane.linux.alsa.devel/61361/match=
I have been using this patch for a while now
and have to say it works vary well, except for a few minor
things:
With the iMac 24-inch 3.06GHz Intel Core 2 Duo
everything seems to be working as it should,
although I have not looked into the microphone
(never really use one, nor have any apps to test,
my guess is it doesn't work, or I never figured out how
to get it to work).
With the iMac 24-inch 2.66GHz Intel Core 2 Duo
everything is the same as with the above machine
except I'm hearing a light scratchy/distortion noise
come out of the speakers when using headphones(above machine
does not do this).
Other than that the sound level is great(especially with good Dj headphones).
Signed-off-by: Justin P. Mattock <justinmattock@gmail.com> Tested-by: Justin P. Mattock <justinmattock@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Ondrej Zary [Fri, 27 Nov 2009 17:18:33 +0000 (18:18 +0100)]
snd-fm801: autodetect SF64-PCR (tuner-only) card
When primary AC97 is not found, don't fail with tons of AC97 errors.
Assume that the card is SF64-PCR (tuner-only).
This makes the SF64-PCR radio card work "out of the box".
Also fixes a bug that can cause an oops here:
if (tea575x_tuner > 0 && (tea575x_tuner & 0x000f) < 4) {
when tea575x_tuner == 16, it passes this check and causes problems
a couple lines below:
chip->tea.ops = &snd_fm801_tea_ops[(tea575x_tuner & 0x000f) - 1];
Tested with SF64-PCR, but I don't have any of those sound or sound+radio cards
to test if I didn't break anything.
Signed-off-by: Ondrej Zary <linux@rainbow-software.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
free the allocated pcm platform device in the error path.
Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Manuel Lauss [Tue, 1 Dec 2009 17:10:34 +0000 (18:10 +0100)]
ASoC: au1x: dbdma2: fix oops on soc device removal.
platform_device_unregister() frees resources for us, no need to
do it explicitly. Fixes an oops when machine code removes the
soc-audio device.
Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Daniel Mack [Mon, 30 Nov 2009 13:06:37 +0000 (14:06 +0100)]
ASoC: pxa/raumfeld: adopt new snd_soc_dai_set_pll() API
ALSA's for-2.6.33 branch has a new source argument to
snd_soc_dai_set_pll().
Signed-off-by: Daniel Mack <daniel@caiaq.de> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This patch add support runtime PM.
Driver callbacks for Runtime PM are empty because
the device registers are always re-initialized after
pm_runtime_get_sync(). The Runtime PM functions replaces the
clock framework module stop bit handling in this driver.
Signed-off-by: Kuninori Morimoto <morimoto.kuninori@renesas.com> Acked-by: Paul Mundt <lethal@linux-sh.org> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Krzysztof Helt [Mon, 30 Nov 2009 06:46:56 +0000 (07:46 +0100)]
ALSA: opti-miro: add PnP detection
The PCM12 and PCM20 can be set into the ISA PnP mode. The PCM12 PnP
was sold as the PnP device.
Add code to handle detection of these cards using ISA PnP framework.
Tested on the PCM20 in PnP mode. The PCM12 PnP has the same MS Windows
INF file except for a card name displayed for user.
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Daniel Mack [Fri, 27 Nov 2009 12:47:10 +0000 (13:47 +0100)]
ALSA: ARM: add Raumfeld audio support
Signed-off-by: Daniel Mack <daniel@caiaq.de> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Takashi Iwai [Fri, 27 Nov 2009 14:14:09 +0000 (15:14 +0100)]
ASoC: Revert missing reset_err in wm97*.c
The commit fe3e78e073d25308756f38019956061153267769
ASoC: Factor out snd_soc_init_card()
removed the error paths that are still valid for wm97* codecs, causing
the compile errors like
sound/soc/codecs/wm9705.c:399: error: label 'reset_err' used but not defined
sound/soc/codecs/wm9712.c:687: error: label 'reset_err' used but not defined
sound/soc/codecs/wm9713.c:1237: error: label 'reset_err' used but not defined
Krzysztof Helt [Fri, 27 Nov 2009 10:24:13 +0000 (11:24 +0100)]
media/radio: New driver for the radio FM module on Miro PCM20 sound card
This is recreated driver for the FM module found on Miro
PCM20 sound cards. This driver was removed around the 2.6.2x
kernels because it relied on the removed OSS module. Now, it
uses a current ALSA module (snd-miro) and is adapted to v4l2
layer.
It provides only basic functionality: frequency changing and
FM module muting.
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl> Reviewed-by: Hans Verkuil <hverkuil@xs4all.nl> Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Fri, 27 Nov 2009 11:22:44 +0000 (12:22 +0100)]
ALSA: hda - Don't trigger pin-sense for STAC/IDT codecs
STAC/IDT codecs seem to behave weird when SET_PIN_SENSE verb is issued
before reading the jack-detection although the TRIG_REQ pin capability
is given by the hardware.
Since snd_hda_jack_detect() issues the SET_PIN_SENSE verb simply judging
from the pincap, we have to revert the change in the commit d56757abc11a21996d9839c0d4e3b2c3666cd318
ALSA: hda - Replace the rest of jack-detections with snd_hda_jack_detect()
to plain GET_PIN_SENSE verb without triggering.
Krzysztof Helt [Fri, 27 Nov 2009 10:20:56 +0000 (11:20 +0100)]
ALSA: opti-miro: fix OOPS if hardware is not detected
If a hardware is not detected there is a kernel crash
due to not initialized snd_miro->aci pointer. This pointer
is initialized after detection of the opti (miro) chip.
This bug was introduced by patches to expose
ACI mikser outside the snd-miro driver.
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 26 Nov 2009 14:04:24 +0000 (15:04 +0100)]
ALSA: pcm - fix page conversion on non-coherent PPC arch
The non-cohernet PPC arch doesn't give the correct address by a simple
virt_to_page() for pages allocated via dma_alloc_coherent().
This patch adds a hack to fix the conversion similarly like MIPS.
Note that this doesn't fix perfectly: the pages should be marked with
proper pgprot value. This will be done in a future implementation like
the conversion to dma_mmap_coherent().
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 26 Nov 2009 11:50:01 +0000 (12:50 +0100)]
ALSA: pcm - fix page conversion on non-coherent MIPS arch
The non-coherent MIPS arch doesn't give the correct address by a simple
virt_to_page() for pages allocated via dma_alloc_coherent().
Original patch by Wu Zhangjin <wuzj@lemote.com>.
[Ralf mentioned: "The origins of this patch go back far further.
The oldest patch I could find which is a superset of this was written
by Atsushi Nemoto and various incarnations of it have been sumitted
to and reject by me a number of times through the years."]
A proper check of the buffer allocation type was added to avoid the
wrong conversion.
Note that this doesn't fix perfectly: the pages should be marked with
proper pgprot value. This will be done in a future implementation like
the conversion to dma_mmap_coherent().
Peter Ujfalusi [Thu, 26 Nov 2009 11:55:11 +0000 (13:55 +0200)]
ASoC: tlv320dac33: Change RT wq to singlethread wq
RT workqueue is going away in the near future, replace it with
singlethread wq for now, which is still supported.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Takashi Iwai [Thu, 26 Nov 2009 11:40:21 +0000 (12:40 +0100)]
ALSA: pcm - Use dma_mmap_coherent() if available
Use dma_mmap_coherent() for mmapping the buffers allocated via
dma_alloc_coherent() if available. Currently, only ARM has this function,
so we do temporarily have an ifdef pcm_native.c. This should be handled
better globally in future.
Daniel J Blueman [Wed, 25 Nov 2009 12:12:59 +0000 (12:12 +0000)]
mfd: twl4030: fix ELF section mismatch...
Since twl4030_probe is only called from functions in the init ELF
section, annotate it so.
Signed-off-by: Daniel J Blueman <daniel.blueman@gmail.com> Acked-by: Samuel Ortiz <sameo@linux.intel.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Daniel T Chen [Wed, 25 Nov 2009 03:51:05 +0000 (22:51 -0500)]
ALSA: intel8x0: Mute External Amplifier by default for Gateway 4525GZ
BugLink: https://bugs.launchpad.net/bugs/487884
This Gateway model needs External Amplifier muted for audible playback,
so set the inv_eapd quirk for it.
Signed-off-by: Daniel T Chen <crimsun@ubuntu.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Clemens Ladisch [Mon, 16 Nov 2009 11:23:46 +0000 (12:23 +0100)]
sound: usb: make the USB MIDI module more independent
Remove the dependecy from the USB MIDI code on the snd_usb_audio
structure. This allows using the USB MIDI module from another driver
without having to pretend to be the generic USB audio driver.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Łukasz Wojniłowicz reported that the change causes both internal and
external mics not working any more. The headphone jacking issue was
fixed by his previous patch, it's better to revert to acer-aspire-4930g
model.
Mark Brown [Mon, 23 Nov 2009 13:11:53 +0000 (13:11 +0000)]
ASoC: Fix suspend with active audio streams
When we get a stream suspend event force the power down since otherwise
the stream would remain marked as active. In future we'll probably want
to make this stream-specific and add an interface to make the power down
of other widgets optional in order to support leaving bypass paths
active while suspending the processor.
Cc: stable@kernel.org Reported-by: Joonyoung Shim <jy0922.shim@samsung.com> Tested-by: Joonyoung Shim <jy0922.shim@samsung.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Linus Torvalds [Thu, 19 Nov 2009 21:43:19 +0000 (13:43 -0800)]
Merge branch 'bugfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6
* 'bugfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:
SUNRPC: Address buffer overrun in rpc_uaddr2sockaddr()
NFSv4: Fix a cache validation bug which causes getcwd() to return ENOENT
Alan Cox [Thu, 19 Nov 2009 13:30:36 +0000 (13:30 +0000)]
vt: Fix use of "new" in a struct field
As this struct is exposed to user space and the API was added for this
release it's a bit of a pain for the C++ world and we still have time to
fix it. Rename the fields before we end up with that pain in an actual
release.
David Woodhouse [Thu, 19 Nov 2009 02:18:44 +0000 (02:18 +0000)]
Fix handling of the HP/Acer 'DMAR at zero' BIOS error for machines with <4GiB RAM.
Commit 86cf898e1d0fca245173980e3897580db38569a8 ("intel-iommu: Check for
'DMAR at zero' BIOS error earlier.") was supposed to work by pretending
not to detect an IOMMU if it was actually being reported by the BIOS at
physical address zero.
However, the intel_iommu_init() function is called unconditionally, as
are the corresponding functions for other IOMMU hardware.
So the patch only worked if you have RAM above the 4GiB boundary. It
caused swiotlb to be initialised when no IOMMU was detected during early
boot, and thus the later IOMMU init would refuse to run.
But if you have less RAM than that, swiotlb wouldn't get set up and the
IOMMU _would_ still end up being initialised, even though we never
claimed to detect it.
This patch also sets the dmar_disabled flag when the error is detected
during the initial detection phase -- so that the later call to
intel_iommu_init() will return without doing anything, regardless of
whether swiotlb is used or not.
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Takashi Iwai [Thu, 19 Nov 2009 10:48:44 +0000 (11:48 +0100)]
ALSA: hda - Change quirk for Acer Aspire 5930G
Change the quirk for Acer Aspire 5930G from model=acer-aspire-4930g to
model=acer-aspre-6530g. The tuba bass gets muted along with the other
built-in speakers upon headphones insertion, the internal mic works
perfectly etc.
Troy Kisky [Thu, 19 Nov 2009 00:49:53 +0000 (17:49 -0700)]
ASoC: DaVinci: pcm, fix underrun by using sram
Fix underruns by using dma to copy 1st to sram
in a ping/pong buffer style and then copying from
the sram to the ASP. This also has the advantage
of tolerating very long interrupt latency on dma
completion.
Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Troy Kisky [Thu, 19 Nov 2009 00:49:52 +0000 (17:49 -0700)]
ASoC: DaVinci: pcm, rename variables in prep for ping/pong
Rename variable master_lch to asp_channel
Rename variable slave_lch to asp_link[0]
Rename local variables:
lch to link
count to asp_count
src to asp_src
dst to asp_dst
Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Linus Torvalds [Thu, 19 Nov 2009 02:49:49 +0000 (18:49 -0800)]
Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq
* 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq:
[CPUFREQ] Fix stale cpufreq_cpu_governor pointer
[CPUFREQ] Resolve time unit thinko in ondemand/conservative govs
[CPUFREQ] speedstep-ich: fix error caused by 394122ab144dae4b276d74644a2f11c44a60ac5c
[CPUFREQ] Fix use after free on governor restore
[CPUFREQ] acpi-cpufreq: blacklist Intel 0f68: Fix HT detection and put in notification message
[CPUFREQ] powernow-k8: Fix test in get_transition_latency()
[CPUFREQ] longhaul: select Longhaul version 2 for capable CPUs
Linus Torvalds [Wed, 18 Nov 2009 21:31:52 +0000 (22:31 +0100)]
strcmp: fix overflow and possibly signedness error
Doing the strcmp return value as
signed char __res = *cs - *ct;
is wrong for two reasons. The subtraction can overflow because __res
doesn't use a type big enough. Moreover the compared bytes should be
interpreted as unsigned char as specified by POSIX.
The same problem is fixed in strncmp.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Cc: Michael Buesch <mb@bu3sch.de> Cc: Andreas Schwab <schwab@linux-m68k.org> Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Linus Torvalds [Thu, 19 Nov 2009 01:08:16 +0000 (17:08 -0800)]
Merge branch 'agp-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/agp-2.6
* 'agp-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/agp-2.6:
agp/intel-agp: Set dma_mask for capable chipsets before agp_add_bridge()
Linus Torvalds [Wed, 18 Nov 2009 23:00:21 +0000 (15:00 -0800)]
Merge branch 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6
* 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6:
OMAP: cs should be positive in gpmc_cs_free()
omap: fix unlikely(x) < y
omap3: clock: Fixed dpll3_m2x2 rate calculation
omap3: clock: Fix the DPLL freqsel computations
omap: Fix keymap for zoom2 according to matrix keypad framwork