Takashi Iwai [Fri, 2 Oct 2009 12:06:08 +0000 (14:06 +0200)]
ALSA: usb - Use strlcat() correctly
Don't pass the advanced position to strlcat() but just gives the buffer
head position so that the max size limit can be checked correctly.
Introduced a new helper function to standaralize strlcat() calls.
Takashi Iwai [Fri, 2 Oct 2009 07:03:58 +0000 (09:03 +0200)]
ALSA: hda - Fix / improve ALC66x parser
The auto-parser for ALC662/663/272 codecs doesn't work properly when
a speaker is connected to mono NID 0x17, and doesn't handle the dynamic
DAC assignment properly.
This patch fixes the issues and also improves the assignment of DACs
so that HP and speakers can have independent volume controls.
Sven Eckelmann [Thu, 1 Oct 2009 18:06:39 +0000 (20:06 +0200)]
ALSA: ctxfi: Swapped SURROUND-SIDE mute
On Soundblaster X-FI Titenium with emu20k2 the SIDE and SURROUND mute
functions are swapped.
It was checked with 'speaker-test -c 8 -s 3' and (un)mute surround or
'speaker-test -c 8 -s 7' and (un)mute side. The volume seems not
to be affected and works as expected.
Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Daniel T Chen [Thu, 1 Oct 2009 22:56:30 +0000 (18:56 -0400)]
ALSA: intel8x0 - Mute External Amplifier by default for Sony VAIO VGN-B1VP
BugLink: https://bugs.launchpad.net/bugs/410933
This Sony VAIO model also needs External Amplifier unmuted for audible
playback, so make sure we set the inv_eapd quirk.
Signed-off-by: Daniel T Chen <crimsun@ubuntu.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 1 Oct 2009 14:38:11 +0000 (16:38 +0200)]
ALSA: hda - Fix digita/analog mic auto-switching with IDT codecs
When the auto-mic switching between an analog and a digital mic is
needed with IDT codecs, the current driver doesn't reset the connection
of the digital mux.
This patch fixes the behavior by checking both mux connections properly.
Barry Song [Thu, 1 Oct 2009 05:33:30 +0000 (01:33 -0400)]
ASoC: fix kconfig order of Blackfin drivers
Some of the Blackfin options don't directly follow the kconfig options
they depend on, so kconfig is unable to display the proper tree. So sort
the options such they expand/collapse properly.
Signed-off-by: Barry Song <barry.song@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
The client->driver pointer can be NULL when i2c-device probing fails
in i2c_new_device(). This patch adds the NULL checks for client->driver
and return the error instead of blind assumption of driver availability.
Reported-by: Tim Shepard <shep@alum.mit.edu> Cc: Jean Delvare <khali@linux-fr.org> Cc: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Daniel T Chen [Thu, 1 Oct 2009 04:28:16 +0000 (00:28 -0400)]
ALSA: intel8x0 - Mute External Amplifier by default for Sony VAIO VGN-T350P
BugLink: https://bugs.launchpad.net/bugs/410933
This Sony VAIO model needs External Amplifier unmuted for audible
playback, so make sure we set the inv_eapd quirk.
Signed-off-by: Daniel T Chen <crimsun@ubuntu.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
ALSA: hda - Resurrect input-source mixer of ALC268 model=acer
In the commit fdbc66266c21976027938642f60e0f047149a61a, I mistakenly
replaced the capture mixer array for ALC268_ACER to nosrc version
although this should be kept to alt_mixer. Now fixed back.
ALSA: hda - CD-audio sound for hda-intel conexant benq laptop
After puting a cd-audio inside my laptop there was no sound out here,
so I decided to install alsa-driver with debug level and setup a
model=test, it didn't help, but then I look at source code and added
this few lines, now cd-audio is working both when playback/recording.
[Additional minor fixes of mixer element/item names by tiwai]
Chaithrika U S [Wed, 23 Sep 2009 14:12:08 +0000 (10:12 -0400)]
ASoC: DaVinci: Correct McASP FIFO initialization
McASP write FIFO registers should be modified for playback and read FIFO
registers for capture. Check the PCM mode before manipulating the
FIFO registers. Currently, irrespective of playback/capture both the
FIFOs are enabled or disbaled. This resulted in errors in audio loopback
mode.
Signed-off-by: Chaithrika U S <chaithrika@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This patch removes references to cpu_dai->dma_data.
It makes struct davinci_pcm_dma_params part of
struct davinci_mcbsp_dev or struct davinci_audio_dev.
It removes the unused name variable from davinci_pcm_dma_params.
Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
ASoC: DaVinci: Fix divide by zero error during 1st execution
When both playback and capture stream were open
davinci_i2s_hw_params was setting parameters for
the wrong stream. The fix for davinci_i2s_hw_params
is sufficient, but it looks like a race still happens
in davici_pcm_open. This patch also makes the race smaller
but the next patch provides a better fix.
Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cliff Cai [Wed, 23 Sep 2009 15:51:05 +0000 (11:51 -0400)]
ASoC: Blackfin: fix inverted handling of SPORT0 on PORT F/G
Signed-off-by: Cliff Cai <cliff.cai@analog.com> Signed-off-by: Barry Song <barry.song@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Barry Song [Mon, 21 Sep 2009 03:20:51 +0000 (11:20 +0800)]
ASoC: some minor changes for AD1836 and AD1938 codec drivers
1. delete redundant assignment to bus field in spi_driver structure
2. fix lost assignment to set_bias_level entry in ad1938 codec dai
3. change spi driver name of ad1836 from "ad1836-spi" to "ad1836"
Signed-off-by: Barry Song <barry.song@analog.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Simplify snd_pcm_drain() implementation and avoid unneeded array-
allocation for waitqueues. Instead, one waitqueue is used for the
first draining stream, and wait until all streams finished.
Chaithrika U S [Tue, 15 Sep 2009 22:13:29 +0000 (18:13 -0400)]
ASoC: DaVinci: Fixes to McASP configuration
McASP register settings are not correct for DSP mode of operation.
There is a channel swap initally. This patch provides fixes to
the register values for proper working.
Tested on DA830/OMAP-L137 EVM, DM6467 EVM.
Signed-off-by: Chaithrika U S <chaithrika@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cliff Cai [Thu, 17 Sep 2009 00:25:12 +0000 (20:25 -0400)]
ASoC: Blackfin I2S: fix resuming when device hasn't been used
If the sound system hasn't been utilized yet and we suspend, then we
attempt to save/restore using state that doesn't exist. So use a global
handle instead to reconfigure properly.
Signed-off-by: Cliff Cai <cliff.cai@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* fix/asoc:
ASoC: remove unused #include <linux/version.h>
ASoC: S3C lrsync function made to work with IRQs disabled.
ASoC: Fix display of stream name in DAPM debugfs
ASoC: Clean up error handling in MPC5200 DMA setup
The headphone and speaker mixer elements aren't properly set for
MSI GX620 with targa-8ch-dig quirk.
Also fixed the speaker volume control for other ALC883-targa quirks,
too.
Barry Song [Thu, 17 Sep 2009 00:25:11 +0000 (20:25 -0400)]
ASoC: Blackfin I2S: add lost platform_device parameter to resume function
Commit dc7d7b830ee1 trimmed the platform_device parameter from all of the
suspend functions, but it also accidentally removed it from the resume
function in the Blackfin I2S driver. So restore it.
Signed-off-by: Barry Song <barry.song@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Barry Song [Thu, 17 Sep 2009 00:25:10 +0000 (20:25 -0400)]
ASoC: fix typos in Blackfin headers
Signed-off-by: Barry Song <barry.song@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cliff Cai [Thu, 17 Sep 2009 00:25:08 +0000 (20:25 -0400)]
ASoC: Blackfin AC97: add a few missing multichannel define handling
Somewhere along the line, most of SND_BF5XX_MULTICHAN_SUPPORT handling was
merged, but two places were missed (the probe/resume functions). Restore
handling of this option so it gets initialized properly.
Signed-off-by: Cliff Cai <cliff.cai@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
ASoC: S3C lrsync function made to work with IRQs disabled.
s3c2412_snd_lrsync() maybe reached with IRQs disabled and if LRCLK
is dead due to improper initialization of CPU or CODEC, the system
gets stuck in the loop because jiffies may never get updated.
Implemented counter based wait mechanism for atleast the same
timeout period.
Signed-off-by: Jassi <jassi.brar@samsung.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Remove unnecessary (and buggy) init sequences left for IDT92HD83*
codecs in the previous fixes. The DACs are now dynamically connected,
thus shouldn't be set statically in init verbs. Also, the mono_nid
is detected dynamically, thus shouldn't be set staticaly, too.
Add the quirk entry for HP dv6. Also add a workaround for the headphone
detection by setting hp_detect=1 beforehand. Without this, the driver
won't do auto-muting because BIOS doesn't give any HP pin but only a
line-out pin.
ALSA: hda - Fix HP/line-out initialization with IDT/STAC codecs
It's possible that hp_detect is set even though no headphone pin is
detected. The driver issues, however, an unsol event only to hp_pins[0],
which can be invalid.
This patch adds the check of the valid pin to send an unsol event
at initialization and resume callbacks.
IDT92HD73xx and STAC927x codecs use GPIO0 bit as EAPD on many machines.
However, currently we don't set it unless the model is specified just
for safety reason. But, most machines do need this bit, so this safety
handling is rather annoying.
This patch enables GPIO0 setup as default for them. Many HP / Dell
laptops should work even without model override with this change.
* topic/usb-audio:
ALSA: usb-audio - Fix types taken in min()
sound: usb-audio: do not make URBs longer than sync packet interval
sound: usb-audio: add MIDI drain callback
sound: usb-audio: use multiple output URBs
sound: usb-audio: use multiple input URBs
sound: usb-audio: Xonar U1 digital output support
* topic/tlv-minmax:
ALSA: usb-audio - Correct bogus volume dB information
ALSA: usb-audio - Use the new TLV_DB_MINMAX type
ALSA: Add new TLV types for dBwith min/max
Merge branch 'topic/soundcore-preclaim' into for-linus
* topic/soundcore-preclaim:
sound: make OSS device number claiming optional and schedule its removal
sound: request char-major-* module aliases for missing OSS devices
chrdev: implement __[un]register_chrdev()
* topic/oss:
ALSA: allocation may fail in snd_pcm_oss_change_params()
sound: vwsnd: Fix setting of cfgval and ctlval in li_setup_dma()
sound: fix OSS MIDI output data loss
* topic/hda: (92 commits)
ALSA: hda - Use auto model for HP laptops with ALC268 codec
ALSA: hda/realtek: Added support for CLEVO M540R subsystem, 6 channel + digital
ALSA: hda - Add support of Alienware M17x laptop
ALSA: hda - Remove dead codes from patch_sigmatel.c
ALSA: hda - Fix input source selection of IDT92HD73xx
ALSA: hda - Fix obsolete CONFIG_SND_DEBUG_DETECT
ALSA: hda - Unmute docking line-out as default with AD1984A codec
ALSA: hda - Add another entry for Nvidia HDMI device
ALSA: hda - Add missing GPIO initialization for AD1984A laptop model
ALSA: hda - Add support of docking auto-mute/mic for AD1984A laptop model
ALSA: hda - Fix ALC268/ALC269 headphone pin routing
ALSA: hda - Create "Digital Mic Capture Volume" correctly for IDT codecs
ALSA: hda - Add more quirk for HP laptops with AD1984A
ALSA: hda - Add / fix model entries for HD-audio driver
ALSA: hda - Add full audio support on Acer Aspire 7730G notebook
ALSA: hda - Improve auto-cfg mixer name for ALC662
ALSA: hda - Improve auto-cfg mixer name for ALC861-VD
ALSA: hda - Improve auto-cfg mixer name for ALC262
ALSA: hda - Improve auto-cfg mixer name for ALC260
ALSA: hda - Improve auto-cfg mixer name for ALC880
...
* topic/asoc: (226 commits)
ASoC: au1x: PSC-AC97 bugfixes
ASoC: Fix WM835x Out4 capture enumeration
ASoC: Remove unuused hw_read_t
ASoC: fix pxa2xx-ac97.c breakage
ASoC: Fully specify DC servo bits to update in wm_hubs
ASoC: Debugged improper setting of PLL fields in WM8580 driver
ASoC: new board driver to connect bfin-5xx with ad1836 codec
ASoC: OMAP: Add functionality to set CLKR and FSR sources in McBSP DAI
ASoC: davinci: i2c device creation moved into board files
ASoC: Don't reconfigure WM8350 FLL if not needed
ASoC: Fix s3c-i2s-v2 build
ASoC: Make platform data optional for TLV320AIC3x
ASoC: Add S3C24xx dependencies for Simtec machines
ASoC: SDP3430: Fix TWL GPIO6 pin mux request
ASoC: S3C platform: Fix s3c2410_dma_started() called at improper time
ARM: OMAP: McBSP: Merge two functions into omap_mcbsp_start/_stop
ASoC: OMAP: Fix setup of XCCR and RCCR registers in McBSP DAI
OMAP: McBSP: Use textual values in DMA operating mode sysfs files
ARM: OMAP: DMA: Add support for DMA channel self linking on OMAP1510
ASoC: Select core DMA when building for S3C64xx
...
"This seems to generate /sys/block/$device/queue and its contents for
everyone who is using queues, not just for those queues that have a
non-NULL queue->request_fn."
Note that embedding a queue inside another object has always been
an illegal construct, since the queues are reference counted and
must persist until the last reference is dropped. So aoe was
always buggy in this respect (Jens).
Signed-off-by: Ed Cashin <ecashin@coraid.com> Cc: Andy Whitcroft <apw@canonical.com> Cc: "Rafael J. Wysocki" <rjw@sisk.pl> Cc: Bruno Premont <bonbons@linux-vserver.org> Cc: Martin K. Petersen <martin.petersen@oracle.com> Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
i915: disable interrupts before tearing down GEM state
Reinette Chatre reports a frozen system (with blinking keyboard LEDs)
when switching from graphics mode to the text console, or when
suspending (which does the same thing). With netconsole, the oops
turned out to be
BUG: unable to handle kernel NULL pointer dereference at 0000000000000084
IP: [<ffffffffa03ecaab>] i915_driver_irq_handler+0x26b/0xd20 [i915]
and it's due to the i915_gem.c code doing drm_irq_uninstall() after
having done i915_gem_idle(). And the i915_gem_idle() path will do
but if an i915 interrupt comes in after this stage, it may want to
access that hw_status_page, and gets the above NULL pointer dereference.
And since the NULL pointer dereference happens from within an interrupt,
and with the screen still in graphics mode, the common end result is
simply a silently hung machine.
Fix it by simply uninstalling the irq handler before idling rather than
after. Fixes
Manuel Lauss [Tue, 8 Sep 2009 17:45:17 +0000 (19:45 +0200)]
ASoC: au1x: PSC-AC97 bugfixes
This patch fixes the following bugs:
- only reprogram bitdepth if it has changed since last call to hw_params.
- add locking inside ac97_read/write functions:
When reprogramming sample depth, the ac97 unit has to be disabled,
which should not be done in the middle of codec register accesses.
- retry timed-out codec register accesses.
- wait for status bits to set/clear when starting/stopping various
functional blocks; very important after reenabling AC97 unit else
sound may be distorted (e.g. high-pitch noise in 1kHz sine wave).
Zhenyu Wang [Tue, 8 Sep 2009 06:52:25 +0000 (14:52 +0800)]
drm/i915: fix mask bits setting
eDP is exclusive connector too, and add missing crtc_mask
setting for TV.
This fixes
http://bugzilla.kernel.org/show_bug.cgi?id=14139
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com> Reported-and-tested-by: Carlos R. Mafra <crmafra2@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
ALSA: hda - Use auto model for HP laptops with ALC268 codec
The HP laptops with ALC268 codec seem working better with model=auto
than model=toshiba; e.g. the auto model fixes missing digital outputs.
Let's fix quirk entry to choose auto model explicitly.
Sophie Hamilton [Tue, 8 Sep 2009 08:58:42 +0000 (10:58 +0200)]
ALSA: cs46xx - Fix minimum period size
Fix minimum period size for cs46xx cards. This fixes a problem in the
case where neither a period size nor a buffer size is passed to ALSA;
this is the case in Audacious, OpenAL, and others.
Signed-off-by: Sophie Hamilton <kernel@theblob.org> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel:
agp/intel: support for new chip variant of IGDNG mobile
drm/i915: Unref old_obj on get_fence_reg() error path
drm/i915: increase default latency constant (v2 w/comment)
Clemens Ladisch [Mon, 7 Sep 2009 08:18:54 +0000 (10:18 +0200)]
sound: oxygen: work around MCE when changing volume
When the volume is changed continuously (e.g., when the user drags a
volume slider with the mouse), the driver does lots of I2C writes.
Apparently, the sound chip can get confused when we poll the I2C status
register too much, and fails to complete a read from it. On the PCI-E
models, the PCI-E/PCI bridge gets upset by this and generates a machine
check exception.
To avoid this, this patch replaces the polling with an unconditional
wait that is guaranteed to be long enough.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Tested-by: Johann Messner <johann.messner at jku.at> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Instead of allocating the real buffers, use a fake buffer and ignore
read/write in the dummy driver so that we can save the resources.
For mmap, a single page (unique to the direction, though) is reused
to all buffers.
When the app requires to read/write the real buffers, pass fake_buffer=0
module option at loading time. This will get back to the old behavior.
Dave Airlie [Mon, 7 Sep 2009 05:26:19 +0000 (15:26 +1000)]
drm/radeon/kms: add LTE/GTE discard + rv515 two sided stencil register.
This adds some rv350+ register for LTE/GTE discard,
and enables the rv515 two sided stencil register.
It also disables the DEPTHXY_OFFSET register which
can be used to workaround the CS checker.
Moves rs690 to proper place in rs600 and uses correct
table on rs600.
breaks the build of the gianfar driver because "dev" is undefined in
this function. To quickly test rc9 I changed this to priv->ndev but I do
not know if this is the correct one.
--------------------
Signed-off-by: David S. Miller <davem@davemloft.net>