Age | Commit message (Collapse) | Author | Files | Lines |
|
Ensures that we don't interact badly with the power management framework,
especially in the cases where we're doing deferred work or we're using a
direct GPIO for these signals.
Signed-off-by: Mark Brown <[email protected]>
|
|
There's a driver bug that sgtl5000 dapm widget kcontrols do not work.
e.g. can not select capture mux with amixer tool(no error info prompted).
The root cause is that we still call snd_soc_dapm_new_widgets in
codec driver probe function afer converting to table based widgets.
This will cause the card dapm widgets are instantiated before the
dapm_routes are registered.
Then, no available dapm widget pathes can be found during instantiation
which finally will cause soc_dapm_mux_update_power to fail(can not find
correct path with kcontrol) in snd_soc_dapm_put_enum_double function.
Here we remove the unneeded snd_soc_dapm_new_widgets in codec probe
and let the soc core to handle the register sequence properly.
Then we can fix above issue.
Signed-off-by: Dong Aisheng <[email protected]>
Acked-by: Shawn Guo <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
Set an initial clock rate for the saif internal logic to work
properly. This is important when working in EXTMASTER mode that
uses the other saif's BITCLK&LRCLK but it still needs a basic
clock which should be fast enough for the internal logic.
Signed-off-by: Dong Aisheng <[email protected]>
Acked-by: Shawn Guo <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
Currently we directly call a clock_enable in trigger function without
a clk_prepare as pair first.
This will cause system hang immediately when run capture because
the clock was not prepared(playback does not hang because the clock was
prepared already by get_mclk before), a warning message in clock framework
may cause a deadlock to reclaim clock lock (see: pl011_console_write).
Here we prepare clock first in hw_param, then enable it in trigger
function to guarantee the balance.
Signed-off-by: Dong Aisheng <[email protected]>
Acked-by: Shawn Guo <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
Otherwise if someone tries to use all four channels on AIF1 with the
device in master mode we won't be able to clock out all the data.
Signed-off-by: Mark Brown <[email protected]>
Cc: [email protected]
|
|
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next
ASoC: Additional updates for 3.6
A few more fixes for 3.6, some of which are relatively important -
they've all been in -next for at least some time.
- DAPM fixes for the recent locking changes.
- Fix for _PRE and _POST widgets (which have been broken for a few
releases now).
- A couple of minor driver updates.
|
|
|
|
Ever since the DAPM performance improvements we've been marking all widgets
as not dirty after each DAPM run. Since _PRE and _POST events aren't part
of the DAPM graph this has rendered them non-functional, they will never be
marked dirty again and thus will never be run again.
Fix this by skipping them when marking widgets as not dirty.
Signed-off-by: Mark Brown <[email protected]>
Acked-by: Liam Girdwood <[email protected]>
Cc: [email protected]
|
|
Also add a model/fixup string "lenovo-dock", so that other Thinkpad
users will be able to test this fixup easily, to see if it enables
dock I/O for them as well.
Cc: [email protected]
BugLink: https://bugs.launchpad.net/bugs/1026953
Tested-by: John McCarron <[email protected]>
Signed-off-by: David Henningsson <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
|
|
Turn on the pin widget's PIN_OUT bit from playback prepare. The pin is
enabled in open, but is disabled in hdmi_init_pin which is called during
system resume. This causes a system suspend/resume during playback to
mute HDMI/DP. Enabling the pin in prepare instead of open allows calling
snd_pcm_prepare after a system resume to restore audio.
Signed-off-by: Dylan Reid <[email protected]>
Cc: <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
|
|
This merges the changes for converting to new PM ops for platform
and some other drivers.
Also move some header files to local places from the public
include/sound.
|
|
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next
ASoC: Updates for 3.6
This has been a pretty quiet release - very little activity in framework
terms, mostly just a few new drivers and updates:
- Added the ability to add and remove DAPM paths dynamically, mostly for
reparenting on clock changes.
- New machine drivers for Marvell Brownstone, ST-Ericsson Ux500
reference platform and ttc-dkp.
- New CPU drivers for Blackfin BF6xx SPORTs in I2S mode, Marvell MMP,
Synopsis Designware I2S controllers, and SPEAr DMA and S/PDIF
- New CODEC drivers for Dialog DA732x, ST STA529, ST-Ericsson AB8500, TI
Isabelle and Wolfson Microelectronics WM5102 and WM5110
|
|
The MX31 Audmux also has 7 Ports.
This patch adds the missing define, and makes the debugfs code iterate
over that port too.
Signed-off-by: Torben Hohn <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
Signed-off-by: Mark Brown <[email protected]>
|
|
The conversion of the core driver to irqdomains means that we don't need
and irq_base to have working interrupts so use wm8994_request_irq() to
deal with looking up the interrupt number for the micdet IRQ.
Signed-off-by: Mark Brown <[email protected]>
|
|
A recent commit made patch_alc268 call snd_hda_pick_fixup with
NULL quirk pointer. Make sure we do not reference that NULL pointer.
Signed-off-by: David Henningsson <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
|
|
Generic updates for sound 3.6
|
|
This is a large chunk merge for 3.6 HD-audio things
|
|
This codec has a separate dmic path (separate dmic only ADC),
and thus it looks mostly like ALC275.
Cc: [email protected]
BugLink: https://bugs.launchpad.net/bugs/1025377
Tested-by: Ray Chen <[email protected]>
Signed-off-by: David Henningsson <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
|
|
Since some jack controls may be renamed as phantom jacks, the existing
check for index conflicts doesn't work because it simply compares the
name with the last used name, assuming that the controls with the same
name continue. Thus, it would result in the duplicated controls when
two or more phantom jacks with the very same type exist, and the
driver gives up with an error.
This patch fixes the problem by checking the index number conflicts
more intensively (but dumbly).
Signed-off-by: Takashi Iwai <[email protected]>
|
|
In the previous commit, snd_opti9xx_configure() is called from the
resume handler but it's still marked as __devinit. Fix it.
Reported-by: Fengguang Wu <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
|
|
Implement suspend/resume support for Opti 92x and 93x chips.
Tested with Opti 929A+AD1848 and Opti 931.
Signed-off-by: Ondrej Zary <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
|
|
Vendor ID 0x10de0051 is used by a yet-to-be-named GPU chip.
Signed-off-by: Aaron Plattner <[email protected]>
Acked-by: Andy Ritger <[email protected]>
Reviewed-by: Daniel Dadap <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
|
|
According to Xingchao,
This works for HDMI audio, otherwise there's blocking issue.
Signed-off-by: Takashi Iwai <[email protected]>
|
|
0x80862807 is HDMI id for Haswell HDA.
Signed-off-by: Wang Xingchao <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
|
|
this patch add proper id for Haswell HDA Controller.
[Added AZX_DCAPS_POSFIX_COMBO flag by tiwai]
Signed-off-by: Wang Xingchao <[email protected]>
Acked-by: Jaroslav Kysela <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
|
|
Yamaha OPL3-SAx chips don't resume properly when playback is running -
garbage is played after resume. Restoring the CS4231_PLAYBK_FORMAT register
last fixes the problem.
Signed-off-by: Ondrej Zary <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
|
|
By setting SNDRV_PCM_INFO_RESUME, wss_lib claims that it can restore the card
state fully on resume. But in fact, it can't as DMA is not restored so any
playback/capture running during suspend will fail to continue after resume.
Remove SNDRV_PCM_INFO_RESUME flag from pcm info field to fix the problem.
Signed-off-by: Ondrej Zary <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
|
|
Instead of the hard-to-mantain TLV_DB_RANGE_HEAD macro, use
DECLARE_TLV_DB_RANGE, which computes its size automatically.
(Also make this data const on the way.)
Signed-off-by: Clemens Ladisch <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
|
|
Add a DECLARE_TLV_DB_RANGE() macro so that dB range information
can be specified without having to count the items manually for
TLV_DB_RANGE_HEAD().
Signed-off-by: Clemens Ladisch <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
|
|
Add the DECLARE_TLV_CONTAINER() macro to allow having static
TLVs containing more than one item.
Signed-off-by: Clemens Ladisch <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
|
|
Add helper macros with a little bit of preprocessor magic to
automatically compute the length of a TLV item. This lets us avoid
having to compute this by hand, and will allow to use items that do
not use a fixed length.
Signed-off-by: Clemens Ladisch <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
|
|
The s3c2410_gpio* calls are obsolete and have been scheduled for
removal since several kernel releases. Remove them and use common
gpiolib API.
This patch is a prerequisite for removal of the obsolete S3C24XX
SoC GPIO definitions.
Compile tested only.
Cc: Ben Dooks <[email protected]>
Signed-off-by: Sylwester Nawrocki <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
The s3c2410_gpio* calls are obsolete and have been scheduled for
removal since several kernel releases. Remove them and use common
gpiolib API.
This patch is a prerequisite for removal of the obsolete S3C24XX
SoC GPIO definitions.
Tested on Micro2440-SDK.
Cc: Ben Dooks <[email protected]>
Signed-off-by: Sylwester Nawrocki <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
Fix following:
sound/soc/soc-dapm.c: In function ‘dapm_clock_event’:
sound/soc/soc-dapm.c:1021:1: warning: control reaches end of non-void function [-Wreturn-type]
Signed-off-by: Marek Belisko <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
The rework of the snd-usb endpoint logic moved the calls to
snd_usb_set_interface() into the snd_usb_endpoint implemenation. This
changed the order in which these calls are issued to the device, and
thereby caused regressions for some webcams.
Fix this by moving the calls back to pcm.c for now to make it work again
and use snd_usb_endpoint_activate() to really tear down all remaining
URBs in the flight, consequently fixing another regression caused by USB
packets on the wire after altsetting 0 has been selected.
Signed-off-by: Daniel Mack <[email protected]>
Reported-and-tested-by: Philipp Dreimann <[email protected]>
Reported-by: Joseph Salisbury <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
|
|
Ensure robust startup of the part by going through the reset procedure
prior to resyncing the full register cache, avoiding potential intermittent
faults in some designs.
Signed-off-by: Mark Brown <[email protected]>
Cc: [email protected]
|
|
Release the memory of the routing table before leaving the function upon errors
in the device tree
Signed-off-by: Matthias Kaehlcke <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
The WM5110 is a highly integrated low power audio subsystem for
smartphones, tablets and other portable audio devices. It combines
an advanced DSP feature set with a flexible, high performance audio
hub CODEC.
This patch adds the audio CODEC driver for the device.
Signed-off-by: Mark Brown <[email protected]>
|
|
GCC complains that "ret" is uninitialized here.
Signed-off-by: Dan Carpenter <[email protected]>
Acked-By: Rajeev Kumar <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
Some Arizona chips have a higher frequency for the FLL VCO, support this
in the common code.
Signed-off-by: Mark Brown <[email protected]>
|
|
This patch adds input selection of main codec clock - from what pin.
Both registers set same value since codec uses clock divider or pll at one time.
Signed-off-by: Jiri Prchal <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
This patch adds AGC target level and times settings for TLV320AIC3x.
Enums uses small arrays of two channels left and right since it uses different registers.
Signed-off-by: Jiri Prchal <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
This patch adds missing deemphasis switch.
Signed-off-by: Jiri Prchal <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
The analogue PGA shifts were used; this makes no practical difference as
the values are the same.
Signed-off-by: Mark Brown <[email protected]>
|
|
Some devices have four input structures rather than three.
Signed-off-by: Mark Brown <[email protected]>
|
|
Signed-off-by: Mark Brown <[email protected]>
|
|
The MODULE_ALIAS() was missing from the driver.
Signed-off-by: Peter Ujfalusi <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
Signed-off-by: Mark Brown <[email protected]>
Acked-by: Liam Girdwood <[email protected]>
|
|
Since we're now relying on DAPM for things like enabling clocks when we
reparent the clocks for widgets we need to either use conditional routes
(which are expensive) or remove routes at runtime. Add a route removal
API to support this use case.
Signed-off-by: Mark Brown <[email protected]>
Acked-by: Liam Girdwood <[email protected]>
|